Sklearn之StandardScaler(数据预处理)

1.哪些机器学习算法不需要(需要)做归一化?
概率模型(树形模型)不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、RF、XGboost。而像Adaboost、SVM、LR、Knn、KMeans之类的最优化问题就需要归一化。
2.StandardScaler原理
作用:使得经过处理的数据符合标准正态分布,即均值为0,标准差为1。且是针对每一个特征维度来做的,而不是针对样本。
标准差标准化(standardScale),其转化函数为:
x*=x-所有样本的均值μ/所有样本的标准差
3.代码:
用numpy:

import numpy as np
x_np = np.array([[1.5, -1., 2.],
                [2., 0., 0.]])
mean = np.mean(x_np, axis=0)
std = np.std(x_np, axis=0)
print('矩阵初值为:{}'.format(x_np))
print('该矩阵的均值为:{}\n 该矩阵的标准差为:{}'.format(mean,std))
another_trans_data = x_np - mean
another_trans_data = another_trans_data / std
print('标准差标准化的矩阵为:{}'.format(another_trans_data))

用sklearn:

from sklearn.preprocessing import StandardScaler  # 标准化工具
import numpy as np
 
x_np = np.array([[1.5, -1., 2.],
                [2., 0., 0.]])
scaler = StandardScaler()
x_train = scaler.fit_transform(x_np)
print('矩阵初值为:{}'.format(x_np))
print('该矩阵的均值为:{}\n 该矩阵的标准差为:{}'.format(scaler.mean_,np.sqrt(scaler.var_)))
print('标准差标准化的矩阵为:{}'.format(x_train))
在scikit-learn(sklearn)中,有一些常用的数据预处理方法可以帮助我们准备和处理数据。以下是一些常见的数据预处理方法: 1. 特征缩放(Feature Scaling):将不同特征的数值范围缩放到相同的尺度,常用的方法有标准化(Standardization)和归一化(Normalization)。 - 标准化:使用 `sklearn.preprocessing.StandardScaler` 类可以将特征缩放为均值为0,方差为1的标准正态分布。 - 归一化:使用 `sklearn.preprocessing.MinMaxScaler` 类可以将特征缩放到指定的最小值和最大值之间。 2. 缺失值处理(Handling Missing Values):处理含有缺失值的数据,常用的方法有删除缺失值、插补缺失值和使用特定值填充缺失值。 - 删除缺失值:使用 `sklearn.preprocessing.Imputer` 类中的 `remove()` 方法可以删除含有缺失值的样本。 - 插补缺失值:使用 `sklearn.preprocessing.Imputer` 类中的 `fit()` 和 `transform()` 方法可以对缺失值进行插补,常见的插补方法有均值、中位数和众数。 - 填充特定值:使用 `sklearn.preprocessing.Imputer` 类中的 `fit()` 和 `transform()` 方法可以使用特定值(如0或者指定的常数)来填充缺失值。 3. 标签编码(Label Encoding):将分类变量转换为数值编码,常用的方法是使用 `sklearn.preprocessing.LabelEncoder` 类。 4. 独热编码(One-Hot Encoding):将分类变量转换为二进制编码,常用的方法是使用 `sklearn.preprocessing.OneHotEncoder` 类。 5. 特征选择(Feature Selection):选择对目标变量具有较高预测能力的特征,常用的方法有方差选择法、递归特征消除法和基于树模型的特征选择法。 - 方差选择法:使用 `sklearn.feature_selection.VarianceThreshold` 类可以通过阈值来选择方差大于指定阈值的特征。 - 递归特征消除法:使用 `sklearn.feature_selection.RFE` 类可以递归地选择特征,根据模型的性能来判断特征的重要性。 - 基于树模型的特征选择法:使用 `sklearn.feature_selection.SelectFromModel` 类可以基于树模型的特征选择方法,通过训练树模型来判断特征的重要性。 这些是scikit-learn中常用的数据预处理方法,根据具体的问题和数据类型,可以选择合适的预处理方法来处理数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值