h5 网站建设,纯文本网站建设,大连工业大学,东莞寮步做网站的有吗scikit-learn的Scaler数据归一化 一、摘要二、训练数据集和测试数据集的归一化处理原则三、scikit-learn中的Scalar类及示例四、自定义StandardScaler类进行数据归一化处理五、小结 一、摘要
本文主要介绍了scikit-learn中Scaler的使用方法#xff0c;特别强调了数据归一化在… scikit-learn的Scaler数据归一化 一、摘要二、训练数据集和测试数据集的归一化处理原则三、scikit-learn中的Scalar类及示例四、自定义StandardScaler类进行数据归一化处理五、小结 一、摘要
本文主要介绍了scikit-learn中Scaler的使用方法特别强调了数据归一化在机器学习过程中的重要性。讲述了归一化算法在训练模型前对训练数据集的处理以及预测时对测试数据集的正确归一化方式。强调了保存训练数据集得到的均值和方差的重要性并介绍了scalar类在数据处理中的封装理念和过程。最后通过实际代码示例演示了如何使用standard scalar对数据进行归一化处理并进行了knn分类实验展示了归一化处理对提高模型预测准确度的重要性。
二、训练数据集和测试数据集的归一化处理原则
训练数据集用于训练模型测试数据集用于评估模型性能。归一化处理包括均值和方差的计算用于将数据转换为标准正态分布。测试数据集应使用训练数据集得到的均值和方差进行归一化处理。不应直接对测试数据集计算均值和方差应使用训练数据集的均值和方差。
三、scikit-learn中的Scalar类及示例 Scalar类封装了数据的归一化处理使流程与机器学习算法一致。fit方法用于计算训练数据集的均值和方差保存关键信息。transform方法用于对输入样例进行归一化处理输出结果。使用scalar类可以方便地对后续样本进行归一化并送入机器学习算法中进行预测处理。StandardScaler的使用示例具体实现步骤如下 1.加载鸢尾花数据集分为训练数据集和测试数据集。 import numpy as np
from sklearn import datasets# 引入鸢尾花数据集
iris datasets.load_iris()# 特征矩阵和标签向量
X iris.data
y iris.target# 将特征矩阵划分成训练集和测试集及其对应的特征向量
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test train_test_split(X,y,test_size0.2,random_state666)2.使用StandardScaler对训练数据集进行归一化处理。 # 使用StandardScaler对训练数据集进行归一化处理.
from sklearn.preprocessing import StandardScaler
# 初始化对象
standardScaler StandardScaler()
# 训练数据集进行归一化
standardScaler.fit(X_train)
X_train_standard standardScaler.transform(X_train)
X_train_standard执行效果 3.使用相同的StandardScaler对测试数据集进行归一化处理。 # 使用StandardScaler对测试数据集进行归一化处理.
standardScaler.fit(X_test)
X_test_standard standardScaler.transform(X_test)
X_test_standard执行效果 4.使用归一化后的数据训练k-近邻分类器并评估分类准确度。 # 使用归一化后的数据训练k-近邻分类器并评估分类准确度。
from sklearn.neighbors import KNeighborsClassifier# 初始化分类器
knn_clf KNeighborsClassifier(n_neighbors3,n_jobs-1)# 调用fit函数
knn_clf.fit(X_train_standard,y_train)# 调用score函数
knn_clf.score(X_test_standard,y_test)执行效果 5.对比未归一化处理的测试数据集会导致分类准确度降低。 # 传入未归一化的测试集
knn_clf.score(X_test,y_test)执行效果 传入未归一化的测试集后kNN分类器的准确度就下降了很多。
四、自定义StandardScaler类进行数据归一化处理
创建自定义StandardScaler类包含fit和transform方法。fit方法计算训练数据集的均值和方差保存为类的属性。transform方法使用训练数据集的均值和方差对输入数据进行归一化处理。自定义StandardScaler的使用方式与sklearn中的StandardScaler一致。自定义完整代码如下import numpy as npclass MyStandardScaler:def __init__(self):self.mean_ None # 均值self.scale_ None # 方差def fit(self, X):根据训练集X(二维的)获得数据的均值和方差assert X.ndim 2, \The dimenstion of X must be 2.self.mean_ np.array([(np.mean(X[:, col])) for col in range(X.shape[1])])self.scale_ np.array([(np.std(X[:, col])) for col in range(X.shape[1])])return selfdef transform(self, X):将X进行均值方差归一化处理assert X.ndim 2, \The dimenstion 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 number of Xs features must be equal to the number of self.mean_. # 定义一个与X大小一致的空的矩阵retX np.empty(shapeX.shape, dtypefloat)# 均值方差归一化算法for col in range(X.shape[1]):retX[:, col] (X[:, col] - self.mean_[col]) / self.scale_[col]return retX在jupyter中执行效果如下:
五、小结
本文围绕 scikit - learn 中 Scaler 的使用方法展开介绍着重强调了数据归一化在机器学习中的重要性。文中阐述了归一化算法在训练模型前对训练数据集的处理操作以及预测时对测试数据集的正确归一化方式。特别指出保存训练数据集所得均值和方差的重要意义还介绍了 scalar 类在数据处理中的封装理念与过程。最后借助实际代码示例演示了运用 standard scalar 对数据进行归一化处理的过程并开展了 knn 分类实验以此展示归一化处理对提升模型预测准确度的重要作用。