1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 【机器学习】集成学习--随机森林(Random Forest)

【机器学习】集成学习--随机森林(Random Forest)

时间:2022-02-21 03:01:39

相关推荐

【机器学习】集成学习--随机森林(Random Forest)

1. 概述

RF = 决策树 + Bagging + 随机属性选择

2. 算法流程

样本的随机:从样本集中用bagging的方式,随机选择n个样本。特征的随机:从所有属性d中随机选择k个属性(k<d),然后从k个属性中选择最佳分割属性作为节点建立CART决策树。重复以上两个步骤m次,建立m课CART决策树。这m课CART决策树形成随机森林,通过投票表决结果,决定数据属于哪一类。

3. 代码实现

注:数据集在文章末尾

from sklearn import treefrom sklearn.model_selection import train_test_splitfrom sklearn.ensemble import RandomForestClassifierimport numpy as npimport matplotlib.pyplot as plt# 载入数据data = np.genfromtxt("LR-testSet2.txt", delimiter=",")x_data = data[:,:-1]y_data = data[:,-1]plt.scatter(x_data[:,0],x_data[:,1],c=y_data)plt.show()

输出:

x_train,x_test,y_train,y_test = train_test_split(x_data, y_data, test_size = 0.5)def plot(model):# 获取数据值所在的范围x_min, x_max = x_data[:, 0].min() - 1, x_data[:, 0].max() + 1y_min, y_max = x_data[:, 1].min() - 1, x_data[:, 1].max() + 1# 生成网格矩阵xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.02),np.arange(y_min, y_max, 0.02))z = model.predict(np.c_[xx.ravel(), yy.ravel()])# ravel与flatten类似,多维数据转一维。flatten不会改变原始数据,ravel会改变原始数据z = z.reshape(xx.shape)# 等高线图cs = plt.contourf(xx, yy, z)# 样本散点图plt.scatter(x_test[:, 0], x_test[:, 1], c=y_test)plt.show()

# 决策树模型dtree = tree.DecisionTreeClassifier()dtree.fit(x_train, y_train)plot(dtree)dtree.score(x_test, y_test)

## Random ForestRF = RandomForestClassifier(n_estimators=50)RF.fit(x_train, y_train)plot(RF)RF.score(x_test, y_test)

数据集:“随机森林.txt”:

0.051267,0.69956,1-0.092742,0.68494,1-0.21371,0.69225,1-0.375,0.50219,1-0.51325,0.46564,1-0.52477,0.2098,1-0.39804,0.034357,1-0.30588,-0.19225,10.016705,-0.40424,10.13191,-0.51389,10.38537,-0.56506,10.52938,-0.5212,10.63882,-0.24342,10.73675,-0.18494,10.54666,0.48757,10.322,0.5826,10.16647,0.53874,1-0.046659,0.81652,1-0.17339,0.69956,1-0.47869,0.63377,1-0.60541,0.59722,1-0.62846,0.33406,1-0.59389,0.005117,1-0.42108,-0.27266,1-0.11578,-0.39693,10.4,-0.60161,10.46601,-0.53582,10.67339,-0.53582,1-0.13882,0.54605,1-0.29435,0.77997,1-0.26555,0.96272,1-0.16187,0.8019,1-0.17339,0.64839,1-0.28283,0.47295,1-0.36348,0.31213,1-0.30012,0.027047,1-0.23675,-0.21418,1-0.06394,-0.18494,10.062788,-0.16301,10.22984,-0.41155,10.2932,-0.2288,10.48329,-0.18494,10.64459,-0.14108,10.46025,0.012427,10.6273,0.15863,10.57546,0.26827,10.72523,0.44371,10.22408,0.52412,10.44297,0.67032,10.322,0.69225,10.13767,0.57529,1-0.0063364,0.39985,1-0.092742,0.55336,1-0.20795,0.35599,1-0.20795,0.17325,1-0.43836,0.21711,1-0.21947,-0.016813,1-0.13882,-0.27266,10.18376,0.93348,00.22408,0.77997,00.29896,0.61915,00.50634,0.75804,00.61578,0.7288,00.60426,0.59722,00.76555,0.50219,00.92684,0.3633,00.82316,0.27558,00.96141,0.085526,00.93836,0.012427,00.86348,-0.082602,00.89804,-0.20687,00.85196,-0.36769,00.82892,-0.5212,00.79435,-0.55775,00.59274,-0.7405,00.51786,-0.5943,00.46601,-0.41886,00.35081,-0.57968,00.28744,-0.76974,00.085829,-0.75512,00.14919,-0.57968,0-0.13306,-0.4481,0-0.40956,-0.41155,0-0.39228,-0.25804,0-0.74366,-0.25804,0-0.69758,0.041667,0-0.75518,0.2902,0-0.69758,0.68494,0-0.4038,0.70687,0-0.38076,0.91886,0-0.50749,0.90424,0-0.54781,0.70687,00.10311,0.77997,00.057028,0.91886,0-0.10426,0.99196,0-0.081221,1.1089,00.28744,1.087,00.39689,0.82383,00.63882,0.88962,00.82316,0.66301,00.67339,0.64108,01.0709,0.10015,0-0.046659,-0.57968,0-0.23675,-0.63816,0-0.15035,-0.36769,0-0.49021,-0.3019,0-0.46717,-0.13377,0-0.28859,-0.060673,0-0.61118,-0.067982,0-0.66302,-0.21418,0-0.59965,-0.41886,0-0.72638,-0.082602,0-0.83007,0.31213,0-0.72062,0.53874,0-0.59389,0.49488,0-0.48445,0.99927,0-0.0063364,0.99927,00.63265,-0.030612,0

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。