sklearn是scikit-learn的简称,是一个基于Python的第三方模块。sklearn库集成了一些常用的机器学习方法,在进行机器学习任务是,并不需要实现算法,只需要简单的调用sklearn库中提供的模块就能完成大多数的机器学习任务。
sklearn库是在numpy、scipy、matplotlib的基础上开发而成的,在安装sklearn之前需要先安装这些依赖库。
Numpy(Numerical python的缩写)是一个开源的Python科学计算库。
Scipy库是sklearn库的基础,它是基于Numpy的一个集成了多种数学算法和函数的Python模块。
matplotlib是基于Numpy的一套Python工具包,它提供了大量的数据绘图工具。
数据集总览
数据集名称
调用方式
适用算法
数据规模
小
波士顿房价数据集
load_boston()
回归
506*13
鸢尾花数据集
load_iris()
分类
150*4
数
据
糖尿病数据集
load_diabetes()
回归
442*10
集
手写数字数据集
load_digits()
分类
5620*64
大
Olivetti 脸部图像数据集
fetch_olivetti_faces()
降维
400*64*64
数
新闻分类数据集
fetch_20newsgroups()
分类
-
据
带标签的人脸数据集
fetch_lfw_people()
分类;降维
-
集
路透社新闻语料数据集
fetch_rcv1()
分类
804414*47236
注:小数据集可以直接使用,大数据集要在调用时程序自动下载(一次即可)。
波士顿房价数据集包含506组数据,每条数据包含房屋以及房屋周围的详细信息。其中包括城镇犯罪率、一氧化氮浓度、住宅平均房间数、到中心区域的加权距离以及自住房平均房价等。因此,波士顿房价数据集能够应用到回归问题上。
-----------------------波士顿房价数据集-----------------------
波士顿房价数据集-属性描述
CRIM:城镇人均犯罪率。
ZN:住宅用地超过 25000 sq.ft. 的比例。
INDUS:城镇非零售商用土地的比例。
CHAS:查理斯河空变量(如果边界是河流,则为1;否则为0)
NOX:一氧化氮浓度。
RM:住宅平均房间数。
AGE:1940 年之前建成的自用房屋比例。
DIS:到波士顿五个中心区域的加权距离。
RAD:辐射性公路的接近指数。
TAX:每 10000 美元的全值财产税率。
PTRATIO:城镇师生比例。
B:1000(Bk-0.63)^ 2,其中 Bk 指代城镇中黑人的比例。
LSTAT:人口中地位低下者的比例。
MEDV:自住房的平均房价,以千美元计。
使用sklearn.datasets.load_boston即可加载相关数据集
其重要参数为:
波士顿房价数据集-加载示例
示例1:
from sklearn.datasets import load_boston
boston = load_boston()
print(boston.data.shape)
输出结果:
(506, 13)
示例2:
from sklearn.datasets import load_boston
data, target = load_boston(return_X_y=True)
print(data.shape)
print(target.shape)
输出结果:
(506, 13)
(506,)
鸢尾花数据集采集的是鸢尾花的测量数据以及其所属的类别。
测量数据包括:萼片长度、萼片宽度、花瓣长度、花瓣宽度。
类别共分为三类:Iris Setosa, Iris Versicolour,Iris Virginica。该数据集可用于多分类问题。
----鸢尾花部数据集分数据示例----
使用sklearn.datasets. load_iris即可加载相关数据集
其参数有:
鸢尾花数据集-加载示例
from sklearn.datasets import load_iris
iris = load_iris()
print(iris.data.shape)
print(iris.target.shape)
print(list(iris.target_names))
输出结果:
(150, 4)
(150,)
['setosa', 'versicolor', 'virginica']
手写数字数据集包括1797个0-9的手写数字数据,每个数字由8*8大小的矩阵构成,矩阵中值的范围是0-16,代表颜色的深度。
---------------数字0的样本---------------------
使用sklearn.datasets.load_digits即可加载相关数据集
其参数包括:
手写数字数据集示例
from sklearn.datasets import load_digits
import matplotlib.pyplot as plt
digits = load_digits()
print(digits.data.shape)
print(digits.target.shape)
print(digits.images.shape)
plt.matshow(digits.images[0])
plt.show()
输出结果:
(1797, 64)
(1797,)
(1797, 8, 8)
【显示结果】
sklearn库的共分为6大部分,分别用于完成分类任务、回归任务、聚类任务、降维任务、模型选择以及数据的预处理。
分类任务
分类模型
加载模块
最近邻算法
neighbors.NearestNeighbors
支持向量机
svm.SVC
朴素贝叶斯
naive_bayes.GaussianNB
决策树
tree.DecisionTreeClassifier
集成方法
ensemble.BaggingClassifier
神经网络
neural_network.MLPClassifier
回归任务
回归模型
加载模块
岭回归
linear_model.Ridge
Lasso回归
linear_model.Lasso
弹性网络
linear_model.ElasticNet
最小角回归
linear_model.Lars
贝叶斯回归
linear_model.BayesianRidge
逻辑回归
linear_model.LogisticRegression
多项式回归
preprocessing. PolynomialFeatures
聚类任务
聚类方法
加载模块
K-means
cluster.KMeans
AP聚类
cluster.AffinityPropagation
均值漂移
cluster.MeanShift
层次聚类
cluster.AgglomerativeClustering
DBSCAN
cluster.DBSCAN
BIRCH
cluster.Birch
谱聚类
cluster.SpectralClustering
降维任务
降维方法
加载模块
主成分分析
decomposition.PCA
截断SVD和LSA
decomposition.TruncatedSVD
字典学习
decomposition.SparseCoder
因子分析
decomposition.FactorAnalysis
独立成分分析
decomposition.FastICA
非负矩阵分解
decomposition.NMF
LDA
decomposition.LatentDirichletAllocation
声明:本博客的内容来自于MOOC的《Python机器学习应用》课程