SciKit-Learn 入门学习笔记(2)

本文为 SciKit-Learn 入门进阶篇,主要介绍了一些高级用法,若对sklearn还不够了解,可以先看看:SciKit-Learn 入门学习笔记(1)

1 正规化 Normalization

由于资料的偏差跨度会影响机器学习的成效,因此**正规化(标准化)**数据可以提升机器学习的成效。

1.1 数据标准化

from sklearn import preprocessing #标准化数据模块
import numpy as np

#建立Array
a = np.array([[10, 2.7, 3.6],
              [-100, 5, -2],
              [120, 20, 40]], dtype=np.float64)

#将normalized后的a打印出
print(preprocessing.scale(a))
"""
 [[ 0.         -0.85170713 -0.55138018]
  [-1.22474487 -0.55187146 -0.852133  ]
  [ 1.22474487  1.40357859  1.40351318]]
 """

1.2 数据标准化对机器学习成效的影响

加载模块:

# 标准化数据模块
from sklearn import preprocessing 
import numpy as np

# 将资料分割成train与test的模块
from sklearn.model_selection import train_test_split

# 生成适合做classification资料的模块
from sklearn.datasets.samples_generator import make_classification 

# Support Vector Machine中的Support Vector Classifier
from sklearn.svm import SVC 

# 可视化数据的模块
import matplotlib.pyplot as plt 

生成适合做Classification数据:

#生成具有2种属性的300笔数据
X, y = make_classification(
    n_samples=300, 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_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.477777777778

数据标准化后:
数据的单位发生了变化, X 数据也被压缩到差不多大小范围.
在这里插入图片描述

X = preprocessing.scale(X
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值