多元线性回归中的特征选择

时间:2021-01-11 18:07:19

标签: linear-regression feature-selection

import numpy as np
import pandas as pd
import seaborn as sns
from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression
a = make_regression(n_samples=300,n_features=5,noise=5)
df1 = pd.DataFrame(a[0])
df1 = pd.concat([df1,pd.DataFrame(a[1].T)],axis=1,ignore_index=True)
df1.rename(columns={0:"X1",1:"X2",2:"X3",3:"X4",4:"X5",5:"Target"},inplace=True)
sns.heatmap(df1.corr(),annot=True);

Correlation Matrix

现在我可以问我的问题了。如何选择将包含在模型中的特征?

1 个答案:

答案 0 :(得分:0)

我对 Python 不是很精通,因为我大部分时间都在使用 R。 但它应该是这样的:

# Create a model
model = LinearRegression()
# Call the .fit method and pass in your data
model.fit(Variables,Target)
# Or simply do
model = LinearRegression().fit(Variables,Target)
# So based on the dataset head provided, it should be
X<-df1[['X1','X2','X3','X4','X5']]
Y<-df1['Target']
model = LinearRegression().fit(X,Y)

为了做特征选择。您需要先运行模型。然后检查 p 值。通常,5% (.05) 或更小的 p 值是一个很好的分界点。如果 p 值超过 0.05 的上限阈值,则该变量无关紧要,您可以将其从模型中删除。您必须手动执行此操作。您还可以通过查看相关矩阵来判断哪个值与目标的相关性较小。 AFAIK,没有具有内置功能的库来自动进行特征选择。归根结底,统计数据只是数字。由人类来解释结果。

相关问题