学习笔记: 机器学习经典算法-数据集的归一化

简介: 机器学习经典算法-个人笔记和学习心得分享

特征量纲对样本点间距离计算的影响:

对于以上数据表中反应的样本情况,我们可以观察到样本的第一个特征(肿瘤大小)在两样本中有$5$倍的差值,第二特征(发现天数)只有$2$倍差值。但是直接计算量样本点的距离(如欧式距离) $eluc.dist= \sqrt {(1-5)^2 + (200-100)^2}$的时候,就会出现两样本的距离大小主要被第二个特征(发现时间)所主导,也就是差值大的特征掩盖了相比之下小差值特征所反映的贡献。**这样计算的样本点距离和实际存在一定偏差,同时也不能反映出样本内每个特征对样本的重要程度。所以需要将数据映射到统一尺度。

特别是在应用一些 涉及距离 的算法(如 SVM 分类器)时,需要注意数据特征的归一化处理。

数据归一化:

  • 最值归一化:把所有数据映射到0-1区间;
    $x_{scale} = \frac {x - x_{min}}{x_{max} - x_{min}}$
    适用于分布有明显边界的情况(比如学生的分数就有明显的边界0-100分的区间,而像工资收入这种数据就属于没有明显边界的数据);受outlier影响较大。
    python中x_scale = (x - np.min(x) )/ (np.max(x) - np.min(x))
    • 均值方差归一化(standardization):把所有数据归一到均值为0方差为1的分布中,属于最值归一化的一种改进方法。
      $x_{scale} = \frac {x - x_{mean}}{S}$
      适用范围较广,对于有或没有明显边界,以及可能存在极端数据的情况都可以使用。

训练集与测试集的归一化处理问题

对于一次批量采样的获取的原始数据,需要将该原始数据集分割成训练集和测试集来训练和测试调整模型。特别是对于测试集来说,其作用是为了模拟真实环境得来的数据,但是生产环境是很难或者说根本无法获得样例所属总体的均值和方差的,所以测试集的均值和方差并不是这里有限测试集本身的均值和方差。所以测试集的数据归一化过程中能使用的均值和方差只有训练集的均值和方差$x_{scale} = (x\_test - mean\_train)/std\_train$

在scikit-learn 框架中,可以使用其封装的Scaler方法来处理训练集与测试集的数据归一化:

import numpy as np
from sklearn import datasets

digits = datasets.load_digits() ### 载入手写数字数据集
X = digits.data
y = digits.target
### test_train_split
from sklearn.model_selection import train_test_split
Train_X,Test_X,Train_Y,Test_Y = train_test_split(X,y,test_size= 0.2,random_state=666)

### data scale
from sklearn.preprocessing import StandardScaler
standarScaler = StandardScaler()
standarScaler.fit(Train_X)
standarScaler.mean_ ### 获取训练集的均值
standarScaler.std_  ### 获取训练集的方差
Train_X_scale = standarScaler.transform(Train_X) ### 对训练集进行归一化
Test_X_scale  = standarScaler.transform(Test_X)  ### 对测试集进行归一化
目录
相关文章
|
29天前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
97 4
|
26天前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
43 1
|
1月前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
1月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
93 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 算法 PyTorch
用Python实现简单机器学习模型:以鸢尾花数据集为例
用Python实现简单机器学习模型:以鸢尾花数据集为例
128 1
|
1月前
|
机器学习/深度学习 算法
深入探索机器学习中的决策树算法
深入探索机器学习中的决策树算法
41 0
|
1月前
|
机器学习/深度学习 算法 Python
机器学习入门:理解并实现K-近邻算法
机器学习入门:理解并实现K-近邻算法
36 0
|
2月前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
1月前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的决策树算法
【10月更文挑战第29天】本文将深入浅出地介绍决策树算法,一种在机器学习中广泛使用的分类和回归方法。我们将从基础概念出发,逐步深入到算法的实际应用,最后通过一个代码示例来直观展示如何利用决策树解决实际问题。无论你是机器学习的初学者还是希望深化理解的开发者,这篇文章都将为你提供有价值的见解和指导。
|
2月前
|
机器学习/深度学习 算法 数据处理
EM算法对人脸数据降维(机器学习作业06)
本文介绍了使用EM算法对人脸数据进行降维的机器学习作业。首先通过加载ORL人脸数据库,然后分别应用SVD_PCA、MLE_PCA及EM_PCA三种方法实现数据降维,并输出降维后的数据形状。此作业展示了不同PCA变种在人脸数据处理中的应用效果。
42 0

热门文章

最新文章