sklearn数据预处理模块,sklearn数据预处理答案

  sklearn数据预处理模块,sklearn数据预处理答案

  Sklearn是机器学习中常用的python第三方模块,封装了常用的机器学习算法。

  包括:

  1.分类(分类)

  2.回归

  3.聚类(群集)

  4.数据的降维

  5.常用模型(模型选择)

  6.数据预处理(预处理)

  本文将从sklearn的安装入手,由浅入深逐步入门sklearn。

  斯克勒兰装置

  sklearn目前的版本是0.19.1。

  包装:

  Python (=2.6或3.3)

  NumPy(=1.6.1)

  SciPy=0.9

  使用pip安装,终端可以直接执行。

  pip install -U scikit-learn

  使用Anaconda来安装。建议使用Anaconda,因为它有内置的工具,比如NumPy和SciPy。

  康达安装sci kit-学习

  安装完成后,您可以在python中检查版本。如果导入sklearn没有报错,说明安装成功。

  导入sklearn

  sklearn。__版本_ _

  0.19.1

  检索数据

  机器学习算法往往需要大量数据。skleran中获取数据的方式通常有两种,一种是使用自己的数据集,另一种是创建数据集。

  导入数据集

  Sklearn自带了很多数据集,可以用来测试分析算法,省去了自己找数据集的麻烦。

  包括:

  Iris数据集:load_iris()

  手写数据集:load_digitals()

  糖尿病数据集:load_diabetes()

  乳腺癌数据集:load _乳腺_癌症()

  波士顿房价数据集:load_boston()

  体能训练数据集:load_linnerud()

  这里以虹膜数据集为例导入数据集。

  #导入sklearn的数据集

  将sklearn.datasets作为sk_datasets导入

  iris=sk_datasets.load_iris()

  Iris_X=iris.data #导入数据

  Iris_y=iris.target #导入标签

  创建数据集

  可以使用skleran的样本生成器来创建数据,sk learn . datasets . samples _ generator包含了大量创建样本数据的方法。

  这里,样本数据是通过对问题进行分类而创建的。

  将sk learn . datasets . samples _ generator导入为sk_sample_generator

  x,y=sk _ sample _ generator . make _ classification(n _ samples=6,n_features=5,n _ informative=2,n_redundant=3,n _ class=2,n_clusters_per_class=2,scale=1,random_state=20)

  对于x_,y_ in zip(X,y):

  print(y_,end=:)

  打印(x_)

  参数描述:

  N_features:特征数=n _ informational()n _ redundant n _ repeated

  n _ informational:多信息特征的数量

  N_redundant:冗余信息,信息特征的随机线性组合。

  N_repeated:重复信息,随机抽取n _ informative和n_redundant特征。

  N_classes:分类类别

  N_clusters_per_class:某个类别由几个集群组成。

  Random_state:随机种子,以便重复实验。

  N_classes*n_clusters_per_class应小于或等于2^n_informative

  打印结果:

  0: [ 0.64459602 0.92767918 -1.32091378 -1.25725859 -0.74386837]

  0: [ 1.66098845 2.22206181 -2.86249859 -3.28323172 -1.62389676]

  0: [ 0.27019475 -0.12572907 1.1003977 -0.6600737 0.58334745]

  1: [-0.77182836 -1.03692724 1.34422289 1.52452016 0.76221055]

  1: [-0.1407289 0.32675611 -1.41296696 0.4113583 -0.75833145]

  1: [-0.76656634 -0.35589955 -0.83132182 1.68841011 -0.4153836 ]

  数据集的划分

  在机器学习的过程中,数据集往往被分为训练集和测试集。sklearn中的model_selection为我们提供了一种划分数据集的方法。

  以虹膜数据集为例进行划分。

  将sklearn.model_selection导入为sk_model_selection

  X_train,X_test,y_train,y _ test=sk _ model _ selection . train _ test _ split(iris _ X,iris_y,train_size=0.3,random_state=20)

  参数描述:

  数组:样本数组,包括特征向量和标签。

  测试大小:

  浮动-获得的比重测试样本(默认值:0.25)

  int-获得了多少个测试样本?

  训练大小:与测试大小相同

  Random_state:int-random种子(种子是固定的,实验可以重复)

  shuffle-在分割之前是否打乱数据(默认为True)

  我们的训练模型使用的数据集都是基于此的。

  数据预处理

  为什么我们需要对数据进行预处理?

  通常在现实生活中,我们得到的数据中往往存在大量无用信息甚至错误信息,机器学习中有句话叫‘垃圾进,垃圾出’,数据的健康程度对算法结果影响很大。数据预处理是为了使冗余、混乱的源数据满足其应用需求。

  当然,光是数据预处理方法就能写几千字。这里只讨论几种基本的数据预处理方法。

  Skleran为我们提供了一个数据预处理包:预处理,我们可以直接导入。

  将sklearn.preprocessing作为sk_preprocessing导入

  我们用下面的例子:[[1,-1,2],[0,2,-1],[0,1,-2]]作为初始数据。

  数据标准化

  基于平均值和标准差的标准化

  scaler=sk _预处理。标准缩放器()。适合(X)

  new_X=scaler.transform(X)

  打印(基于平均值和标准值的标准化:,new_X)

  打印结果:

  基于平均值和标准差的标准化:

  [[ 1.41421356 -1.33630621 1.37281295]

  [-0.70710678 1.06904497 -0.39223227]

  [-0.70710678 0.26726124 -0.98058068]]

  标准化到一定的间隔。feature_range是数据归一化的范围。

  scaler=sk _预处理。MinMaxScaler(feature_range=(0,1))。适合(X)

  new_X=scaler.transform(X)

  打印(标准化到某个范围,new_X)

  打印结果:

  在一定范围内标准化

  [[1.0.1.]

  [ 0.1.0.25 ]

  [ 0.0.66666667 0.]]

  数据正规化

  首先求出样本的p-范数,然后将样本的所有元素除以范数,使得每个样本的范数最终为1。

  new _ X=sk _ preprocessing . normalize(X,norm=l2 )

  打印(找到第二个范数,new_X)

  打印结果:

  在一定范围内标准化

  [[0.40824829 -0.40824829 0.81649658]

  [ 0.0.89442719 -0.4472136 ]

  [ 0.0.4472136 -0.89442719]]

  总结

  介绍了sklearn的安装,sklearn导入数据集和创建数据集的基本方法,以及数据预处理的常用方法。

  接下来重点介绍如何使用sklearn提取特征,如何使用sklearn实现机器学习的经典算法,如何保存模型。

sklearn数据预处理模块,sklearn数据预处理答案