scikit-learn的基本用法(四)——数据归一化

来源:互联网 发布:u8用友软件介绍 编辑:程序博客网 时间:2024/04/30 12:35

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

本文主要介绍scikit-learn中的数据预处理之归一化。

  • Demo 1
import numpy as npfrom sklearn import preprocessing# 定义arraya = np.array([-10, 2.3, 13.7, 56, 108])print a# 对array进行归一化(normalization)# scale进行的操作是按列减去均值, 除以方差, 因此数据的均值为0, 方差为1print preprocessing.scale(a)
  • 结果
[ -10.     2.3   13.7   56.   108. ][-1.01951435 -0.73451375 -0.47036685  0.50975718  1.71463777]
  • Demo 2
import numpy as npimport matplotlib.pyplot as pltfrom sklearn import preprocessingfrom sklearn.cross_validation import train_test_splitfrom sklearn.datasets.samples_generator import make_classificationfrom sklearn.svm import SVC# 生成数据集X, y = make_classification(n_samples = 200, n_features = 2, n_redundant = 0, n_informative = 2,                            random_state = 22, n_clusters_per_class = 1, scale = 100)# 查看数据分布plt.scatter(X[:, 0], X[:, 1], c = y)plt.show()# 数据归一化处理, 不进行处理时注释掉X = preprocessing.scale(X)# 将数据分为训练集和测试集X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2)# 构建分类器svm = SVC()# 训练分类器svm.fit(X_train, y_train)# 测试print svm.score(X_test, y_test)
  • 结果

image

# 进行归一化的准确率0.9# 不进行归一化的准确率0.65

备注:由于数据是随机生成的, 结果可能会不同,但进行归一化与不进行归一化的差异是一致的。

0 0
原创粉丝点击