传统的机器学习任务从开始到建模的一般流程是:获取数据 -> 数据预处理 -> 训练建模 -> 模型评估 -> 预测,分类。本文我们将依据传统机器学习的流程,看看在每一步流程中都有哪些常用的函数以及它们的用法是怎么样的。希望你看完这篇文章可以最为快速的开始你的学习任务。

1. 获取数据

1.1 导入sklearn数据集

  sklearn中包含了大量的优质的数据集,在你学习机器学习的过程中,你可以通过使用这些数据集实现出不同的模型,从而提高你的动手实践能力,同时这个过程也可以加深你对理论知识的理解和把握。(这一步我也亟需加强,一起加油!^-^)

首先呢,要想使用sklearn中的数据集,必须导入datasets模块:

from sklearn import datasets

 下图中包含了大部分sklearn中数据集,调用方式也在图中给出,这里我们拿iris的数据来举个例子:

  

iris = datasets.load_iris() # 导入数据集X = iris.data # 获得其特征向量y = iris.target # 获得样本label

1.2 创建数据集

  你除了可以使用sklearn自带的数据集,还可以自己去创建训练样本,具体用法参见《

下面我们拿分类问题的样本生成器举例子:

复制代码
from sklearn.datasets.samples_generator import make_classification  X, y = make_classification(n_samples=6, n_features=5, n_informative=2,      n_redundant=2, n_classes=2, n_clusters_per_class=2, scale=1.0,      random_state=20)  # n_samples:指定样本数 # n_features:指定特征数 # n_classes:指定几分类 # random_state:随机种子,使得随机状可重
复制代码
复制代码
>>> for x_,y_ in zip(X,y):     print(y_,end=': ')     print(x_)       0: [-0.6600737  -0.0558978   0.82286793  1.1003977  -0.93493796] 1: [ 0.4113583   0.06249216 -0.90760075 -1.41296696  2.059838  ] 1: [ 1.52452016 -0.01867812  0.20900899  1.34422289 -1.61299022] 0: [-1.25725859  0.02347952 -0.28764782 -1.32091378 -0.88549315] 0: [-3.28323172  0.03899168 -0.43251277 -2.86249859 -1.10457948] 1: [ 1.68841011  0.06754955 -1.02805579 -0.83132182  0.93286635]
复制代码

2. 数据预处理

  数据预处理阶段是机器学习中不可缺少的一环,它会使得数据更加有效的被模型或者评估器识别。下面我们来看一下sklearn中有哪些平时我们常用的函数:

from sklearn import preprocessing

2.1 数据归一化

  为了使得训练数据的标准化规则与测试数据的标准化规则同步,preprocessing中提供了很多Scaler:

复制代码
data = [[0, 0], [0, 0], [1, 1], [1, 1]] # 1. 基于mean和std的标准化scaler = preprocessing.StandardScaler().fit(train_data) scaler.transform(train_data) scaler.transform(test_data)  # 2. 将每个特征值归一化到一个固定范围scaler = preprocessing.MinMaxScaler(feature_range=(0, 1)).fit(train_data) scaler.transform(train_data) scaler.transform(test_data) #feature_range: 定义归一化范围,注用()括起来