scikit-learn是一个Python第三方提供的非常强力的机器学习库,它包含了从数据预处理到训练模型的各个方面。sklearn在数据处理以及模型训练方面给我们提供了强大的函数命令,调用起来十分方便,在实战使用scikit-learn中可以极大的节省我们编写代码的时间以及减少我们的代码量,使我们有更多的精力去分析数据分布,调整模型和修改超参。
官方文档:http://scikit-learn.org/stable/
一、sklearn库的结构
sklearn库的算法主要有四类:分类,回归,聚类,降维。其中:
常用的回归:线性、决策树、SVM、KNN ;集成回归:随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees
常用的分类:线性、决策树、SVM、KNN,朴素贝叶斯;集成分类:随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees
常用聚类:k均值(K-means)、层次聚类、DBSCAN
常用降维:LDA、PCA
sklearn结构图
二、基本函数
sklearn中的大部分函数可以归为估计器(Estimator)和转化器(Transformer)两类。
估计器(Estimator)其实就是模型,它用于对数据的预测或回归。基本上估计器都会有以下几个方法:
fit(x,y) :传入数据以及标签即可训练模型,训练的时间和参数设置,数据集大小以及数据本身的特点有关
score(x,y)用于对模型的正确率进行评分(范围0-1)。但由于对在不同的问题下,评判模型优劣的的标准不限于简单的正确率,可能还包括召回率或者是查准率等其他的指标,特别是对于类别失衡的样本,准确率并不能很好的评估模型的优劣,因此在对模型进行评估时,不要轻易的被score的得分蒙蔽。
predict(x)用于对数据的预测,它接受输入,并输出预测标签,输出的格式为numpy数组。我们通常使用这个方法返回测试的结果,再将这个结果用于评估模型。
转化器(Transformer)用于对数据的处理,例如标准化、降维以及特征选择等等。同与估计器的使用方法类似:
fit(x,y) :该方法接受输入和标签,计算出数据变换的方式。
transform(x) :根据已经计算出的变换方式,返回对输入数据x变换后的结果(不改变x)
fit_transform(x,y) :该方法在计算出数据变换方式之后对输入x就地转换。
sklearn库中包含SVM、KNN、贝叶斯、线性回归、逻辑回归、决策树、随机森林、xgboost、GBDT、boosting、神经网络NN等多种算法模型,在使用中只需要简单的调用sklearn里的模块就可以实现大多数机器学习任务。
三、sklearn安装
scikit-learn的安装需要依赖NumPy,SciPy和matplotlib模块,所以在安装sklearn之前需要安装NumPy,SciPy库。
首先去网址(https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml)下载whl文件,即:
numpy‑1.14.5+mkl‑cp35‑cp35m‑win_amd64.whl
scipy‑1.1.0‑cp35‑cp35m‑win_amd64.whl
文件可根据自己python版本以及电脑系统选择相应的版本。
然后使用pip安装相应路径下文件即可:
欢迎关注
领取专属 10元无门槛券
私享最新 技术干货