sklearn(四)----标准化数据,这里normalization就是scaling

来源:互联网 发布:sql having count(*) 编辑:程序博客网 时间:2024/05/29 16:49

标准化数据

这里normalization就是scaling

这里是在说属性差别很大对训练有不好的影响,这是我们就要用scaling

例子:

from sklean import preprocessing#标准化模块

import numpy as np

a=np.array([[10,2.7,3.6]

[-100,5,-2]

[120,20,40]],dtype=np.float64)

print(a)

print(preprocessing.scale(a))#标准化a


今天我们要做的是:

from sklean import preprocessing#标准化模块

import numpy as np

from sklearn.cross_validation import train_test_split #把数据分为两部分,

#一部分为测试,一部分为训练

from sklearn.datasets.samples_generator import make_classification#生成数据

from sklearn.svm import SVC#模型,这个应该是支持上良机的模型

import matplotlib.pyplot as plt

X,y=make_classificatdant=0,

n_informative=2,random_state=22,n_clusters_per_class=1,scale=100)

#这里简单说一下里面的含义,有300个例子,有两个属性,n_informative这个是属性相关的个数为二

#random_state随机产生数据,每次数据产生的是一样的)

plt.scatter(X[:,0],X[:,1],c=y)

plt.show()

结果是:


                                                



X=preprocessing.scale(X)这里其实还有一种写法,就是我们想规定数据标准化的取值范围

# X=preprocessing.minmax_scale(X,feature_range=(0,1))这个是默认的

X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3)

clf=SVC()

clf.fit(X_train,y_tarin)

#print(clf.predict(X_test))

print(clf.score(X_test,y_test))#上章已经说过他的意思了,打印准确度

结果是:如果用标准化准确率可以达到百分之九十多

但是没有用scale他的准确度只有四十多



原创粉丝点击