【机器学习 - 3】:数据归一化(最值归一化、均值方差归一化)
创始人
2024-05-13 12:48:07
0

文章目录

  • 数据归一化的使用
  • 最值归一化
  • 均值方差归一化(常用)
  • 在sklearn中调用归一化(鸢尾花数据归一化)

数据归一化的使用


为什么要使用数据归一化?
举个例子,例如我们要使用KNN算法来预测肿瘤为良性肿瘤或恶性肿瘤。以下是一些数据:

肿瘤大小(厘米)发现时间(天)肿瘤类型
样本11200良性肿瘤
样本25100恶性肿瘤
样本32150良性肿瘤

根据以上数据,画出散点图

import numpy as np
import matplotlib.pyplot as plt# 训练集数据
X_train = np.array([[1, 200],[5, 100],[2, 150]
])
y_train = np.array([1,0,1]) # 1为良性,0为恶性# 绘制散点图
plt.figure(dpi=100)
plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文
plt.scatter(X_train[y_train==1, 0], X_train[y_train==1,1], color='b') # 蓝色为良性
plt.scatter(X_train[y_train==0, 0], X_train[y_train==0,1], color='r')
plt.xlabel("肿瘤大小(厘米)")
plt.ylabel("发现时间(天)")
plt.legend(loc="best")
plt.show()

在这里插入图片描述
观察上图,并未发现任何问题。当我们计算样本1和样本2的距离时,公式为:
在这里插入图片描述
我们可发现纵坐标的数据远远大于横坐标的数据。这样在我们进行计算时,由于发现时间的影响远大于肿瘤大小的影响,所以预测相当于只采用了一个特征。

因此我们需要进行数据归一化

最值归一化


最值归一化:把所有数据映射到0-1之间。公式如下:
在这里插入图片描述
以上述例子为例:对发现时间的特征进行最值归一化。

import numpy as np
X = np.array([[1, 200],[5, 100],[2, 150]
])
X = np.array(X, dtype='float')
X[:,1] = (X[:,1]-np.min(X[:,1]))/(np.max(X[:,1])-np.min(X[:,1]))

在这里插入图片描述

均值方差归一化(常用)

均值方差归一化:它是把所有数据归到均值为0,方差为1的分布中。即确保最终得到的数据均值为0,方差为1。公式如下:
在这里插入图片描述
以上述例子为例:对发现时间的特征进行均值方差归一化。

import numpy as np
X = np.array([[1, 200],[5, 100],[2, 150]
])
X = np.array(X, dtype='float')
X[:,1] = (X[:,1]-np.mean(X[:,1]))/np.std(X[:,1]) #np.std()--求方差

在这里插入图片描述

在sklearn中调用归一化(鸢尾花数据归一化)

  1. 导入模块
import numpy as np
from sklearn.datasets import load_iris
from sklearn.preprocessing import StandardScaler # 均值方差归一化
from sklearn.model_selection import train_test_split
  1. 获取数据并预处理
iris = load_iris()
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)std_scaler = StandardScaler()
std_scaler.fit(X_train) # 计算均值和方差X_std_train = std_scaler.transform(X_train) # 对训练集特征进行归一化处理
X_std_test = std_scaler.transform(X_test) # 对测试集特征进行归一化处理

在这里插入图片描述
在这里插入图片描述

  1. 调用sklearn中的KNN算法,计算出准确率
from sklearn.neighbors import KNeighborsClassifierknn_clf = KNeighborsClassifier()
knn_clf.fit(X_std_train, y_train)knn_clf.score(X_std_test, y_test)

在这里插入图片描述

相关内容

热门资讯

优秀导游词 优秀导游词(精选35篇)  作为一名优秀的旅游从业人员,就有可能用到导游词,导游词是导游人员引导游客...
百里峡导游词 百里峡导游词精选  尊敬的各位朋友:  大家好!  欢迎来到祖冲之的故乡、山水休闲的胜地、美丽而热情...
屈原祠导游词 屈原祠导游词  作为一名专门为游客提供帮助的导游,编写导游词是必不可少的,导游词是导游员同游客交流思...
描写花果山导游词 描写花果山导游词  导语:花果山位于连云港市南云台山中麓。如下是精心为你挑选的关于花果山的导游词,欢...
拉法山导游词 拉法山导游词五篇  作为一名可信赖的导游人员,常常需要准备导游词,导游词作为一种解说的文体,它的作用...
朱家花园导游词 朱家花园导游词  朱家花园地处云南建水古城的建新街中段,是一组规模宏大的清代民居建筑,是清末乡绅朱渭...
经典全陪导游词 经典全陪导游词  导游词其主要特点是口语化些,此外还具有知识性、文学性、礼节性等,经典全陪导游词。和...
焦作博爱青天河导游词 焦作博爱青天河导游词  作为一名乐于助人的导游,常常要根据讲解需要编写导游词,导游词是讲解当地的基本...
河南省龙隐导游词 河南省龙隐导游词  作为一位出色的导游人员,往往需要进行导游词编写工作,导游词一般是根据实际的游览景...
长春长影世纪城导游词 长春长影世纪城导游词  作为一名乐于为游客排忧解难的导游,总归要编写导游词,导游词具有形象、生动、具...
阳朔聚龙潭景区导游词 阳朔聚龙潭景区导游词(精选5篇)  作为一名默默奉献的导游,就难以避免地要准备导游词,导游词可以加深...
大屿山导游词 大屿山导游词  大屿山岛是香港特区最大的岛屿,其面积比香港岛大近一倍。位于珠江口外。大屿山地势西南高...
湖南天子山导游词 湖南天子山导游词  导语:导游词是导游人员引导游客观光游览时的讲解词,是导游员同游客交流思想,向游客...
重庆大足石刻导游词 重庆大足石刻导游词(精选11篇)  作为一名专门为游客提供帮助的导游,常常需要准备导游词,导游词事实...
安徽宏村景点导游词介绍 安徽宏村景点导游词介绍  作为一名旅游从业人员,就有可能用到导游词,导游词可以加深游客对景点的印象,...
庐山芦林湖导游词 庐山芦林湖导游词  作为一名导游,编写导游词是必不可少的,导游词具有注重口语化、精简凝练、重点突出的...
北海公园九龙壁的导游词 北海公园九龙壁的导游词范文  作为一名导游,时常要开展导游词准备工作,导游词是导游员在游览时为口头表...
介绍那拉提草原导游词 介绍那拉提草原导游词  那拉提”是蒙古语“太阳”的意思,对于名字的由来,有一个小小的传说。以下是“介...
江西省庐山山南太乙村导游词 江西省庐山山南太乙村导游词  各位游客,大家好!欢迎来到太乙村旅游。  去过庐山的人很多,但去过太乙...