python中的scaler_【笔记】scikit-learn中的Scaler(归一化)
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(归一化)相关推荐
- python笔迹识别_python_基于Scikit learn库中KNN,SVM算法的笔迹识别
之前我们用自己写KNN算法[网址]识别了MNIST手写识别数据 [数据下载地址] 这里介绍,如何运用Scikit learn库中的KNN,SVM算法进行笔迹识别. 数据说明: 数据共有785列,第一列 ...
- python 高维数据_用Sci-kit learn和XGBoost进行多类分类:Brainwave数据案例研究
在机器学习中,高维数据的分类问题非常具有挑战性.有时候,非常简单的问题会因为这个"维度诅咒"问题变得非常复杂.在本文中,我们将了解不同分类器的准确性和性能是如何变化的. 理解数据 ...
- python的messagebox的用法_Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解...
本文实例讲述了Python GUI编程学习笔记之tkinter中messagebox.filedialog控件用法.分享给大家供大家参考,具体如下: 相关内容: messagebox 介绍 使用 fi ...
- 机器学习与Scikit Learn学习库
摘要: 本文介绍机器学习相关的学习库Scikit Learn,包含其安装及具体识别手写体数字案例,适合机器学习初学者入门Scikit Learn. 在我科研的时候,机器学习(ML)是计算机科学领域中最 ...
- Scikit Learn: 在python中机器学习
Warning 警告:有些没能理解的句子,我以自己的理解意译. 翻译自:Scikit Learn:Machine Learning in Python 作者: Fabian Pedregosa, Ga ...
- [转载]Scikit Learn: 在python中机器学习
原址:http://my.oschina.net/u/175377/blog/84420 目录[-] Scikit Learn: 在python中机器学习 载入示例数据 一个改变数据集大小的示例:数码 ...
- python笔记之NUMPY中的掩码数组numpy.ma.mask
python科学计算_numpy_线性代数/掩码数组/内存映射数组 1. 线性代数 numpy对于多维数组的运算在默认情况下并不使用矩阵运算,进行矩阵运算可以通过matrix对象或者矩阵函数来进行: ...
- Python学习小甲鱼视频做的笔记(持续更新中)
Python BIF :Built-in functions(内建函数) Python与大多数其他计算机语言的做法稍有不同,他并不是把值存储在变量中,而更像是把名字贴在值的上边. 在使用变量之前,必须 ...
- 笨办法学python 粗略笔记(learn python the hard way)
笨办法学python 粗略笔记(learn python the hard way) 标签(空格分隔): python # _*_ coding: utf_8 _*_ ''' ### ex1 prin ...
- 【scikit-learn】如何用Python和SciKit Learn 0.18实现神经网络
本教程的代码和数据来自于 Springboard 的博客教程.本文的作者为 Jose Portilla,他是网络教育平台 Udemy 一门数据科学类课程的讲师. GitHub 链接:https://g ...
最新文章
- SpringMVC 中整合JSON、XML视图一
- 实战3--设计管理模块,整合!!!
- Divan and Kostomuksha (easy version) dp,gcd(2100)
- DeepMind:所谓SACX学习范式
- Xamarin.Forms 5.0 项目实战发布!
- Spring陷阱:事务测试被认为是有害的
- Sql server日期函数操作
- java callback 多线程_JAVA Callback效率测试
- 安装ps2021后,解决adobe一直发送消息的办法
- POJ 2502 Subway dij
- 《Splunk智能运维实战》——2.8 列出浏览次数最多的产品
- java中static和final修饰符
- Android-7.0-Nuplayer概述
- python读取data_Python DataFile包_程序模块 - PyPI - Python中文网
- HTML网页设计:十一、表单
- Excel批量插入图片小技巧
- redis实战【西橙先生】
- 如何解决ubuntu18.04上搜狗输入法中文输入时候选乱码的问题?
- Flink部署——Debugging(开发实用,建议收藏)
- CSS实现文字动画效果【每日一题】
热门文章
- html微信分享没有图片不显示,微信分享网页链接缩略图不显示解决方法
- 删除单向链表的最后一个节点
- 不忘初心,持之以恒,笔耕不辍,利人利己
- 深圳礼品展上新“缤纷食品馆” 解锁员工福利新场景
- vm8网卡原理及应用
- IDrawingDoc Interface 学习笔记
- python中as是什么意思_python中with python中with as 是什么意思刚入门求解释!!!
- 程序员快收藏:国内一二线城市的互联网公司汇总
- VoIP技术的基本原理与应用
- bittorrent+sync+java_使用BitTorrent-Sync实现双机文件双向同步