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库的六大功能

正如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中的核心调用流程

sklearn中的核心调用流程一般是:从数据集获取数据-》切分数据集(为了训练和测试分开用)-》模型选择和训练-》预测-》计算损失-》可视化,下面是一个简单的例子,后续会详细讲解。下面的例子没有获取和切分数据集,后续也会介绍这部分,这地方仅随机构造一个数据集,测试下核心功能

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

np.random.seed(20)


def arraygenreg():
    x = np.linspace(-10, 10, 100)
    y = 2*x + np.random.normal(0, 0.1, 100)
    return x, y


features, 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()
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐