50字范文,内容丰富有趣,生活中的好帮手!
50字范文 > 随机森林 极端随机森林以及深度森林代码

随机森林 极端随机森林以及深度森林代码

时间:2019-04-22 17:32:54

相关推荐

随机森林 极端随机森林以及深度森林代码

之前介绍了随机森林、极端随机森林以及深度森林的原理,本次介绍一下相关的代码

本次实验全部使用糖尿病数据集

数据导入

import pandas as pdtrain = pd.read_csv("/Users/admin/Desktop/database/diabetes/diabetes_train.txt",header=None,index_col=False)test = pd.read_csv("/Users/admin/Desktop/database/diabetes/diabetes_test.txt",header=None,index_col=False)#数据转换label = train.loc[:,[8]].values.reshape(-1)data = train.drop(columns=8).values.reshape(-1,8)y_test = test.loc[:,[8]].values.reshape(-1)X_test = test.drop(columns=8).values.reshape(-1,8)

随机森林

rf = RandomForestRegressor(n_estimators=1000) rf=rf.fit(data, label) predictions_rf=rf.predict(X_test)#将概率转换成0、1pred_rf=judge(predictions_rf)acc = accuracy_score(y_test, pred_rf)print("Test Accuracy of rf = {:.2f} %".format(acc * 100))

Test Accuracy of rf = 80.97 %

极端随机森林

etr=ExtraTreesRegressor(n_estimators=1000) etr=etr.fit(data, label) predictions_etr=etr.predict(X_test)pred_etr=judge(predictions_etr)acc = accuracy_score(y_test, pred_etr)print("Test Accuracy of pred_etr = {:.2f} %".format(acc * 100))

Test Accuracy of pred_etr = 79.85 %

深度森林

from gcforest.gcforest import GCForestdef get_toy_config():config = {}ca_config = {}ca_config["random_state"] = 0 # 0 or 1ca_config["n_cascadeRFtree"] = 1000ca_config["max_layers"] = 100 # 最大的层数,layer对应论文中的levelca_config["early_stopping_rounds"] = 3 #如果出现某层的三层以内的准确率都没有提升,层中止ca_config["n_classes"] = 2 #判别的类别数量ca_config["estimators"] = []ca_config["estimators"].append({"n_folds": 2, "type": "RandomForestClassifier", "n_estimators": 10, "max_depth": None, "n_jobs": -1})ca_config["estimators"].append({"n_folds": 2, "type": "ExtraTreesClassifier", "n_estimators": 10, "max_depth": None, "n_jobs": -1})ca_config["estimators"].append({"n_folds": 2, "type": "LogisticRegression"})config["cascade"] = ca_config #共使用了3个基学习器return configconfig=get_toy_config()gc = GCForest(config)#X_train_enc是每个模型最后一层输出的结果,每一个类别的可能性X_train_enc = gc.fit_transform(data, label)y_pred = gc.predict(X_test)acc = accuracy_score(y_test, y_pred)print("Test Accuracy of GcForest = {:.2f} %".format(acc * 100))

Test Accuracy of GcForest = 80.22 %

MNIST

可以用深度森林跑一下深度学习的常用数据集MNIST

y_pred = gc.predict(x_valid)acc = accuracy_score(y_valid, y_pred)print("Test Accuracy of GcForest = {:.2f} %".format(acc * 100))

Test Accuracy of GcForest = 97.32 %

完整代码

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