训练集:又称训练样例,用来进行训练,也就是产生模型或者算法的数据集
测试集:又称测试样例,用来专门进行测试已经学习好的模型或者算法的数据集
特征值:属性的集合,通常用一个向量来表示,附属于一个实例
标记:实例类别的标记(正例与反例或者更多)
分类:目标标记为类别型数据
回归:目标标记为连续型数值
有监督学习:训练集有类别标记
无监督学习:训练集无类别标记
半监督学习:训练集既有有类别标记又有无类别标记
定义:sklearn是基于python语言的机器学习工具包,是目前做机器学习项目当之无愧的第一工具。 sklearn自带了大量的数据集,可供我们练习各种机器学习算法。 sklearn集成了数据预处理、数据特征选择、数据特征降维、分类\回归\聚类模型、模型评估等非常全面算法。
分类:识别某个对象属于哪个类别,常用的算法有:SVM(支持向量机),nearest neighbors(最近邻)、random forest(随机森林)
回归:预测与对象相关联的连续值属性,常用算法:SVR(支持向量机), ridge regression(岭回归)、Lasso
聚类:将相似对象自动分组,常用算法: k-Means、 spectral clustering、mean-shift
降维:减少要考虑的随机变量的数量,PCA(主成分分析), eature selection(特征选择)、non-negative matrix factorization(非负矩阵分解)
模型选择:比较,验证,选择参数和模型,常用的模块有:grid search(网格搜索)、cross validation(交叉验证)、 metrics(度量)
预处理:特征提取和归一化,把输入的数据转换为机器学习算法可用的数据
机器学习最终处理的数据都是数字,只不过这些数据可能以不同的形态被呈现出来,如矩阵、文字、图片、视频、音频等。
sklearn.preprocessing
函数 | 功能 |
---|---|
preprocessing.scale( ) | 标准化 |
preprocessing.MinMaxScaler( ) | 最大最小值标准化 |
preprocessing.StandardScaler( ) | 数据标准化 |
preprocessing.MaxAbsScaler( ) | 绝对值最大标准化 |
preprocessing.RobustScaler( ) | 带离群值数据集标准化 |
preprocessing.QuantileTransformer( ) | 使用分位数信息变换特征 |
preprocessing.PowerTransformer( ) | 使用幂变换执行到正态分布的映射 |
preprocessing.Normalizer( ) | 正则化 |
preprocessing.OrdinalEncoder( ) | 将分类特征转换为分类数值 |
preprocessing.LabelEncoder( ) | 将分类特征转换为分类数值 |
preprocessing.MultiLabelBinarizer( ) | 多标签二值化 |
preprocessing.OneHotEncoder( ) | 独热编码 |
preprocessing.KBinsDiscretizer( ) | 将连续数据离散化 |
preprocessing.FunctionTransformer( ) | 自定义特征处理函数 |
preprocessing.Binarizer( ) | 特征二值化 |
preprocessing.PolynomialFeatures( ) | 创建多项式特征 |
preprocesssing.Normalizer( ) | 正则化 |
preprocessing.Imputer( ) | 弥补缺失值 |
sklearn.svm
函数 | 介绍 |
---|---|
svm.OneClassSVM( ) | 无监督异常值检测 |
上述preprocessing类函数的方法如下:
函数方法 | 介绍 |
---|---|
xxx.fit( ) | 拟合数据 |
xxx.fit_transform( ) | 拟合并转换数据 |
xxx.get_params( ) | 获取函数参数 |
xxx.inverse_transform( ) | 逆转换 |
xxx.set_params( ) | 设置参数 |
xxx.transform( ) | 转换数据 |
获取小数据集(本地加载):datasets.load_xxx()
获取大数据集(在线下载):datasets.fetch_xxx()
本地生成数据集(本地构造):datasets.make_xxx()
数据集 | 介绍 |
---|---|
load_iris( ) | 鸢尾花数据集:3类、4个特征、150个样本 |
load_boston( ) | 波斯顿房价数据集:13个特征、506个样本 |
load_digits( ) | 手写数字集:10类、64个特征、1797个样本 |
load_breast_cancer( ) | 乳腺癌数据集:2类、30个特征、569个样本 |
load_diabets( ) | 糖尿病数据集:10个特征、442个样本 |
load_wine( ) | 红酒数据集:3类、13个特征、178个样本 |
load_files( ) | 加载自定义的文本分类数据集 |
load_linnerud( ) | 体能训练数据集:3个特征、20个样本 |
load_sample_image( ) | 加载单个图像样本 |
load_svmlight_file( ) | 加载svmlight格式的数据 |
make_blobs( ) | 生成多类单标签数据集 |
make_biclusters( ) | 生成双聚类数据集 |
make_checkerboard( ) | 生成棋盘结构数组,进行双聚类 |
make_circles( ) | 生成二维二元分类数据集 |
make_classification( ) | 生成多类单标签数据集 |
make_friedman1( ) | 生成采用了多项式和正弦变换的数据集 |
make_gaussian_quantiles( ) | 生成高斯分布数据集 |
make_hastie_10_2( ) | 生成10维度的二元分类数据集 |
make_low_rank_matrix( ) | 生成具有钟形奇异值的低阶矩阵 |
make_moons( ) | 生成二维二元分类数据集 |
make_multilabel_classification( ) | 生成多类多标签数据集 |
make_regression( ) | 生成回归任务的数据集 |
make_s_curve( ) | 生成S型曲线数据集 |
make_sparse_coded_signal( ) | 生成信号作为字典元素的稀疏组合 |
make_sparse_spd_matrix( ) | 生成稀疏堆成的正定矩阵 |
make_sparse_uncorrelated( ) | 使用稀疏的不相关设计生成随机回归问题 |
make_spd_matrix( ) | 生成随机堆成的正定矩阵 |
make_swiss_roll( ) | 生成瑞士卷曲线数据集 |
sklean.feature_selection
函数 | 功能 |
---|---|
feature_selection.SelectKBest( ) feature_selection.chi2 ( )feature_selection.f_regression( ) feature_selection.mutual_info_regression( ) | 选择K个得分最高的特征 |
feature_selection.VarianceThreshold( ) | 无监督特征选择 |
feature_selection.REF( ) | 递归式特征消除 |
feature_selection.REFCV( ) | 递归式特征消除交叉验证法 |
feature_selection.SelectFromModel( ) | 特征选择 |
sklearn.decomposition
函数 | 功能 |
---|---|
decomposition.PCA( ) | 主成分分析 |
decomposition.KernelPCA( ) | 核主成分分析 |
decomposition.IncrementalPCA( ) | 增量主成分分析 |
decomposition.MiniBatchSparsePCA( ) | 小批量稀疏主成分分析 |
decomposition.SparsePCA( ) | 稀疏主成分分析 |
decomposition.FactorAnalysis( ) | 因子分析 |
decomposition.TruncatedSVD( ) | 截断的奇异值分解 |
decomposition.FastICA( ) | 独立成分分析的快速算法 |
decomposition.DictionaryLearning( ) | 字典学习 |
decomposition.MiniBatchDictonaryLearning( ) | 小批量字典学习 |
decomposition.dict_learning( ) | 字典学习用于矩阵分解 |
decomposition.dict_learning_online( ) | 在线字典学习用于矩阵分解 |
decomposition.LatentDirichletAllocation( ) | 在线变分贝叶斯算法的隐含迪利克雷分布 |
decomposition.NMF( ) | 非负矩阵分解 |
decomposition.SparseCoder( ) | 稀疏编码 |
sklearn.manifold
函数 | 功能 |
---|---|
manifold.LocallyLinearEmbedding( ) | 局部非线性嵌入 |
manifold.Isomap( ) | 流形学习 |
manifold.MDS( ) | 多维标度法 |
manifold.t-SNE( ) | t分布随机邻域嵌入 |
manifold.SpectralEmbedding( ) | 频谱嵌入非线性降维 |
sklearn.tree
函数 | 功能 |
---|---|
tree.DecisionTreeClassifier() | 决策树 |
sklearn.ensemble
函数 | 功能 |
---|---|
ensemble.BaggingClassifier() | 装袋法集成学习 |
ensemble.AdaBoostClassifier( ) | 提升法集成学习 |
ensemble.RandomForestClassifier( ) | 随机森林分类 |
ensemble.ExtraTreesClassifier( ) | 极限随机树分类 |
ensemble.RandomTreesEmbedding( ) | 嵌入式完全随机树 |
ensemble.GradientBoostingClassifier( ) | 梯度提升树 |
ensemble.VotingClassifier( ) | 投票分类法 |
sklearn.linear_model
函数 | 功能 |
---|---|
linear_model.LogisticRegression( ) | 逻辑回归 |
linear_model.Perceptron( ) | 线性模型感知机 |
linear_model.SGDClassifier( ) | 具有SGD训练的线性分类器 |
linear_model.PassiveAggressiveClassifier( ) | 增量学习分类器 |
sklearn.svm
函数 | 功能 |
---|---|
svm.SVC( ) | 支持向量机分类 |
svm.NuSVC( ) | Nu支持向量分类 |
svm.LinearSVC( ) | 线性支持向量分类 |
sklearn.neighbors
函数 | 功能 |
---|---|
neighbors.NearestNeighbors( ) | 无监督学习临近搜索 |
neighbors.NearestCentroid( ) | 最近质心分类器 |
neighbors.KNeighborsClassifier() | K近邻分类器 |
neighbors.KDTree( ) | KD树搜索最近邻 |
neighbors.KNeighborsTransformer( ) | 数据转换为K个最近邻点的加权图 |
sklearn.discriminant_analysis
函数 | 功能 |
---|---|
discriminant_analysis.LinearDiscriminantAnalysis( ) | 线性判别分析 |
discriminant_analysis.QuadraticDiscriminantAnalysis( ) | 二次判别分析 |
sklearn.gaussian_process
函数 | 功能 |
---|---|
gaussian_process.GaussianProcessClassifier( ) | 高斯过程分类 |
sklearn.naive_bayes
函数 | 功能 |
---|---|
naive_bayes.GaussianNB( ) | 朴素贝叶斯 |
naive_bayes.MultinomialNB( ) | 多项式朴素贝叶斯 |
naive_bayes.BernoulliNB( ) | 伯努利朴素贝叶斯 |
sklearn.tree
函数 | 功能 |
---|---|
tree.DecisionTreeRegress( ) | 回归决策树 |
tree.ExtraTreeRegressor( ) | 极限回归树 |
sklearn.ensemble
函数 | 功能 |
---|---|
ensemble.GradientBoostingRegressor( ) | 梯度提升法回归 |
ensemble.AdaBoostRegressor( ) | 提升法回归 |
ensemble.BaggingRegressor( ) | 装袋法回归 |
ensemble.ExtraTreeRegressor( ) | 极限树回归 |
ensemble.RandomForestRegressor( ) | 随机森林回归 |
sklearn.linear_model
函数 | 功能 |
---|---|
linear_model.LinearRegression( ) | 线性回归 |
linear_model.Ridge( ) | 岭回归 |
linear_model.Lasso( ) | 经L1训练后的正则化器 |
linear_model.ElasticNet( ) | 弹性网络 |
linear_model.MultiTaskLasso( ) | 多任务Lasso |
linear_model.MultiTaskElasticNet( ) | 多任务弹性网络 |
linear_model.Lars( ) | 最小角回归 |
linear_model.OrthogonalMatchingPursuit( ) | 正交匹配追踪模型 |
linear_model.BayesianRidge( ) | 贝叶斯岭回归 |
linear_model.ARDRegression( ) | 贝叶斯ADA回归 |
linear_model.SGDRegressor( ) | 随机梯度下降回归 |
linear_model.PassiveAggressiveRegressor( ) | 增量学习回归 |
linear_model.HuberRegression( ) | Huber回归 |
sklearn.svm
函数 | 功能 |
---|---|
svm.SVR( ) | 支持向量机回归 |
svm.NuSVR( ) | Nu支持向量回归 |
svm.LinearSVR( ) | 线性支持向量回归 |
sklearn.neighbors
函数 | 功能 |
---|---|
neighbors.KNeighborsRegressor( ) | K近邻回归 |
neighbors.RadiusNeighborsRegressor( ) | 基于半径的近邻回归 |
sklearn.kernel_ridge
函数 | 功能 |
---|---|
kernel_ridge.KernelRidge( ) | 内核岭回归 |
sklearn.gaussian_process
函数 | 功能 |
---|---|
gaussian_process.GaussianProcessRegressor( ) | 高斯过程回归 |
sklearn.cross_decomposition
函数 | 功能 |
---|---|
cross_decomposition.PLSRegression( ) | 偏最小二乘回归 |
sklearn.cluster
函数 | 功能 |
---|---|
cluster.DBSCAN( ) | 基于密度的聚类 |
cluster.GaussianMixtureModel( ) | 高斯混合模型 |
cluster.AffinityPropagation( ) | 吸引力传播聚类 |
cluster.AgglomerativeClustering( ) | 层次聚类 |
cluster.Birch( ) | 利用层次方法的平衡迭代聚类 |
cluster.KMeans( ) | K均值聚类 |
cluster.MiniBatchKMeans( ) | 小批量K均值聚类 |
cluster.MeanShift( ) | 平均移位聚类 |
cluster.OPTICS( ) | 基于点排序来识别聚类结构 |
cluster.SpectralClustering( ) | 谱聚类 |
cluster.Biclustering( ) | 双聚类 |
cluster.ward_tree( ) | 集群病房树 |
模型方法
方法 | 功能 |
---|---|
xxx.fit( ) | 模型训练 |
xxx.get_params( ) | 获取模型参数 |
xxx.predict( ) | 预测新输入数据 |
xxx.score( ) | 评估模型分类/回归/聚类模型 |
xxx.set_params( ) | 设置模型参数 |
分类模型评估
函数 | 功能 |
---|---|
metrics.accuracy_score( ) | 准确率 |
metrics.average_precision_score( ) | 平均准确率 |
metrics.log_loss( ) | 对数损失 |
metrics.confusion_matrix( ) | 混淆矩阵 |
metrics.classification_report( ) | 分类模型评估报告:准确率、召回率、F1-score |
metrics.roc_curve( ) | 受试者工作特性曲线 |
metrics.auc( ) | ROC曲线下面积 |
metrics.roc_auc_score( ) | AUC值 |
回归模型评估
函数 | 功能 |
---|---|
metrics.mean_squared_error( ) | 平均决定误差 |
metrics.median_absolute_error( ) | 中值绝对误差 |
metrics.r2_score( ) | 决定系数 |
聚类模型评估
函数 | 功能 |
---|---|
metrics.adjusted_rand_score( ) | 随机兰德调整指数 |
metrics.silhouette_score( ) | 轮廓系数 |
函数 | 功能 |
---|---|
model_selection.cross_val_score( ) | 交叉验证 |
model_selection.LeaveOneOut( ) | 留一法 |
model_selection.LeavePout( ) | 留P法交叉验证 |
model_selection.GridSearchCV( ) | 网格搜索 |
model_selection.RandomizedSearchCV( ) | 随机搜索 |
model_selection.validation_curve( ) | 验证曲线 |
model_selection.learning_curve( ) | 学习曲线 |
Numpy:通常用来进行矢量化的计算
优点:
缺点: