标准化数据
这里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他的准确度只有四十多