虚拟变量能否标准化?

  统计/机器学习 回归分析 数据预处理 Python    浏览次数:309        分享
0

大多时候,处理数据时都是先对数值变量做标准化,再将分类变量one-hot编码。但有时出现这种情况:
对于某些连续特征,我需要将其二元化(如:大于0时,值指派为1;等于0时,值指派为0)。做了二元化后,无需one-hot编码,但是在标准化时,因为其属于数值类型,也会被一并标准化。那么,这样的标准化是否可行?在标准化时,我是否应该把这部分值为0/1的二元离散变量排除在外?

 

努力成为数据大湿   2020-04-16 10:53



   2个回答 
0

我个人的习惯是把已经二元化的变量跳过,只对非二元的数值特征进行标准化。

如果你有时间富余,可以两者方式都试试,交叉验证一下,看哪个效果好。我的经验是通常两种方法效果差不多。所以本质上没差别。

SofaSofa数据科学社区DS面试题库 DS面经

雷猴   2020-04-16 23:28

感谢您的回复!刚刚试了下,二元数值标准化后,性能略微下降。不过可能主要是因为试的几个是稀疏特征~总体效果确实相差不大~ - 努力成为数据大湿   2020-04-18 21:58
0

以神经网络为例说明为什么要标准化输入输出。假如输入输出variance比例为1000,有10层网络,那每层网络就需要缩小信号的variance2倍。但是我们一般把网络参数初始化为N(0,1),反而会增加variance。(假设xy独立,var(x+y)=var(x)+var(y) =var(x)+1)。此时初始化参数和收敛参数相差太远,会增加收敛时间。如果标准化会,初始化参数会里收敛值近一点。最好是用He Kaiming initialization, 这样收敛会更快。

0,1的onehot编码,variance离1差距不大,嫌麻烦可以不做标准化。如果输入variance比1大很多,需要标准化。

SofaSofa数据科学社区DS面试题库 DS面经

Zealing   2020-04-17 04:56

请问二元(0/1)变量,variance不是总小于1吗,您说的“variance比1大很多”应该怎么理解?感谢您的回复! - 努力成为数据大湿   2020-04-18 22:01
你看错了,我是说差距不大,不是比1大。 - Zealing   2020-04-19 11:30


  相关主题

statsmodels里的ols怎么处理分类变量?   1回答

特征归一化后的多项式回归拟合结果   2回答

对进行回归分析之前,如何处理不同类型的变量?   1回答

线性回归的变量归一化的问题   1回答

数据的标准化(Z-score标准化)是否会改变训练得到的超平面系数向量?   1回答

python里怎么做分位数回归(quantile regression)?   1回答

python中如何实现保序回归算法?   1回答

系数非负的线性回归的python实现   2回答

用uci的crimes做了一个线性回归,test很差   2回答

str.replace为什么会将数字替换成NaN   1回答

把分组频数统计的结果添加到原来dataframe中   1回答

python 读json 错误 ValueError: Unexpected character found when decoding array value (2)   0回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!