下面将向大家介绍 Python 中大名鼎鼎的机器学习工具库 Scikit-Learn。
为了使大家能更加清晰地了解 Scikit-Learn 中的相关功能,我们先对本节要用到的实例数据集 iris 做一个简单的介绍:
- import seaborn as sns
- iris = sns.load_dataset('iris')
- iris.head()
iris 是机器学习分类研究中常用的一个经典数据集,可以看到,这个数据集包含了鸢尾花萼片与花瓣的长宽信息,并且包含了每一株鸢尾花的种类标记。利用 Seaborn 库,我们可以绘制下列样本特征分布图,来查看样本在不同特征维度下的分布情况:
- %matplotlib inline
- import seaborn as sns; sns.set()
- sns.pairplot(iris, hue='species', size=1.5);
为了更方便地使用 Python 中机器学习的相关工具,我们有必要对样本的特征数据与分类标记进行一下划分,将其分别保存为 X_iris 与 y_iris:
- X_iris = iris.drop('species', axis=1)
- X_iris.shape
- y_iris = iris['species']
- y_iris.shape
好了,准备工作已经就绪,现在我们先把这份数据放在一边。为了更好地介绍 Scikit-Learn ,我们先来看一下线性回归模型的构建方法:我们构建了如下示例数据:
- import matplotlib.pyplot as plt
- import numpy as np
- rng = np.random.RandomState(42)
- x = 10 * rng.rand(50)
- y = 2 * x - 1 + rng.randn(50)
- plt.scatter(x, y);
导入 Scikit-Learn 中的对应模块:
- from sklearn.linear_model import LinearRegression
模型参数设置:
- model = LinearRegression(fit_intercept=True)
- model
- X = x[:, np.newaxis]
- X.shape
模型拟合:
- model.fit(X, y)
线性回归参数估计结果:
- model.coef_
- model.intercept_
后文还有介绍 Scikit-Learn 的几个机器学习的常用工具,内容较多,先搬运到这,有需要的同学可以先直接到 数析学院 查看原文