normalization标准化即scale
例子如下
from sklearn 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))
[[ 10. 2.7 3.6]
[-100. 5. -2. ]
[ 120. 20. 40. ]]
[[ 0. -0.85170713 -0.55138018]
[-1.22474487 -0.55187146 -0.852133 ]
[ 1.22474487 1.40357859 1.40351318]]
然后我们进行下一步学习,先引入我们所需的第三方库
from sklearn import preprocessing
import numpy as np
from sklearn.model_selection import train_test_split#划分训练集测试集
from sklearn.datasets._samples_generator import make_classification#生成数据
from sklearn.svm import SVC#从支持向量机中选择支持向量机用于分类
import matplotlib.pyplot as plt
我们生成一些data方便我们做预测
X,y=make_classfication(n_samples=300,n_features=2,n_redundant=0,n_informative=2,random_state=22,n_clusters_per_class=1,scale=100)#300个data,2个属性,有两个比较相关的data的属性,随机序列为22
plt.scatter(X[:,0],X[:,1],c=y)
plt.show()
我们这次需要处理的数据如下
然后进行下一步工作
X=preprocessing.scale(X)#把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_train)
print(clf.score(X_test,y_test))
0.9666666666666667
如果我们不进行标准化,看看结果
0.9111111111111111
下降了一些,所以这种方式对于机器学习十分重要。