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实现机器学习的经典算法,如何保存模型。