Content
统计学习导论习题 chapter 7 EX-10
Author - - SIHENG HUANG
Attention:**切勿直接copy入作业**
问题复现
数据集下载链接:college数据集
【问题分析一】 逐步回归选取特征
逐步回归分析的名字里虽然带了“回归”,但实际上是一个特征选择方法。如图,是与逐步回归分析相关的一些概念及其关系。
基于逐步回归分析的特征选择
逐步回归分析的过程如下图,
主要的步骤包括:
(1) 从原始特征集合中,不放回地随机选择一个特征;
(2) 将这个特征与特征子集合起来,建回归模型,并进行统计检验;
(3) 如果得到一个显著的模型,说明这个特征是有用的,将这个特征收录到特征子集中;如果模型不显著,说明这个特征没用,需要删掉。
遍历完原始特征集合,我们就得到了一个优质的特征子集,以及一个显著的回归模型。
逐步回归就这么一点内容:它首先是一个特征选择的策略,然后还有建立回归模型的功能。
逐步回归分析的python实现
逐步向前回归算法的python实现
def forward_stepwise_selection(data,target):
total_features = [[]]
score_dict = {
}
remaining_features = [col for col in data.columns if not col == target]
for i in range(1,len(data.columns)):
best_score = 0;best_feature = None
for feature in remaining_features:
X = total_features[i-1] + [feature]
model = LinearRegression().fit(data[X],data[target])
score = r2_score(data[target],model.predict(data[X]))
if score > best_score:
best_score = score
best_feature = feature
total_features.append(total_features[i-1] + [best_feature])
remaining_features.remove(best_feature)
score_dict[i]