- 该库最早由数据科学家David Cournapeau在2007年发起,使用需要Numpy和Scipy等其他库的支持,是Python中专门针对机器学习应用而发展起来的一款开源扩展库
- 和其他开源项目一样,该库主要由社区成员自发进行维护
- scikit-learn与其他开源项目相比显得更为保守:一是scikit-learn从来不做除机器学习领域之外的其他扩展,而是scikit-learn从来不采用未经广泛验证的算法
https://scikit-learn.org/stable/index.html
Scikit-Learn库数据集
在机器学习中,经常需要使用各种各样的数据集,Scikit-Learn库提供了一些常用的数据集
序号 | 数据集名称 | 调用数据集 | 数据描述 |
1 | 鸢尾花数据集 | Load_iris() | 用于多分类任务的数据集 |
2 | 波士顿房价数据集 | Load_boston() | 用于回归任务的经典数据集 |
3 | 糖尿病数据集 | Load_diabetes() | 用于回归任务的经典数据集 |
4 | 毛写数字数据集 | Load_digits() | 用于多分类任务的数据集 |
5 | 乳腺癌数据集 | Load_breast_cancer() | 经典的用于二分类任务的数据集 |
6 | 体能训练数据集 | Load_linnerud() | 经典的用于多变量回归任务的数据集 |
Scikit-Learn库功能
分类:
分类是指识别给定对象的所属类别,属于检测学习的范畴,最常见的应用场景包括垃圾邮件检测和图像识别等
目前Scikit-learn已经实现的算法包括:支持向量机(SVM),最近邻、逻辑回归、随机森林、决策树以及多层感知器(MLP)神经网络等
回归:
回归是指预测与给定对象相关联的连续值属性,最常用的应用场景包括预测药物反应和预测股票价格等
目前Scikit-Learn已经实现的算法包括:支持向量回归(SVR),脊回归,Lasso回归,弹性网络(ElasticNet),最小角回归(LARS),贝叶斯回归,以及各种不同的鲁棒回归算法等
聚类:
聚类是指自动识别具有相似属性的给定对象,并将其分组为集合,数据无监督学习范畴
最常见的应用场景包括顾客细分和实验结果分组。
目前Scikit-Learn已经实现的算法包括:K-均值聚类、谱聚类、均值偏移、分层聚类、DBSCAN聚类等
数据降维:
数据降维是指使用主成分分析(PCA),非矩阵分解(NMF)或特征选择等降维技术来减少要考虑的随机变量的个数,其主要应用场景包括可视化处理和效率提升
模型选择:
模型选择是指对于给定参数和模型的比较、验证和选择,其主要目的是通过参数调整来提升精度。
目前Scikit-Learn实现的模块包括:格点搜索、交叉验证和各种针对预测误差评估的度量函数
数据预处理:
数据预处理是指数据的特征提取和归一化,是机器学习过程中的第一个也是最重要的一个环节
归一化是指将输入数据转化为具有零均值(中心化)和单位权方差的新变量,但因为大多数时候都做不到精确等于零,因此会设置一个可接受的范围,一般都要求落在0-1之间
特征提取是指将文本或图像数据转换为可用于机器学习的数据变量
Scikit-Learn库分类算法
K近邻分类器(KNN)
from sklearn.neighbors import KNeighborsClassifier
#创建一组数据X和它对应的标签y
X=[[0],[1],[2],[3],[4],[5]]
y=[0,0,0,1,1,1]
#使用最近的3个邻居作为分类的依据,得到分类器
neigh=KNeighborsClassifier(n_neighbors=3)
#将训练数据X和标签y送入分类器进行学习
neigh.fit(X,y)
#调用predict()函数,对未知分类样本[1.1]分类,可以直接并将
#需要分类的数据构造为数组形式作为参数传入,得到分类标签作为返回值
print(neigh.predict([[1.4]]))
print(neigh.predict([[2.4]]))
print(neigh.predict([[2.5]]))
print(neigh.predict([[2.6]]))
输出:
[0]
[0]
[0]
[1]
决策树
回归算法