无涯教程-分类算法 - 随机森林

随机森林是一种监督学习算法,可用于分类和回归,但是,它主要用于分类问题,众所周知,森林由树木组成,更多树木意味着更坚固的森林。同样,随机森林算法在数据样本上创建决策树,然后从每个样本中获取预测,最后通过投票选择最佳解决方案。它是一种集成方法,比单个决策树要好,因为它可以通过对输出求平均值来减少过度拟合。

随机森林算法

无涯教程可以通过以下步骤来了解随机森林算法的工作原理-

  • 步骤1   -  首先,从给定的数据集中选择随机样本。

  • 步骤2   -  接下来,该算法将为每个样本构造一个决策树。然后它将从每个决策树中获得预测输出。

  • 步骤3   -  在此步骤中,将对每个预测输出进行投票。

  • 步骤4   -  最后,选择投票最多的预测输出作为最终预测输出。  

下图将说明其工作方式-

Random Forest Algorithm

代码实现

首先,从导入必要的Python包开始-

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

接下来,如下所示从其网络链接下载iris数据集:

path="https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"

接下来,需要为数据集分配列名称,如下所示:

headernames=[sepal-length, sepal-width, petal-length, petal-width, Class]

现在,需要将数据集读取为pandas数据框,如下所示:

dataset=pd.read_csv(path, names=headernames)
dataset.head()
分隔长度分隔宽度花瓣长度花瓣宽度
0 5.1 3.5 1.4 0.2 Iris-setosa
1 4.9 3.0 1.4 0.2 Iris-setosa
2 4.7 3.2 1.3 0.2 Iris-setosa
3 4.6 3.1 1.5 0.2 Iris-setosa
4 5.0 3.6 1.4 0.2 Iris-setosa

数据预处理将在以下脚本行的帮助下完成。

X=dataset.iloc[:, :-1].values
y=dataset.iloc[:, 4].values

接下来,无涯教程将数据分为训练和测试拆分。以下代码将数据集分为70%的训练数据和30%的测试数据-

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test=train_test_split(X, y, test_size=0.30)

接下来,借助sklearn的 RandomForestClassifier 类训练模型,如下所示:

from sklearn.ensemble import RandomForestClassifier
classifier=RandomForestClassifier(n_estimators=50)
classifier.fit(X_train, y_train)

最后,需要进行预测。可以在以下脚本的帮助下完成-

y_pred=classifier.predict(X_test)

接下来,按如下所示打印输出-

from sklearn.metrics import classification_report, confusion_matrix, accuracy_score
result = confusion_matrix(y_test, y_pred)
print("Confusion Matrix:")
print(result)
result1 = classification_report(y_test, y_pred)
print("Classification Report:",)
print (result1)
result2 = accuracy_score(y_test,y_pred)
print("Accuracy:",result2)

运行上面代码输出

Confusion Matrix:
[[14 0 0][ 0 18 1][ 0 0 12]]
Classification Report:precision   recall   f1-score   supportIris-setosa    1.00     1.00       1.00        14
Iris-versicolor    1.00     0.95       0.97        19Iris-virginica    0.92     1.00       0.96        12micro avg    0.98     0.98        0.98       45macro avg    0.97     0.98        0.98       45weighted avg    0.98     0.98        0.98       45Accuracy: 0.9777777777777777

分类算法 - 随机森林 - 无涯教程网无涯教程网提供随机森林是一种监督学习算法,可用于分类和回归,但是,它主要用于分类问题,众所周知...https://www.learnfk.com/python-machine-learning/machine-learning-with-python-classification-algorithms-random-forest.html

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

骨传导耳机对人体有危险吗?你知道骨传导耳机都有什么危害吗?

近些年,耳机种类层出不穷,耳塞式、耳夹式、头戴式、骨传导耳机等种类逐渐被大众熟悉,随着骨传导耳机成为耳机市场中的热门品类,骨传导耳机的使用体验也被越来越多的人在意,它的优势相信大家都知道,但是骨传…

dvwa xss通关

反射型XSS通关 low难度 选择难度&#xff1a; 直接用下面JS代码尝试&#xff1a; <script>alert(/xss/)</script>通关成功&#xff1a; medium难度 直接下面代码尝试后失败 <script>alert(/xss/)</script>发现这段代码直接被输出&#xff1a; 尝试…

经纬恒润荣获吉利汽车“最佳价值贡献”奖

8月18日&#xff0c;以“全面向新 共创共赢”为主题&#xff0c;吉利汽车在宁波成功举行2023年电子电器核心供应商恳谈会。经纬恒润凭借在项目合作上持续创新、高效协同等优异表现&#xff0c;获得“最佳价值贡献”奖项。 作为国产汽车代表性品牌之一&#xff0c;吉利汽车积极推…

线性代数的学习和整理13: 定义域,值域,到达域 和单射,满射,双射,反函数,逆矩阵

目录 1 函数与 向量/矩阵 2 初等数学的函数 2.1 函数 2.2 函数的定义&#xff1a;定义域 →映射→ 值域 3 高等数学里的函数&#xff1a;定义域和陪域/到达域&#xff08;非值域&#xff09;的映射关系 3.1 函数 3.2 单射&#xff0c;满射&#xff0c;双射等都是针对…

Spring容器及实例化

一、前言 Spring 容器是 Spring 框架的核心部分&#xff0c;它负责管理和组织应用程序中的对象&#xff08;Bean&#xff09;。Spring 容器负责创建、配置和组装这些对象&#xff0c;并且可以在需要时将它们提供给应用程序的其他部分。 Spring 容器提供了两种主要类型的容器&…

一文速学-让神经网络不再神秘,一天速学神经网络基础(五)-最优化

前言 思索了很久到底要不要出深度学习内容&#xff0c;毕竟在数学建模专栏里边的机器学习内容还有一大半算法没有更新&#xff0c;很多坑都没有填满&#xff0c;而且现在深度学习的文章和学习课程都十分的多&#xff0c;我考虑了很久决定还是得出神经网络系列文章&#xff0c;…

【两周学会FPGA】从0到1学习紫光同创FPGA开发|盘古PGL22G开发板学习之数码管动态显示(五)

本原创教程由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处 适用于板卡型号&#xff1a; 紫光同创PGL22G开发平台&#xff08;盘古22K&#xff09; 一&#xff1a;盘古22K开发板&#xff08;紫光同创PGL22G开发…

Prompt GPT推荐社区

大家好&#xff0c;我是荷逸&#xff0c;这次给大家带来的是我日常学习Prompt社区推荐 Snack Prompt 访问地址&#xff1a;http://snackprompt.com Snack Prompt是一个采用的Prompts诱导填空式的社区&#xff0c;它提供了一种简单的prompt修改方式&#xff0c;你只需要输入关…

00. 深入编程原理系列文章前言

名称的含义 为什么要用《从0到1&#xff0c;第一行代码》这个名字&#xff0c;有两重含义&#xff1a; 有一本很著名的书&#xff0c;就叫《从0到1》&#xff0c;表示从无到有的意思&#xff0c;这里也叫从0到1&#xff0c;表示代码到底怎么来的&#xff0c;程序到底是怎么运行…

新型安卓恶意软件使用Protobuf协议窃取用户数据

近日有研究人员发现&#xff0c;MMRat新型安卓银行恶意软件利用protobuf 数据序列化这种罕见的通信方法入侵设备窃取数据。 趋势科技最早是在2023年6月底首次发现了MMRat&#xff0c;它主要针对东南亚用户&#xff0c;在VirusTotal等反病毒扫描服务中一直未被发现。 虽然研究…

非计算机科班如何丝滑转码?(本人就是有点不丝滑)

我觉得无非三个办法可以选择(当然可能有其他方法) 自学 报班 有师傅带 但是在学习之前&#xff0c;你一定要明确你学习编程的目的是什么&#xff01; 游戏开发&#xff1f;后台研发&#xff1f;爬虫工程师&#xff1f;前端程序员?数据分析师&#xff1f; 或者 仅仅是想做一…

Hadoop

阅读前请看一下&#xff1a;我是一个热衷于记录的人&#xff0c;每次写博客会反复研读&#xff0c;尽量不断提升博客质量。文章设置为仅粉丝可见&#xff0c;是因为写博客确实花了不少精力。希望互相进步谢谢&#xff01;&#xff01; 文章目录 阅读前请看一下&#xff1a;我是…