欢迎访问集智主站:集智,通向智能时代的引擎
注意!
本文所有代码均可在集智原贴中运行调试(无需安装环境),请点击这里前往原贴
随着实验科学中的数据量急速增长,机器学习这门技术的重要性也与日俱增,其解决的问题包括建立预测方程以关联观察结果,对观察结果进行分类,或是从没有标签的数据集中挖掘规律。
本教程面向统计学习,即基于统计原理应用机器学习技术:从数据中得出结论。 Scikit-learn是一个Python模块,整合了经典机器学习算法和常用的Python科学计算包(NumPy, SciPy, matplotlib)。
数据集
Scikit-learn以二维数组形式处理来自一个或多个数据集的学习信息,可以理解为一组多维的观察结果。一般称第一个轴为“样本轴”,第二个为“特征轴”。
鸢尾花:Scikit-learn内置的简单数据集范例
# 从scikit-learn库中导入数据集模块datasets
from sklearn import datasets
# 调用datasets的load_iris()方法创建对象,并赋值给变量iris
iris = datasets.load_iris()
# 将对象iris的data属性抽取出来,赋值给变量data
data = iris.data
# 输出data的shape属性
print(data.shape)
from sklearn import datasets
iris = datasets.load_iris()
data = iris.data
data.shape
复制代码
如果数据的初始形状并非(n_samples, n_features),则需要预处理以便在scikit-learn中使用。 当然了如果你的Python基础还不牢固,也欢迎到集智课堂里巩固一下基础
数字数据集:数据变形的举例
数字数据集有1797个8×8的手写数字像素图像组成
%matplotlib inline
from sklearn import datasets
# 导入digits数据集并输出其规模
digits = datasets.load_digits()
digits.images.shape
# 导入绘图扩展包matplotlib
import matplotlib.pyplot as plt
# 以灰度图像形式输出-1的像素图
plt.imshow(digits.images[-1], cmap=plt.cm.gray_r)
# 为了在Scikit中应用这组数据集,我们把8x8的图像转换成长度为64的矢量。
data = digits.images.reshape((digits.images.shape[0], -1))
digits = datasets.load_digits()
digits.images.shape
import matplotlib.pyplot as plt
plt.imshow(digits.images[-1], cmap=plt.cm.gray_r)
# 为了在Scikit中应用这组数据集,我们把8x8的图像转换成长度为64的矢量。
data = digits.images.reshape((digits.images.shape[0], -1))
digits.images.shape==(1797,8,8)
复制代码
预测器对象
拟合数据:预测器是Scikit-learn的主API,可以是任意从数据中学习的对象,比如分类,回归或聚类算法,抑或是从原始数据中抽取/过滤有效特征的转换器。
所有预测器对象都有以数据集(通常为2D数组)为输入参数的fit
方法:
estimator.fit(data)
# 预测器参数:所有的预测器参数都可以在实例化的时候指定,或之后修改相应属性。
estimator = Estimator(param1=1, param2=2)
复制代码