一、基本原理
1.随机森林由多棵决策树组成,可用于分类,回归和其他任务集成学习方法。
是一种有监督学习算法,目的是降低方差,相比决策树能避免模型太大时过拟合,会小幅增加偏差和损失部分可解释性为代价,
准确性会低于梯度提升树。
二、构造步骤
1.N个样本里有放回抽取M个样本(M为超参数)训练生成一个决策树。
2.构建决策树时从每个样本中选取不大于样本本省属性作为特征属性。
3.按照普通生成决策树方式进行构建决策树,如基于信息增益,信息增益率,基尼指数等方式。
4.重复前面步骤生成大量决策树构成随机森林。
三、应用场景
1.解决二分类,多分类等问题
2.回归问题,如预测股票价格,房价,销售量等
3.特征选择,通过评估特征的重要性来选择
4.异常检测,对正常样本和异常样本进行区分,如发现信用卡欺诈,网络入侵等
5.缺失值处理
四、基于sklearn自带红酒分类数据集编程示例
方法:使用sklearn的随机分割数据集模块做数据集合分割,通过构造随机森林训练预测结果并使用sklearn计算预测准确率模块计算实际测试结果对比预测的准确率。
流程:加载数据->按属性分割数据集->构造森林->训练数据集->模型预测
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
wine = load_wine()
X = wine.data
y = wine.target
print(“feature_names={}”.format(wine.feature_names))
print(“target_names={}”.format(wine.target_names))
X_train,X_test,y_train,y_test = train_test_split(X, y, test_size=0.3, random_state=0)
clf = RandomForestClassifier(n_estimators=20,random_state=0)
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(“accuracy={:.2f}%”.format(accuracy*100))