多元线性回归中的特征选择
Feature Selection in Multivariate Linear Regression
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
现在我可以问我的问题了。如何选择将包含在模型中的特征?
我不是很精通 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,没有具有自动进行特征选择的内置功能的库。最后,统计数据只是数字。解释结果取决于人类。
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
现在我可以问我的问题了。如何选择将包含在模型中的特征?
我不是很精通 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,没有具有自动进行特征选择的内置功能的库。最后,统计数据只是数字。解释结果取决于人类。