sklearn简单基础
1 介绍
scikit-learn是基于 Python 语言的机器学习工具包。有六大功能模块分别是分类、回归、聚类、数据降维、模型选择和数据处理。
2 分类
将此模块函数进行分类:估计器(Estimatior)和转化器(Transformer)
2.1 估计器
分类(Classification):识别样本属于哪个类别,常用算法有 SVM(支持向量机)、nearest neighbors(最近邻)、random forest(随机森林)
回归(Regression):预测与对象相关联的连续值属性,常用算法有 SVR(支持向量机)、 ridge regression(岭回归)、Lasso
聚类(Clustering):对样本进行无监督的自动分类,常用算法有 k-Means(k均值)、spectral clustering(特征聚类)、mean-shift(均值漂移)
绝大多数估计器的使用流程都如下:
-
实例化模型:模型在实际训练前通常需要进行实例化,及将各种需要设定的超参数输入模型中。
lr = LogisticRegression(max_iter=50)
这里我们实例化了一个逻辑回归模型,并设置最大迭代次数为50。
-
训练模型:传入数据及对应标签即可训练模型。该过程会使用函数
fit(x, y)
实现。lr.fit(train_x, trian_y)
这里我们将训练数据
train_x
和对应标签train_y
输入到已经初始化完成的逻辑回归模型中并进行训练。 -
用模型进行预测:使用训练好的模型对测试数据进行预测并返回测试结果。该过程会使用函数
predict(x)
实现。prediction = lr.predict(test_x)
这里我们用已经训练好的逻辑回归模型对测试数据
test_x
进行预测,并将预测的结果储存在变量prediction
中。注意预测的结果将以ndarray
的格式储存。
2.2 转化器
数据降维(Dimensionality reduction):减少相关变量维数,常用算法有 PCA(主成分分析)、feature selection(特征选择)、non-negative matrix factorization(非负矩阵分解)
数据处理(Preprocessing):特征提取和归一化,常用模块有 preprocessing(预处理),feature extraction(特征提取)
模型选择(Model Selection):比较,验证,选择参数和模型,常用模块有 grid search(网格搜索)、cross validation(交叉验证)、 metrics(度量)
绝大多数估计器的使用流程都如下:
-
根据输入的数据和(或)标签确定如何进行数据变换。这一过程常用函数
fit(x, y)
完成。StandardScaler().fit(input_data)
这里我们调用标注化函数
StandardScaler()
计算对输入数据input_data
的标准化参数。 -
根据已经计算出来的变换方式对数据进行变换。这一过程常用函数
transform(x)
完成。StandardScaler().transform(input_data)
这里我们使用计算出来的标准化方法通过
transform()
对输入数据input_data
进行标准化。 -
有时候我们一次性完成变换方法的计算和对数据的变换,我们可以使用函数
fit_transform(x, y)
完成。StandardScaler().fit_transform(input_data)
这里我们使用
fit_transform()
函数直接对数据input_data
完成了标准化方式的计算和标准化。