2024-05-15 17:49:36 发布
网友
我想估计一个IV回归模型,它使用了许多与年份、人口统计等虚拟数据的交互作用。我在熊猫身上找不到明确的方法来做到这一点,我很好奇是否有人有窍门。
我正在考虑尝试scikit learn和这个函数:
http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.PolynomialFeatures.html
我现在面临着一个类似的问题,我需要一种灵活的方法来创建特定的交互,并查看StackOverflow。我按照上面@user333700注释中的提示操作,并感谢他找到了patsy(http://patsy.readthedocs.io/en/latest/overview.html),在谷歌搜索之后,这个scikit学习集成patsy learn(https://github.com/amueller/patsylearn)。
所以通过@motam79的例子,这是可能的:
import numpy as np import pandas as pd from patsylearn import PatsyModel, PatsyTransformer x = np.array([[ 3, 20, 11], [ 6, 2, 7], [18, 2, 17], [11, 12, 19], [ 7, 20, 6]]) df = pd.DataFrame(x, columns=["a", "b", "c"]) x_t = PatsyTransformer("a:b + a:c + b:c", return_type="dataframe").fit_transform(df)
这将返回以下信息:
a:b a:c b:c 0 60.0 33.0 220.0 1 12.0 42.0 14.0 2 36.0 306.0 34.0 3 132.0 209.0 228.0 4 140.0 42.0 120.0
我在这里回答了一个类似的问题,在这里我提供了另一个带有分类变量的示例: How can an interaction design matrix be created from categorical variables?
您可以使用sklearn的多项式函数。下面是一个例子:
假设,这是您的设计(即功能)矩阵:
x = array([[ 3, 20, 11], [ 6, 2, 7], [18, 2, 17], [11, 12, 19], [ 7, 20, 6]]) x_t = PolynomialFeatures(2, interaction_only=True, include_bias=False).fit_transform(x)
结果如下:
array([[ 3., 20., 11., 60., 33., 220.], [ 6., 2., 7., 12., 42., 14.], [ 18., 2., 17., 36., 306., 34.], [ 11., 12., 19., 132., 209., 228.], [ 7., 20., 6., 140., 42., 120.]])
前三个特征是原始特征,后三个是原始特征的交互作用。
我现在面临着一个类似的问题,我需要一种灵活的方法来创建特定的交互,并查看StackOverflow。我按照上面@user333700注释中的提示操作,并感谢他找到了patsy(http://patsy.readthedocs.io/en/latest/overview.html),在谷歌搜索之后,这个scikit学习集成patsy learn(https://github.com/amueller/patsylearn)。
所以通过@motam79的例子,这是可能的:
这将返回以下信息:
我在这里回答了一个类似的问题,在这里我提供了另一个带有分类变量的示例: How can an interaction design matrix be created from categorical variables?
您可以使用sklearn的多项式函数。下面是一个例子:
假设,这是您的设计(即功能)矩阵:
结果如下:
前三个特征是原始特征,后三个是原始特征的交互作用。
相关问题 更多 >
编程相关推荐