scikit-learn中的数据归一化

在机器学习使用数据归一化的时候有一个重要的注意事项

我们对训练数据进行均值和方差的处理,得到mean_train以及std_train,但是在对测试数据进行归一化的时候,是不能直接用测试数据的均值和方差来进行归一化的,应该使用训练数据的均值和方差对测试数据进行均值方差归一化

为什么要这样做呢,我们训练这个模型是为了在真实的环境中去使用的,测试数据是模拟真实的环境,但是真实环境很有可能是没法得到所有的测试数据的均值和方差的,是很难得到这种统计数据的,另外,对数据的归一化也是算法的一部分,我们针对后面来的数据,应该也对其进行这样的处理

那么我们就必须要保存训练数据集得到的均值和方差

整体流程

实际操作(以鸢尾花为例)

x前十行的内容(并未进行归一化处理)

scikit-learn中的standardscaler

想调用,只需要

from sklearn.preprocessing import StandardScaler

创建一个实例

standardScaler = StandardScaler()

进行fit操作,其包含了很多的信息

standardScaler.fit(X_train)

数组的均值(对应的四个特征的均值)

对于mean_的_,对于是由用户传进去的变量计算得到的,用户可以随时在外围进行查询的,在后面要有_才行

方差

standardScaler.std_

这个我的版本已经弃用了,使用的话会报错

标准差

standardScaler.scale_

现在可以正式使用transform进行数据归一化处理

注意:这样处理以后,X_train实际上没有进行变化

使用

X_train = standardScaler.transform(X_train)

就可以使X_train保存下归一化以后的矩阵了

在对训练矩阵进行归一化

X_test_standard = standardScaler.transform(X_test)

使用knn算法进行预测分析准确率

值得注意的是,当我们用归一化以后的训练集来训练机器算法之后,我们在预测的时候,测试数据集必须同样进行归一化,不然的话准确率会相当的低

在pc中手动写出可以实现的归一化

import numpy as np

class StandardScaler:

def __init__(self):

self.mean_ = None

self.scale_ = None;

def fit(self, X):

assert X.ndim == 2, "The dimension of X must be 2"

self.mean_ = np.array([np.mean(X[:, i]) for i in range(X.shape[1])])

self.scale_ = np.array([np.std(X[:, i]) for i in range(X.shape[1])])

return self

def tranform(self, X):

assert X.ndim == 2, "The dimension of X must be 2"

assert self.mean_ is not None and self.scale_ is not None, \

"must fit before transform!"

assert X.shape[1] == len(self.mean_), \

"the feature number of X must be equal to mean_ and std_"

resX = np.empty(shape=X.shape, dtype=float)

for col in range(X.shape[1]):

resX[:, col] = (X[:, col] - self.mean_[col]) / self.scale_[col]

return resX

python中的scaler_【笔记】scikit-learn中的Scaler(归一化)相关推荐

  1. python笔迹识别_python_基于Scikit learn库中KNN,SVM算法的笔迹识别

    之前我们用自己写KNN算法[网址]识别了MNIST手写识别数据 [数据下载地址] 这里介绍,如何运用Scikit learn库中的KNN,SVM算法进行笔迹识别. 数据说明: 数据共有785列,第一列 ...

  2. python 高维数据_用Sci-kit learn和XGBoost进行多类分类:Brainwave数据案例研究

    在机器学习中,高维数据的分类问题非常具有挑战性.有时候,非常简单的问题会因为这个"维度诅咒"问题变得非常复杂.在本文中,我们将了解不同分类器的准确性和性能是如何变化的. 理解数据 ...

  3. python的messagebox的用法_Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解...

    本文实例讲述了Python GUI编程学习笔记之tkinter中messagebox.filedialog控件用法.分享给大家供大家参考,具体如下: 相关内容: messagebox 介绍 使用 fi ...

  4. 机器学习与Scikit Learn学习库

    摘要: 本文介绍机器学习相关的学习库Scikit Learn,包含其安装及具体识别手写体数字案例,适合机器学习初学者入门Scikit Learn. 在我科研的时候,机器学习(ML)是计算机科学领域中最 ...

  5. Scikit Learn: 在python中机器学习

    Warning 警告:有些没能理解的句子,我以自己的理解意译. 翻译自:Scikit Learn:Machine Learning in Python 作者: Fabian Pedregosa, Ga ...

  6. [转载]Scikit Learn: 在python中机器学习

    原址:http://my.oschina.net/u/175377/blog/84420 目录[-] Scikit Learn: 在python中机器学习 载入示例数据 一个改变数据集大小的示例:数码 ...

  7. python笔记之NUMPY中的掩码数组numpy.ma.mask

    python科学计算_numpy_线性代数/掩码数组/内存映射数组 1. 线性代数 numpy对于多维数组的运算在默认情况下并不使用矩阵运算,进行矩阵运算可以通过matrix对象或者矩阵函数来进行: ...

  8. Python学习小甲鱼视频做的笔记(持续更新中)

    Python BIF :Built-in functions(内建函数) Python与大多数其他计算机语言的做法稍有不同,他并不是把值存储在变量中,而更像是把名字贴在值的上边. 在使用变量之前,必须 ...

  9. 笨办法学python 粗略笔记(learn python the hard way)

    笨办法学python 粗略笔记(learn python the hard way) 标签(空格分隔): python # _*_ coding: utf_8 _*_ ''' ### ex1 prin ...

  10. 【scikit-learn】如何用Python和SciKit Learn 0.18实现神经网络

    本教程的代码和数据来自于 Springboard 的博客教程.本文的作者为 Jose Portilla,他是网络教育平台 Udemy 一门数据科学类课程的讲师. GitHub 链接:https://g ...

最新文章

  1. SpringMVC 中整合JSON、XML视图一
  2. 实战3--设计管理模块,整合!!!
  3. Divan and Kostomuksha (easy version) dp,gcd(2100)
  4. DeepMind:所谓SACX学习范式
  5. Xamarin.Forms 5.0 项目实战发布!
  6. Spring陷阱:事务测试被认为是有害的
  7. Sql server日期函数操作
  8. java callback 多线程_JAVA Callback效率测试
  9. 安装ps2021后,解决adobe一直发送消息的办法
  10. POJ 2502 Subway dij
  11. 《Splunk智能运维实战》——2.8 列出浏览次数最多的产品
  12. java中static和final修饰符
  13. Android-7.0-Nuplayer概述
  14. python读取data_Python DataFile包_程序模块 - PyPI - Python中文网
  15. HTML网页设计:十一、表单
  16. Excel批量插入图片小技巧
  17. redis实战【西橙先生】
  18. 如何解决ubuntu18.04上搜狗输入法中文输入时候选乱码的问题?
  19. Flink部署——Debugging(开发实用,建议收藏)
  20. CSS实现文字动画效果【每日一题】

热门文章

  1. html微信分享没有图片不显示,微信分享网页链接缩略图不显示解决方法
  2. 删除单向链表的最后一个节点
  3. 不忘初心,持之以恒,笔耕不辍,利人利己
  4. 深圳礼品展上新“缤纷食品馆” 解锁员工福利新场景
  5. vm8网卡原理及应用
  6. IDrawingDoc Interface 学习笔记
  7. python中as是什么意思_python中with python中with as 是什么意思刚入门求解释!!!
  8. 程序员快收藏:国内一二线城市的互联网公司汇总
  9. VoIP技术的基本原理与应用
  10. bittorrent+sync+java_使用BitTorrent-Sync实现双机文件双向同步