numpy是否包含与Matlab中的x2fx()等效或类似的函数?如果没有,有没有人建议如何使用numpy提供的功能有效地模拟这个功能?
答案 0 :(得分:2)
这在NumPy中是一个有效的选择:
from itertools import combinations as comb
import numpy as np
def x2fx(x, model='linear'):
linear = np.c_[np.ones(x.shape[0]), x]
if model == 'linear':
return linear
if model == 'purequadratic':
return np.c_[linear, x**2]
interaction = np.hstack([x[:,i]*x[:,j] for i, j in
comb(range(x.shape[1]), 2)]).T
if model == 'interaction':
return np.c_[linear, interaction]
if model == 'quadratic':
return np.c_[linear, interaction, x**2]
答案 1 :(得分:1)
Statsmodels正是您所寻找的 一个例子:
import statsmodels.formula.api as smf
model = smf.ols('y ~ x1 + log(x2)', data=your_dataframe)
design_matrix = model.exog
查看statsmodels的文档以获取更多信息 它可以直接拟合模型而不生成设计矩阵(隐式)或明确生成设计矩阵,如示例所示。