欢迎访问集智主站: 集智, 通向智能时代的引擎
注意!
本文所有代码均可在集智原贴中运行调试(无需安装环境), 请点击这里前往原贴
随着实验科学中的数据量急速增长, 机器学习这门技术的重要性也与日俱增, 其解决的问题包括建立预测方程以关联观察结果, 对观察结果进行分类, 或是从没有标签的数据集中挖掘规律
本教程面向统计学习, 即基于统计原理应用机器学习技术: 从数据中得出结论 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 个 8x8 的手写数字像素图像组成
- %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)
来源: https://juejin.im/post/5a7a9bf96fb9a0634a38fc52