对不同的特征使用不同的特征缩放技术是不是正确?
Posted
技术标签:
【中文标题】对不同的特征使用不同的特征缩放技术是不是正确?【英文标题】:Is it right to use different feature scaling techniques to different features?对不同的特征使用不同的特征缩放技术是否正确? 【发布时间】:2020-08-15 05:03:21 【问题描述】:我读过这篇关于特征缩放的文章: all-about-feature-scaling
两种主要的特征缩放技术是:
min-max scaler
- 对分布非高斯的特征反应良好。
Standard scaler
- 对具有高斯分布的特征响应良好。
我阅读了其他帖子和示例,似乎我们总是使用一个缩放方法(min-max
或standard
)所有功能。。 p>
我还没有看到建议的示例或论文:
1. go over all the features, and for each feature:
1.1 check feature distribution
1.2 if the feature distribution is Gaussian:
1.2.1 use Standard scaler for this feature
1.3 otherwise:
1.3.1 use min-max scaler for this feature
为什么我们不混合缩放方法?
我的提案有什么问题或缺点?
【问题讨论】:
这里除了有点离题(不是编程问题),我认为你会在Cross Validated得到更可靠的答案,我建议你迁移这个. 【参考方案1】:然后,您的特征将具有不同的比例,这是一个问题,因为具有较大比例的特征将支配其余特征(例如,KNN)。具有 min-max 归一化的特征将被重新调整为 [0,1] 范围,而具有标准化的特征将被转换为负到正的范围(例如,[-2,+2] 甚至更宽小标准偏差)。
import pandas as pd
from sklearn.preprocessing import MinMaxScaler, StandardScaler
dfTest = pd.DataFrame('A':[14,90,80,90,70],
'B':[10,107,110,114,113])
scaler = MinMaxScaler()
dfTest['A'] = scaler.fit_transform(dfTest[['A']])
scaler = StandardScaler()
dfTest['B'] = scaler.fit_transform(dfTest[['B']])
ax = dfTest.plot.scatter('A', 'B')
ax.set_aspect('equal')
【讨论】:
以上是关于对不同的特征使用不同的特征缩放技术是不是正确?的主要内容,如果未能解决你的问题,请参考以下文章