python和机器学习 第四章(五)数据归一化

数据归一化

数据归一化:即特征值的缩放
解决方法:将所有的数据映射到同一尺度
矩阵按照列进行归一化

最值归一化
normalization:将所有的数据映射到0~1之间
适应于数据有明显边界的情况,受outlier影响较大
x_scale = (x - x_min)/(x_max - x_min)

均值方差归一化
standardization:把所有数据归一到均值为0方差为1的分布中
适用于数据没有明显边界,可能存在极端数据值的情况
x_scale = (x - x_mean)/S

scikit-learn中的scaler

对测试数据集要如何进行归一化处理
要用训练数据集得到的均值和方差进行归一化处理
(x_test - mean_train) / std_train

用scaler类计算训练数据集中的均值和方差,并将结果保存在scaler类中,后续数据直接进入scaler进行处理。

In [400]: from sklearn.preprocessing import StandardScaler
In [401]: standardScaler = StandardScaler()
#经过下面这一步后,scaler中就存放了均值方差归一化所需要的信息
In [402]: standardScaler.fit(X_train)
Out[402]: StandardScaler(copy=True, with_mean=True, with_std=True)
#进行归一化处理
In [407]: X_train = standardScaler.transform(X_train)
In [410]: X_test_standard = standardScaler.transform(X_test)

使用归一化后的数据进行knn分类

In [426]: from sklearn.neighbors import KNeighborsClassifier
     ...: knn_clf = KNeighborsClassifier(n_neighbors=3)
     ...: knn_clf.fit(X_train,y_train)
Out[426]: 
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
metric_params=None, n_jobs=1, n_neighbors=3, p=2,
weights='uniform')
In [427]:  knn_clf.score(X_test_standard,y_test)
Out[427]: 1.0
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值