随机森林分类预测(多棵树)
随机森林工具包(修改版):
https://download.csdn.net/download/weixin_37928884/87230131
决策树与随机森林代码以及数据:
https://download.csdn.net/download/weixin_37928884/87240307
第一列是序号 第二列是良性还是恶性(乳腺癌) 后面是特征属性30个
%% I. 清空环境变量
clear all
clc
warning off%% II. 导入数据
data=xlsread('data_.CSV','data_','A2:AF570');
%%
% 1. 随机产生训练集/测试集
a = randperm(569);
Train = data(a(1:500),:);
Test = data(a(501:end),:);%%
% 2. 训练数据
P_train = Train(:,3:end);
T_train = Train(:,2);%%
% 3. 测试数据
P_test = Test(:,3:end);
T_test = Test(:,2);%% III. 创建随机森林分类器
model = classRF_train(P_train,T_train);%% IV. 仿真测试
[T_sim,votes] = classRF_predict(P_test,model);%% V. 结果分析
count_B = length(find(T_train == 1));
count_M = length(find(T_train == 2));
total_B = length(find(data(:,2) == 1));
total_M = length(find(data(:,2) == 2));
number_B = length(find(T_test == 1));
number_M = length(find(T_test == 2));
number_B_sim = length(find(T_sim == 1 & T_test == 1));
number_M_sim = length(find(T_sim == 2 & T_test == 2));
disp(['病例总数:' num2str(569)...' 良性:' num2str(total_B)...' 恶性:' num2str(total_M)]);
disp(['训练集病例总数:' num2str(500)...' 良性:' num2str(count_B)...' 恶性:' num2str(count_M)]);
disp(['测试集病例总数:' num2str(69)...' 良性:' num2str(number_B)...' 恶性:' num2str(number_M)]);
disp(['良性乳腺肿瘤确诊:' num2str(number_B_sim)...' 误诊:' num2str(number_B - number_B_sim)...' 确诊率p1=' num2str(number_B_sim/number_B*100) '%']);
disp(['恶性乳腺肿瘤确诊:' num2str(number_M_sim)...' 误诊:' num2str(number_M - number_M_sim)...' 确诊率p2=' num2str(number_M_sim/number_M*100) '%']);%% VI. 绘图
figureindex = find(T_sim ~= T_test);
plot(votes(index,1),votes(index,2),'r*')
hold onindex = find(T_sim == T_test);
plot(votes(index,1),votes(index,2),'bo')
hold onlegend('错误分类样本','正确分类样本')plot(0:500,500:-1:0,'r-.')
hold onplot(0:500,0:500,'r-.')
hold online([100 400 400 100 100],[100 100 400 400 100])xlabel('输出为类别1的决策树棵数')
ylabel('输出为类别2的决策树棵数')
title('随机森林分类器性能分析')%% VII. 随机森林中决策树棵数对性能的影响
Accuracy = zeros(1,20);
for i = 50:50:1000 %模拟从50棵树到1000棵树的一个结果,每次增加50棵 i%每种情况,运行100次,取平均值accuracy = zeros(1,100);for k = 1:100% 创建随机森林model = classRF_train(P_train,T_train,i);% 仿真测试T_sim = classRF_predict(P_test,model);accuracy(k) = length(find(T_sim == T_test)) / length(T_test);endAccuracy(i/50) = mean(accuracy);
end% 1. 绘图
figure
plot(50:50:1000,Accuracy)
xlabel('随机森林中决策树棵数')
ylabel('分类正确率')
title('随机森林中决策树棵数对性能的影响')
随机森林分类预测(多棵树)相关推荐
- python画树林_如何用Scikit-learn可视化随机森林中的一棵树
废话不多说,先贴代码from sklearn.datasets import load_iris iris = load_iris() # Model (can also use single dec ...
- 使用基于Apache Spark的随机森林方法预测贷款风险
原文:Predicting Loan Credit Risk using Apache Spark Machine Learning Random Forests 作者:Carol McDonald ...
- 随机森林实例:利用基于CART算法的随机森林(Random Forest)树分类方法对于红酒质量进行预测
随机森林实例:利用基于CART算法的随机森林(Random Forest)树分类方法对于红酒质量进行预测 1.引言 2.理论基础 2.1 什么是决策树 2.2 特征选择的算法 2.2.1 ID3:基于 ...
- 数学建模_随机森林分类模型详解Python代码
数学建模_随机森林分类模型详解Python代码 随机森林需要调整的参数有: (1) 决策树的个数 (2) 特征属性的个数 (3) 递归次数(即决策树的深度)''' from numpy import ...
- python 随机森林分类 DecisionTreeClassifier 随机搜索优化参数 GridSearchCV
@python 随机森林分类模型 随机优化参数 学习笔记 随机森林 1.随机森林模型 随机森林算法是基于决策树算法的Begging优化版本,通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策 ...
- 随机森林分类算法python代码_Python机器学习笔记:随机森林算法
随机森林算法的理论知识 随机森林是一种有监督学习算法,是以决策树为基学习器的集成学习算法.随机森林非常简单,易于实现,计算开销也很小,但是它在分类和回归上表现出非常惊人的性能,因此,随机森林被誉为&q ...
- Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付
全文链接:http://tecdat.cn/?p=26184 在此数据集中,我们必须预测信贷的违约支付,并找出哪些变量是违约支付的最强预测因子?以及不同人口统计学变量的类别,拖欠还款的概率如何变化?( ...
- 随机森林分类算法python代码_独家 | 一文读懂随机森林的解释和实现(附python代码)...
作者:William Koehrsen 翻译:和中华 校对:李润嘉 本文约6000字,建议阅读15分钟. 本文从单棵决策树讲起,然后逐步解释了随机森林的工作原理,并使用sklearn中的随机森林对某个 ...
- Python 随机森林分类
Python 随机森林分类 1 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理. 2 决策树分类简介 相关概念见下: 决策树的最大问题是 ...
最新文章
- 如何使用华为云的计算资源进行深度学习(ModelArts)
- 干净架构在 Web 服务开发中的实践
- 团队软件开发第一次冲刺(四)
- ssh suse 配置_SUSE+linux+配置节点间的SSH信任关系
- vue组件间的5种传值方式
- C语言预定义宏 __func__、__FUNCTION__、__LINE__、__FILE__、__DATE__、__TIME__
- python一节课多久_第一节课 python简介
- @data注解不生效_你说啥什么?注解你还不会?
- Java的异常跟踪栈
- 3.FreeRTOS学习笔记-任务
- 分享精心收藏的前台开发素材网站,都是干货
- fastdfs集群搭建_领课教育开源系统-FastDFS的安装和使用
- ios控件 UIViewController
- .net微信公众平台源码,微信营销平台源码(微网站,微商城,微营销,微会员)
- Pr 音频效果参考:混响
- Codeforces Problem-1591B Array Eversion
- drcom for linux,Drcom for Ubuntu上网解决经验
- 网址导航哪个好(最好的导航网站)
- 1083. Windy数
- 2016.7.14 如何在浏览器中查看jsp文件
热门文章
- Android游戏预约榜,最强游戏手机预定?ROG新机曝光,全面超越安卓跑分性能榜...
- 我奔走于深圳与广州两城,只为一个更可期翼的未来
- 引用拷贝,浅拷贝,深拷贝之间的区别以及如何实现
- 微信小程序审核,隐私协议中开发者处理信息填写的内容参考
- ​LeetCode刷题实战70:爬楼梯
- [附源码]Python计算机毕业设计SSM基于的英语学习网站的设计与实现(程序+LW)
- android scrollview 动画,Android ScrollView实现下拉弹回动画效果
- 【Android音视频开发】【020】音视频同步原理
- Web前端学习记录(十五)
- 水湄物语:创业教给我的最重要的三件事