文章目录
- 前言
- 一、SKlearn是什么?
- 二、使用步骤
- 1. 安装sklearn库
- 2. 引入库
- 3. API使用测试
- 3.1 datasets模块
- 3.2 sklearn监督、非监督学习模块
- 总结
前言
本专题主要是记录作者在学习使用sklearn工具箱时的一些案例经验及心得体会。
一、SKlearn是什么?
scikit-learn (sklearn) 是一个Python第三方提供的非常强力的机器学习库,它包含了从数据预处理到训练模型的各个方面。在实战使用scikit-learn中可以极大的节省我们编写代码的时间以及减少我们的代码量,使我们有更多的精力去分析数据分布,调整模型和修改超参。(sklearn为包名)
其官方中文文档网址为:https://www.cntofu.com/book/170/index.html
二、使用步骤
1. 安装sklearn库
pip install -U scikit-learn
2. 引入库
代码如下(示例):
from sklearn import *
3. API使用测试
3.1 datasets模块
datasets模块是sklearn中的重要部分,主要用于读取、创建、划分数据集。
1> 读取数据集
- 自带的小数据集(packaged dataset):sklearn.datasets.load_(name)
- 可在线下载的数据集(Downloaded Dataset):sklearn.datasets.fetch_(name)
- 计算机生成的数据集(Generated Dataset):sklearn.datasets.make_(name)
- svmlight/libsvm格式的数据集:
sklearn.datasets.load_svmlight_file(…) - 从买了data.org在线下载获取的数据集:
sklearn.datasets.fetch_mldata(…)
2> 生成数据集
创建分类数据集代码如下(示例):
from sklearn import datasets
x, y = datasets.make_classification(n_samples=1000, # 样本个数
n_features=100, # 特征个数
n_informative=3, # 有效特征个数
n_redundant=2, # 冗余特征个数(有效特征的随机组合)
n_repeated=0, # 重复特征个数(有效特征和冗余特征的随机组合)
n_classes=2, # 样本类别
n_clusters_per_class=1, # 簇的个数
random_state=0)
3> 划分数据集
划分数据集为训练集、测试集代码如下(示例):
# 划分数据集,把数据集随机划分成训练集和测试集,其中测试集占20%。
train_X, test_X, train_Y, test_Y = train_test_split(x,
y,
test_size=0.2,
random_state=66)
3.2 sklearn监督、非监督学习模块
sklearn拥有可以用于监督和无监督学习的方法,一般来说监督学习使用的更多。sklearn中的大部分函数可以归为估计器(Estimator)和转化器(Transformer)两类。
- 估计器(Estimator)其实就是模型,它用于对数据的预测或回归。基本上估计器都会有以下几个方法:
- fit(x,y) :传入数据以及标签即可训练模型,训练的时间和参数设置,数据集大小以及数据本身的特点有关
- score(x,y)用于对模型的正确率进行评分(范围0-1)。但由于对在不同的问题下,评判模型优劣的的标准不限于简单的正确率,可能还包括召回率或者是查准率等其他的指标,特别是对于类别失衡的样本,准确率并不能很好的评估模型的优劣,因此在对模型进行评估时,不要轻易的被score的得分蒙蔽。
- predict(x)用于对数据的预测,它接受输入,并输出预测标签,输出的格式为numpy数组。我们通常使用这个方法返回测试的结果,再将这个结果用于评估模型。
以以上创建的分类数据集为例,使用KNN模型对其进行训练和预测:
KNN训练和预测代码如下(示例):
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(train_X, train_Y)
pred_Y = knn.predict(test_X)
- 转化器(Transformer)用于对数据的处理,例如标准化、降维以及特征选择等等。同与估计器的使用方法类似:
- fit(x,y) :该方法接受输入和标签,计算出数据变换的方式。
- transform(x) :根据已经计算出的变换方式,返回对输入数据x变换后的结果(不改变x)
- fit_transform(x,y) :该方法在计算出数据变换方式之后对输入x就地转换。
总结
本文是作者在不断的学习中持续进行更新,其中有很多都是搬运学习资料的内容。
目前处于持续更新中~~~~~~~~~~~~~~~~~~~