文章目录
- 一、 算法基本原理
- 二、 算法步骤
- 三、参数调优
- 四、分类与回归
- 1. 分类
- 2. 回归
一、 算法基本原理
随机森林通过有放回抽样的形式对样本和特征进行抽样,构建多颗决策树,形成决策树的森林。训练这些决策树后,基于每一个决策树的结果的投票或平均的方式预测。
二、 算法步骤
- 析数据,将数据抽象成特征向量的列表
- 训练模型,并分析训练成果
- 基于训练好的模型进行预测
- 根据自己的目标确定预测结果是否可接受
- 调整超参数,提高预测准确率
三、参数调优
- 网络搜索:适用与超参数选择范围较小的情况,且要求超参数分布离散
- 网络搜索:适用于超参数范围较大的情况,可以做初步寻优,且允许超参数分布连续
- 贝叶斯优化:智能化搜索,一般结果固定
代码示例
# 贝叶斯优化search_space={"n_estimators":Integer(10,500),"max_depth":Integer(5,30),"min_samples_leaf":Integer(1,10),"min_samples_split":Integer(2,20),"max_features":Real(0.0000000001,0.99),'bootstrap':Categorical([True,False])}bayes_search=BayesSearchCV(estimator=rf_model,search_spaces=search_space,n_iter=30,cv=5,n_jobs=-1,scoring="accuracy",random_state=42,verbose=1)bayes_search.fit(X_train,y_train)print(bayes_search.best_params_)# 随机搜索random_param_dist={"n_estimators":randint(10,500),"max_depth":[None]+list(randint(1,100).rvs(5)),"min_samples_split":randint(2,20),"max_features":uniform(0.1,0.9),"min_samples_leaf":randint(1,10)}random_search=RandomizedSearchCV(estimator=rf_model,param_distributions=random_param_dist,n_iter=100,cv=5,scoring="accuracy",n_jobs=-1)random_search.fit(X_train,y_train)best_params=random_search.best_params_print(best_params)# 网络搜索param_grid={"n_estimators":[20,40,100,200,500],"max_depth":[5,10,15,None],"min_samples_split":[2,5,10],"min_samples_leaf":[1,2,4]}grid_search=GridSearchCV(estimator=rf_model,param_grid=param_grid,cv=5,scoring="accuracy",n_jobs=-1)grid_search.fit(X_train,y_train)print(grid_search.best_params_)注意导入相关库
四、分类与回归
用p y t h o n pythonpythonsklearn 库来进行随机森林预测。
1. 分类
基于投票决定预测结果,要求结果分布离散。如胜负、高低等可以用分类器做预测:胜为1,负为0。
2. 回归
基于平均决定预测结果,要求结果分布连续。如电影评分。