sklearn随机森林 测试 路面点云分类

news2024/11/28 20:51:50

一、特征5个坐标

坐标-特征-类别
训练数据

二、模型训练

记录分享给有需要的人,代码质量勿喷

import numpy as np
import pandas as pd
import joblib


#region 1 读取数据
dir = 'D:\\py\\RandomForest\\'
filename1 = 'trainRS'
filename2 = '.csv'
path = dir+filename1+filename2

rawdata = pd.read_csv(path, encoding='gbk')

print('=== 1 读取数据')
#endregion


#region 2 构造数据集
x = rawdata.drop(columns=['x','y','z','Classification'])
y = rawdata['Classification']

#训练集6:验证集4
from sklearn.model_selection import train_test_split
indices = np.arange(x.shape[0]) #索引
x_train,x_test,y_train, y_test, indices_train, indices_test = train_test_split(x,y,indices,test_size=0.4,random_state=0)

print('=== 2 构造训练集和验证集')
#endregion


#region 3 Random Forest 模型训练与保存------------------------最耗时间
from sklearn.ensemble import RandomForestClassifier
rfc = RandomForestClassifier() #随机森林实例化 默认参数
rfc.fit(x_train, y_train) #模型训练

# 保存模型
joblib.dump(rfc,"modelRS.m")
# rfc2 = joblib.load("modelRS.m") #调用

print('=== 3 Random Forest 模型训练与保存')
#endregion


#region 4 模型评分与验证结果
score_rfc = rfc.score(x_test,y_test)
print('score_rfc =',score_rfc)

#验证集预测
yPre = rfc.predict(x_test)

print('=== 4 模型评分与验证集预测')
#endregion


#region 5 查看特征的重要性占比
feature_importance = rfc.feature_importances_
cols = rawdata.columns

fi = pd.DataFrame({'特征':np.array(cols)[3:-1], '重要性占比':feature_importance}).sort_values(by='重要性占比',axis=0, ascending=False)

print('=== 5 查看特征列的重要性')
print(fi)
#endregion


#region 6 输出验证集结果
test_data = rawdata.loc[indices_test]
test_data_np = test_data.to_numpy()

#合并原始数据和预测结果
test_data_pre = np.hstack((test_data_np, yPre.reshape(-1, 1))) #水平(沿着列方向)合并数组

output_file = filename1 + "_ValidateResult.txt"
np.savetxt(output_file, test_data_pre, fmt="%f", delimiter="\t")

print('=== 6 输出验证集结果')
#endregion

三、验证集结果

验证集98%,hhhhhhhhh

特征占比有点超乎想象

四、测试

记录分享给有需要的人,代码质量勿喷

import numpy as np
import pandas as pd
import joblib


#region 1 读取数据
dir = 'D:\\py\\RandomForest\\'
filename1 = 'testRS2'
filename2 = '.csv'
path = dir+filename1+filename2
data = pd.read_csv(path,encoding='gbk')

test = data.drop(columns=['x','y','z','Classification'])

print('=== 1 读取数据')
#endregion


#region 2 调用模型预测
rfc = joblib.load("modelRS.m") #调用
pre = rfc.predict(test)

print('=== 2 调用模型预测')
#endregion


#region 3 输出结果
data_np = data.to_numpy()
data_pre = np.hstack((data_np, pre.reshape(-1, 1))) #水平(沿着列方向)合并数组

output_file = filename1 + "_PreResult.txt"
np.savetxt(output_file, data_pre, fmt="%f", delimiter="\t")

print('=== 3 输出结果')
#endregion

还是有效果的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1291201.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C# 图解教程 第5版 —— 第16章 接口

文章目录 16.1 什么是接口16.2 声明接口16.3 实现接口16.4 接口是引用类型16.5 接口和 as 运算符16.6 实现多个接口16.7 实现具有重复成员的接口16.8 多个接口的引用(*)16.9 派生成员作为实现(*)16.10 显示接口成员实现16.11 接口…

Matlab 曲线动态绘制

axes(handles.axes1); % 选定所画坐标轴 figure也可 h1 animatedline; h1.Color b; h1.LineWidth 2; h1.LineStyle -; % 线属性设置 for i 1 : length(x)addpoints(h1,x(i),y(i)); % x/y为待绘制曲线数据drawnow;pause(0.01); % 画点间停顿 end 示例: figure…

如何在Web应用中添加一个JavaScript Excel查看器

前言 在现代的Web应用开发中,Excel文件的处理和展示是一项常见的需求。为了提供更好的用户体验和功能,经常需要在Web应用中添加一个JavaScript Excel查看器,小编今天将为大家展示如何借助葡萄城公司的纯前端表格控件——SpreadJS来创建一个E…

Spark RDD惰性计算的自主优化

原创/朱季谦 RDD(弹性分布式数据集)中的数据就如final定义一般,只可读而无法修改,若要对RDD进行转换或操作,那就需要创建一个新的RDD来保存结果。故而就需要用到转换和行动的算子。 Spark运行是惰性的,在…

网络安全(四)--Linux 主机防火墙

7.1. 介绍 防火墙(Firewall),也称防护墙,是由Check Point创立者Gil Shwed于1993年发明并引入国际互联网(US5606668(A)1993-12-15)。 它是一种位于内部网络与外部网络之间的网络安全…

clickhouse数据库磁盘空间使用率过高问题排查

一、前言 clickhouse天天触发磁盘使用率过高告警,所以需要进行排查,故将排查记录一下。 二、排查过程 1、连接上进入clickhouse 2、执行语句查看各库表使用磁盘情况 SELECT database, table, formatReadableSize(sum(bytes_on_disk)) as disk_space F…

数据库加密产品都有哪些功能?

数据库加密产品的主要功能是保护数据库中的敏感数据,确保其机密性和完整性。以下是数据库加密产品可能具备的一些功能: 数据加密:对数据库中的敏感数据进行加密,使得未经授权的人员无法读取或篡改数据。加密算法可以包括对称加密、…

2024 年 20 款最佳免费视频转换器软件 [安全快速有效]

最佳视频转换器软件的功能和定价的回顾和比较。从顶级付费和免费在线视频转换器工具列表中选择,可以快速轻松地转换任何视频: 什么是视频转换器? 视频转换工具允许您将视频从一种格式转换为另一种格式。第一个商业上成功的视频格式是 Quad&…

面试官:说说webpack中常见的Loader?解决了什么问题?

面试官:说说webpack中常见的Loader?解决了什么问题? 一、是什么 loader 用于对模块的"源代码"进行转换,在 import 或"加载"模块时预处理文件 webpack做的事情,仅仅是分析出各种模块的依赖关系&a…

易宝OA 两处任意文件上传漏洞复现

0x01 产品简介 易宝OA系统是一种专门为企业和机构的日常办公工作提供服务的综合性软件平台,具有信息管理、 流程管理 、知识管理(档案和业务管理)、协同办公等多种功能。 0x02 漏洞概述 易宝OA系统UploadFile、BasicService.asmx等接口处存在文件上传漏洞,未授权的攻击者可…

【Docker】从零开始:17.Dockerfile基本概念

【Docker】从零开始:17.Dockerfile 概述1.什么是Dockerfile2.Dockerfile构建三大步骤3.Docker执行Dockerfile流程 一张图理解Dockerfile常用保留指令~FROM~~MAINTAINER~~RUN~两种格式 ~EXPOSE~~WORKDIR~~USER~~ENV~~ADD~~COPY~两种格式 ~VOLUME~~CMD~两种格式注意 ~…

【译】虚拟线程:绝对优势

原文地址:Virtual Threads: A Definite Advantage 一、前言 深入了解虚拟线程如何提高应用程序的性能和可扩展性,同时将线程管理开销降到最低。 探索虚拟线程是一件很棒的事情,它是 Java 的一项强大功能,有望彻底改变多线程应用…

【数据结构】—红黑树(C++实现)

🎬慕斯主页:修仙—别有洞天 💜本文前置知识: AVL树 ♈️今日夜电波:Letter Song—ヲタみん 1:36━━━━━━️💟──────── 5:35 …

编织魔法世界——计算机科学的奇幻之旅

文章目录 每日一句正能量前言为什么当初选择计算机行业计算机对自己人生道路的影响后记 每日一句正能量 人生就像赛跑,不在乎你是否第一个到达尽头,而在乎你有没有跑完全程。 前言 计算机是一个神奇的领域,它可以让人们创造出炫酷的虚拟世界…

上位机与PLC:ModbusTCP通讯之数据类型转换

前请提要: 从PLC读取的数值,不管是读正负整数还是正负浮点数,读取过来后都会变成UInt16,也就是Ushort类型 一、ushort(UInt16)转成 Int32 源代码方法: //ushort类型转Int32类型的方法private int ushortToInt32(ushort[] date, int start){//先进行判断,长度是否正确…

在线工具分享SQL转ElasticSearchDSL语句

😊 作者: 瓶盖子io 💖 主页: 瓶盖子io-CSDN博客

vuepress-----10、vssue使用

vssue使用 https://vssue.js.org/ 按照文档 https://vssue.js.org/zh/guide/github.html (opens new window) 操作 # 1、创建 OAuth application https://github.com/settings/applications/new (opens new window) # 2、安装插件 yarn add vssue/vuepress-plugin-vssue# 这…

系统调用过程

应用程序通过系统调用请求操作系统的服务。而系统中的各种共享资源都由操作系统内核统一掌管,因此凡是与共享资源有关的操作(如存储分配、/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由…

基于javaweb实现的学籍管理系统

一、 系统架构 前端:jsp | jquery | css 后端:servlet | jstl | sqljdbc 环境:jdk1.6 | mysql 二、代码及数据库 三、功能介绍 01. 登录页 02. 首页 03. 修改个人密码 04. 专业信息管理 05. 班级信息管理 06. 课程信息管理 07. 学籍…

BigDecimal:高精度计算的秘密武器!

大家好,我是小米!最近在面试的时候,发现很多公司都喜欢考察关于BigDecimal的问题,所以我决定在这里和大家分享一下我的经验。如果你在面试中曾经遇到过这个问题,或者想要更深入地了解BigDecimal,那就赶紧跟…