了解一下sklearn机器学习库

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安装相应路径下文件即可:

欢迎关注

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180803A0DE6U00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券