擅长:python、mysql、java
<p>如果您在scikit learn with linear regression中执行<code>y = a*x1 + b*x2 + c*x3 + intercept</code>,我假设您执行了类似的操作:</p>
<pre><code># x = array with shape (n_samples, n_features)
# y = array with shape (n_samples)
from sklearn.linear_model import LinearRegression
model = LinearRegression().fit(x, y)
</code></pre>
<p>自变量<em>x1</em>,<em>x2</em>,<em>x3</em>是特征矩阵的列,系数<em>a</em>,<em>b</em>,<em>c</em>包含在特征矩阵中。</p>
<p>如果需要交互项,请将其添加到特征矩阵中:</p>
<pre><code>x = np.c_[x, x[:, 0] * x[:, 1]]
</code></pre>
<p>现在前三列包含变量,下一列包含交互<em>x1</em>*<em>x2</em>。拟合模型后,你会发现<code>model.coef_</code>包含四个系数<em>a</em>,<em>b</em>,<em>c</em>,<em>d</em>。</p>
<p>请注意,无论<em>x1</em>和<em>x2</em>之间的相关性如何,这将始终为您提供一个具有交互作用的模型(理论上可以是0)。当然,您可以预先测量相关性,并使用它来决定要拟合哪个模型。</p>