随机森林例子

news/2025/1/31 9:45:14 标签: 随机森林, 机器学习, 人工智能

完整代码:

# 导入必要的库
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import numpy as np

# 加载鸢尾花数据集
iris = load_iris()
X = iris.data  # 特征数据
y = iris.target  # 标签数据

# 将数据集分为训练集和测试集(70% 训练集,30% 测试集)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 创建并训练随机森林模型
rf = RandomForestClassifier(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)

# 在测试集上进行预测
y_pred = rf.predict(X_test)

# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率: {accuracy * 100:.2f}%")

# 测试一个新的数据点
new_data = np.array([[5.1, 3.5, 1.4, 0.2]])  # 新数据点
prediction = rf.predict(new_data)
print(f"新数据点预测类别: {prediction[0]}")
  1. 数据加载
    • 使用 load_iris() 加载鸢尾花数据集。X 包含特征数据(四个属性:花萼长度、花萼宽度、花瓣长度、花瓣宽度),y 是类别标签(0、1、2,分别代表 Setosa、Versicolor、Virginica)。
  2. 数据分割
    • 使用 train_test_split() 将数据分为训练集和测试集,训练集占 70%,测试集占 30%。
  3. 训练模型
    • 使用 RandomForestClassifier 创建随机森林模型,并用训练集数据 X_trainy_train 进行训练。
  4. 预测与评估
    • 使用训练好的模型预测测试集 X_test 的标签,并计算准确率。
  5. 新数据点预测
    • 使用 rf.predict() 对新数据点进行预测。这里输入的是一个假设的花萼和花瓣的特征数据 [5.1, 3.5, 1.4, 0.2]

运行输出:

模型准确率: 100.00%
新数据点预测类别: 0

复制编辑

模型准确率: 97.78% 新数据点预测类别: 0

  • 模型准确率:表示模型在测试集上的表现。在这个例子中,准确率为 97.78%。
  • 新数据点预测:对于输入的数据 [5.1, 3.5, 1.4, 0.2],模型预测其类别为 0,即 Setosa。

这样,您就可以根据提供的鸢尾花数据集训练一个随机森林模型,并对新的数据点进行预测。


http://www.niftyadmin.cn/n/5838567.html

相关文章

拼车(1094)

1094. 拼车 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a; class Solution { public:bool carPooling(vector<vector<int>>& trips, int capacity) {uint32_t passenger_cnt 0;//将原数据按照from排序auto func_0 [](vector<int> & …

mysql重学(一)mysql语句执行流程

思考 一条查询语句如何执行&#xff1f;mysql语句中若列不存在&#xff0c;则在哪个阶段报错一条更新语句如何执行&#xff1f;redolog和binlog的区别&#xff1f;为什么要引入WAL什么是Changbuf&#xff1f;如何工作写缓冲一定好吗&#xff1f;什么情况会引发刷脏页删除语句会…

2021版小程序开发4——基础加强

2021版小程序开发4——基础加强 学习笔记 2025 自定义组件组件中behaviors的作用安装和使用vant-weapp组件库使用MobX实现全局数据共享对小程序的API进行Promise化 具体的内容还包括&#xff1a;使用npm包、全局数据共享、分包和自定义tabBar的案例&#xff1b; 1 自定义组件 …

Web-3.0学习路线

方向学习内容✅ 区块链基础区块链、智能合约、共识机制✅ 智能合约Solidity / Rust&#xff08;Ethereum / Solana&#xff09;✅ 前端React.js, Next.js, Web3.js, ethers.js✅ 后端Node.js, Python, Golang&#xff08;链上数据&#xff09;✅ 存储IPFS, Arweave, Filecoin&a…

Leetcode 131 分割回文串(纯DFS)

131. 分割回文串https://leetcode.cn/problems/palindrome-partitioning/https://leetcode.cn/problems/palindrome-partitioning/ 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可能的分割方案。 示例 1&#xff1a…

[Java]泛型(二)泛型方法

1.定义 在 Java 中&#xff0c;泛型方法是指在方法声明中使用泛型类型参数的一种方法。它使得方法能够处理不同类型的对象&#xff0c;而不需要为每种类型写多个方法&#xff0c;从而提高代码的重用性。 泛型方法与泛型类不同&#xff0c;泛型方法的类型参数仅仅存在于方法的…

PYH与MAC的桥梁MII/MIIM

在学习车载互联网时&#xff0c;看到了一句话&#xff0c;Processor通过DMA直接存储访问与MAC之间进行数据的交互&#xff0c;MAC通过MII介质无关接口与PHY之间进行数据的交互。常见的以太网硬件结构是&#xff0c;将MAC集成进Processor芯片&#xff0c;将PHY留在Processor片外…

如何解除TikTok地区限制:实用方法解析

随着社交媒体的不断发展&#xff0c;TikTok作为一款短视频平台&#xff0c;已经在全球范围内吸引了数以亿计的用户。然而&#xff0c;不同地区对TikTok的使用权限存在一定的限制&#xff0c;这使得一些用户无法享受平台提供的完整内容和功能。 一、了解TikTok地区限制的原因 在…