参考文章 https://blog.csdn.net/weixin_41819299/article/details/81008181

一、相关数据

1 数据集下载地址:https://archive.ics.uci.edu/ml/datasets/Connectionist+Bench+(Sonar,+Mines+vs.+Rocks)

2 打开方式:下载 sonar.all-data并重命名为sonar.all-data.csv    增加后缀改变文件格式,放到project

用excel打开数据集,有208行60列特征(值域为0到1),标签为R/M。
表示208个观察对象,60个不同角度返回的力度值,二分类结果是岩石/金属。

3  参考程序:https://blog.csdn.net/QcloudCommunity/article/details/79363040

注:from csv import reader    连接中少了个r

参考程序2 :https://www.kesci.com/home/project/5a5e0af01badff1e49557e47

参考程序2:http://www.yw1515.com/news/2018-04-06/118700.html

二、RF的来源

决策树方差高——引入bagging降低方差——bagging下的树相似,预测相似——引入列采样(本例中采用特征数的平方根)

bagging低方差——使用的决策树需低偏差,要深

三、各函数功能

load_csv:读取csv文件,按行保存到数组dataset中。

str_column_to_float:将某列字符去掉前后空格,并转换为浮点数格式

str_column_to_int:根据分类种类建立字典,标号0,1,2...将字符列转化为整数

cross_validation_split:使用randrange函数将数据集划分为n个无重复元素的子集

accuracy_metric:计算准确率

evaluate_algorithm:使用交叉验证,建立n个训练集和测试集,返回各模型误差数组

test_split:根据特征及特征阈值分割左右子树集合

gini_index:在某个点分成了几个子节点放在groups中,这些样本的类有多种,类集合为classes,计算该点基尼指数:

gini=∑按group(1-∑按同一group中的类p^1)*N1/N。

get_split:限定列采样特征个数n_features,基尼指数代表的是不纯度,gini指数越小越好,对列采样特征中的每个特征的每个                   值计算分割下的最小gini值,作为分割依据

to_terminal:输出Group中出现次数最多的标签,实质上就是多数表决法

split:根据树的最大深度、叶子节点最少样本数、列采样特征个数,迭代创作子分类器直到分类结束

build_tree:建立一棵树

predict:用一棵树预测类

subsample:按照一定比例bangging采样

bagging_predict:用多棵树模型的预测结果做多数表决

random_forest :随机森林算法,返回测试集各个样本做多数表决后的预测值

四、程序运行思路

下载csv类型的数据集,将特征转换为浮点型,标签转换为整型,交叉验证集数为5,最深10层,叶子节点最少一个样本,sample_size=1即不做数据集采样,以(特征数-1)开根号作为列采样数的限制。分别建立1,5,10棵树,评估算法。

即:对每种树规模(1,5,10)运行5次,取均值作为最后模型效果。

五、运行结果及分析

运行结果:

Trees: 1

Scores: [56.09756097560976, 63.41463414634146, 60.97560975609756, 58.536585365853654, 73.17073170731707]
Mean Accuracy: 62.439%
Trees: 5
Scores: [70.73170731707317, 58.536585365853654, 85.36585365853658, 75.60975609756098, 63.41463414634146]
Mean Accuracy: 70.732%
Trees: 10
Scores: [75.60975609756098, 80.48780487804879, 92.6829268292683, 73.17073170731707, 70.73170731707317]

Mean Accuracy: 78.537%

结果分析:

Scores内部差异不大,毕竟只是搞了下交叉验证。但可以看出随着trees数目的增加,准确率上升了

声呐数据集---处理相关推荐

  1. 开源多波束前视声呐目标识别数据集

    鉴于水下实验的高成本,高专业性,高复杂度的情况,开源水下数据集一直较为稀少.拥有数据的研究机构基本上也只限于自身使用.虎鲸开源计划致力于构建一个开放的实验平台,实验场地.硬件.软件.数据均在开源开放的 ...

  2. 基于ROS多波束前视声呐仿真模块的一些应用

    鼓捣前视声呐仿真模块也有一段时间了,在没有实际数据的条件下,选择仿真做一些算法的前期验证工作不失为一种选择,更多的是无奈的选择吧.长时间没有写点东西了,姑且记录一下前段时间的工作. 关于仿真的平台与声 ...

  3. keras添加正则化全连接_第16章 Keras使用Dropout正则化防止过拟合

    Dropout虽然简单,但可以有效防止过拟合.本章关于如何在Keras中使用Dropout.本章包括: dropout的原理 dropout的使用 在隐层上使用dropout 我们开始吧. 16.1 ...

  4. David P.Williams论文系列 基于间隙度的声呐图像快速无监督海底特征描述

    摘要 提出了一种基于侧扫声呐图像的海底无监督特征提取方法.该方法基于间隙度,通过传感器数据测量像素强度变化.不需要训练数据,不需要对像素的统计分布作任何假设,也不需要列举或知道(离散的)海底类型的背景 ...

  5. 惩罚线性回归---Python机器学习:预测分析核心算法

    惩罚线性回归 参考教材:Python机器学习预测分析核心算法,书中代码较为过时,借用sklearn等工具包进行了重写. 实践中遇到的绝大多数预测分析(函数逼近)问题,惩罚线性回归和集成方法都具有最优或 ...

  6. 深度学习入门系列6项目实战:声纳回声识别

    大家好,我技术人Howzit,这是深度学习入门系列第六篇,欢迎大家一起交流! 深度学习入门系列1:多层感知器概述 深度学习入门系列2:用TensorFlow构建你的第一个神经网络 深度学习入门系列3: ...

  7. Svm算法原理及实现

    Svm(support Vector Mac)又称为支持向量机,是一种二分类的模型.当然如果进行修改之后也是可以用于多类别问题的分类.支持向量机可以分为线性核非线性两大类.其主要思想为找到空间中的一个 ...

  8. 声呐(岩石/水雷)数据集的特征提取过程

    笔者在机器学习.神经网络.SVM.二分类等相关的文章中经常看见利用声呐(岩石/水雷)数据集.都是拿它来跑程序看看算法性能,但没探究过这里面的特征究竟代表什么,甚至有人说60个特征代表不同方向返回的声音 ...

  9. Python深度学习实战:声呐返回值分类

    Python深度学习实战:声呐返回值分类 声呐物体分类数据 简单的神经网络 预处理数据以增加性能 调整模型的拓扑和神经元 缩小网络 扩大网络 总结 本章我们使用Keras开发一个二分类网络.本章包括: ...

最新文章

  1. 何恺明时隔2年再发一作论文:为视觉大模型开路,“CVPR 2022最佳论文候选预定”...
  2. Java设计模式(建造者模式-适配器模式-桥接模式)
  3. linux shell 脚本嵌套调用 获取脚本自身文件名
  4. NTP时间同步服务器报错:no server suitable for synchronization found
  5. HDU D Tree [点分治]
  6. 蓝桥杯_算法训练_ALGO12_摆动序列
  7. python面向对象(part2)--封装
  8. 1、kali的安装与环境配置
  9. 为什么Go的自定义error有时候会内存溢出
  10. 数学到底有多重要?网友:道理都懂,实力不允许啊…
  11. OC, OD门和线与逻辑
  12. TCL学习心得(2)Tcl语言的语法
  13. m4a文件怎么转换成mp3?=
  14. 台式计算机如何自动开关机,联想电脑怎么设置定时开机|联想台式机自动开机设置方法...
  15. 【论文阅读】Multi-Modal Sarcasm Detection Based on Contrastive Attention Mechanism
  16. OSNet 论文翻译
  17. C#项目解决方案管理器中将*.Designer.cs文件放到*.cs文件下
  18. 如何有效的避免图片侵权(100%避免网站图片侵权)
  19. 计算机网络-学习笔记
  20. Random不出现重复数字

热门文章

  1. 【SSL】2299护卫队
  2. 2019电赛总结(序)
  3. roc图 r语言_R语言pROC包绘制ROC曲线
  4. fopen 和它的读写标识 r、r+、rb+、rt+、w+.....
  5. 钉钉二次开发-组织机构同步 获取用户信息 单点登录接口
  6. Unity 交通系统
  7. 图像处理中媲美matlab的python包——scikit-image(skimage)包的用法详解
  8. 走近古人的生活 衣食住行
  9. Bootstrap4 之栅格系统
  10. Vue模仿todo超详细讲解(附源码)