向ML添加交互项

问题描述

我正在尝试为ML模型训练在两个变量之间添加交互作用项,但最终结果证明所有组合都与基数结合在一起。我期望的是最终估计数可能具有m n-1个系数,而不是m n。 m和n是每个变量的类别级别。

这是我正在使用的代码

stringIndexer = StringIndexer(inputCols=['a','b'],outputCols=['aIndex1','bIndex1'],stringOrderType='frequencyAsc')
data_index = stringIndexer.fit(data).transform(data)

encoder = OneHotEncoder(inputCols=['aIndex1',outputCols=['aVec1','bVec1'])
data_encoder = encoder.fit(data_index).transform(data_index)

interaction = Interaction(inputCols=['aVec1','bVec1'],outputCol="interactedCol")
data_interacted = interaction.transform(data_encoder)

a和b变量都有5个级别。

当我使用最终数据集data_interacted并将'interactedCol'作为运行逻辑回归模型功能时,变量的最终数量为25。我期望我应该看到24个变量估计,因为其中之一是视为基础。

您知道我在做什么错吗?谢谢您的建议。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)