小总结
这章节介绍了特征选择的指标和方法,方法有很多,这里没有介绍到全部知识,不过可以引发到我们对特征选择的思考,主要围绕的思想就是如何找到最好的特征子集和模型参数使得预测性能达到更好
选择的评价标准
-
传统指标:
分类的指标,如准确率、真阳性率、假阳性率等
回归的指标:RMSE、平均绝对误差、 R 2 R^2 R2 -
元指标
模型拟合/训练所需要的时间
拟合后的模型预测新实例的时间
需要持久化(永久保存)的数据大小 -
我们定义了一个函数,可以搜索所有给定参数,优化流水线,输出是用于评估流水线质量的指标
from sklearn.model_selection import GridSearchCV
def get_best_model_and_accuracy(model, params, X, y):
grid = GridSearchCV(model, # 要搜索的模型
params, # 要尝试的参数
error_score=0.) # 如果报错,结果是 0
grid.fit(X, y) # 拟合模型和参数
# 经典的性能指标
print("Best Accuracy: {}".format(grid.best_score_))
# 得到最佳准确率的最佳参数
print("Best Parameters: {}".format(grid.best_params_))
# 拟合的平均时间(秒)
print("Average Time to Fit (s):{}".format(round(grid.cv_results_['mean_fit_time'].mean(), 3)))
# 预测的平均时间(秒)
# 从该指标可以看出模型在真实世界的性能
print("Average Time to Score (s):{}".format(round(grid.cv_results_['mean_score_time'].mean(), 3)))
- 使用本函数评估每个特征选择方法
# 导入 4 种模型
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier
from sklearn