尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

12.6(1)

12.6(1)
📅 发布时间:2026/6/19 6:39:19

机器学习实验如下import pandas as pd
import numpy as np
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import KFold
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
import requests
import os

1. 使用pandas从本地读取iris数据集

def read_with_pandas():
# 如果文件不存在则下载
if not os.path.exists('iris.csv'):
print("正在下载iris数据集...")
try:
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'
response = requests.get(url)
with open('iris.csv', 'wb') as f:
f.write(response.content)
print("数据集下载完成!")
except:
print("下载失败,将直接使用sklearn数据集")
return None

# 读取数据
columns = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class']
df = pd.read_csv('iris.csv', header=None, names=columns)print("\n【Pandas加载结果】")
print(f"数据集形状: {df.shape}")
print("前5行数据:")
print(df.head())
return df

2. 从scikit-learn直接加载iris数据集

def load_from_sklearn():
iris = load_iris()
X, y = iris.data, iris.target

print("\n【Sklearn加载结果】")
print(f"数据集形状: {X.shape}")
print(f"特征名称: {iris.feature_names}")
print(f"类别名称: {iris.target_names}")
return X, y, iris.target_names

3-4. 五折交叉验证和模型评估

def cross_validation_and_evaluation(X, y, target_names):
# 创建分类器
rf = RandomForestClassifier(n_estimators=100, random_state=42)

# 五折交叉验证
kf = KFold(n_splits=5, shuffle=True, random_state=42)# 存储评估指标
accuracies = []
precisions = []
recalls = []
f1_scores = []print("\n【五折交叉验证结果】")
for i, (train_idx, test_idx) in enumerate(kf.split(X)):X_train, X_test = X[train_idx], X[test_idx]y_train, y_test = y[train_idx], y[test_idx]# 训练模型rf.fit(X_train, y_train)# 预测y_pred = rf.predict(X_test)# 计算指标acc = accuracy_score(y_test, y_pred)precision = precision_score(y_test, y_pred, average='macro')recall = recall_score(y_test, y_pred, average='macro')f1 = f1_score(y_test, y_pred, average='macro')# 存储结果accuracies.append(acc)precisions.append(precision)recalls.append(recall)f1_scores.append(f1)print(f"\n折 {i+1}:")print(f"  准确度: {acc:.4f}")print(f"  精度: {precision:.4f}")print(f"  召回率: {recall:.4f}")print(f"  F1值: {f1:.4f}")# 输出平均结果
print("\n【平均评估指标】")
print(f"平均准确度: {np.mean(accuracies):.4f}")
print(f"平均精度: {np.mean(precisions):.4f}")
print(f"平均召回率: {np.mean(recalls):.4f}")
print(f"平均F1值: {np.mean(f1_scores):.4f}")

主函数

def main():
print("========== Iris数据集实验 ==========")

# 步骤1: 用pandas读取
print("\n步骤1: 使用pandas读取iris数据集")
df = read_with_pandas()# 步骤2: 用sklearn读取
print("\n步骤2: 从scikit-learn加载iris数据集")
X, y, target_names = load_from_sklearn()# 步骤3-4: 交叉验证和评估
print("\n步骤3-4: 五折交叉验证和模型评估")
cross_validation_and_evaluation(X, y, target_names)print("\n========== 实验完成 ==========")

if name == "main":
main()

相关新闻

  • ICPC Region 游记
  • 12.6(2)
  • Replicate 加入 Cloudflare:构建网络即计算机的下一代 AI 基础设施

最新新闻

  • CTF密码学实战:Python AES加解密核心原理与攻击技巧
  • 2026 南宁钻石回收最新行情,克拉钻裸钻实时报价参考 - 讯息早知道
  • 北京东城区黄金回收指南:收的顶专业机构VS银行VS金店怎么选? - 奢侈品回收测评
  • 2026西安黄金行情解析|高位变现时机与门店测评 - 奢侈品回收测评
  • 旧饰焕新颜,财富再启航。广州首饰回收传递生活新希望 - 奢品小当家
  • 2026武汉黄金回收TOP5优质商家推荐【6月最新版】设备硬核资金足报价高变现无忧 - 名奢变现站

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号