sklearn库是用于机器学习一个工具包,有了它,可以帮我们用简单的函数实现传统机器学习中的分类、聚类等任务。
安装
sklearn的官网 http://scikit-learn.org/stable/
sklearn库基于Numpy、Scipy、matplotlib开发,因此需要先安装这些依赖。
安装顺序
Numpy是一个开源的python科学计算库,scipy是基于numpy集成的各种函数库,matplotlib是一个绘图工具,可以按照Numpy Scipy库 matplotlib、sklearn库的顺序安装。
注意sklearn的安装是 pip install scikit-learn
sklearn_11">sklearn库的六大功能
正如sklearn自己官网中写的,它的六大功能是:分类、回归、聚类、降维、模型选择、预处理
列举了几种sklearn中的数据集(这个是较早版本的,仅举例示意),分别可以用于上述几个功能。
序号 | 数据集 | 适用算法 | 加载方法 |
---|---|---|---|
1 | 波斯顿房价 | 回归 | laod_boston |
2 | 鸢尾花 | 分类 | load_iris() |
3 | 糖尿病 | 回归 | laod_diabetes() |
4 | 手写数字 | 分类 | load_digits() |
5 | olivetti脸部数据 | 降维 | fetch_olivertti_faces |
6 | 新闻分类 | 分类 | fetch_20newsgroup |
7 | 带标签的人脸数据 | 分类、降维 | fetch_tfw_people() |
8 | 路透社新闻 | 分类 | fetch_rev1() |
这些数据集不需要记住,从网站user Guid找到dataset,就可以找到全部的了,且这块随着版本的提升,也一直在做迭代更新:
当然这六大功能实际上内容是互相交叉的,比如很多模型既能做回归又能做分类,所以模型的选择也决定了它能作什么样子的功能。
sklearn_31">sklearn中的核心调用流程
sklearn中的核心调用流程一般是:从数据集获取数据-》切分数据集(为了训练和测试分开用)-》模型选择和训练-》预测-》计算损失-》可视化,下面是一个简单的例子,后续会详细讲解。下面的例子没有获取和切分数据集,后续也会介绍这部分,这地方仅随机构造一个数据集,测试下核心功能
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_errornp.random.seed(20)def arraygenreg():x = np.linspace(-10, 10, 100)y = 2*x + np.random.normal(0, 0.1, 100)return x, yfeatures, labels = arraygenreg()
features = features.reshape(-1, 1)
print(labels.shape)
#训练模型
model = LinearRegression()
model.fit(features, labels)
#自变量
print(model.coef_)
#截距
print(model.intercept_)#预测
x = np.array([20, 30, 40]).reshape(-1, 1)
y = model.predict(x)
print('labels:{}, target:{}, loss:{}', x, y, mean_squared_error(x, y))#可视化
plt.scatter(features, labels)
plt.scatter(x, y)
plt.show()