用Python实现简单机器学习模型:以鸢尾花数据集为例

简介: 用Python实现简单机器学习模型:以鸢尾花数据集为例

引言

在数据科学领域,机器学习无疑是最热门的话题之一。它允许我们从大量数据中提取有价值的洞察,并做出预测。Python,作为一门强大的编程语言,拥有众多用于机器学习的库,如Scikit-learn、TensorFlow和PyTorch等。本文将介绍如何使用Python和Scikit-learn库来实现一个简单的机器学习模型,并以经典的鸢尾花(Iris)数据集为例进行演示。

一、鸢尾花数据集简介

鸢尾花数据集是机器学习领域中最常用的数据集之一,包含了150个样本,每个样本有4个特征(花萼长度、花萼宽度、花瓣长度和花瓣宽度),以及一个目标变量(鸢尾花的种类,共有3种)。

二、环境准备

在开始编写代码之前,请确保你已经安装了Python和相关的库。你可以使用以下命令来安装Scikit-learn库:

pip install scikit-learn

三、代码实现

以下是一个简单的Python脚本,用于加载鸢尾花数据集,训练一个K近邻(K-Nearest Neighbors, KNN)分类器,并评估其性能。

# 导入必要的库
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# 加载鸢尾花数据集
iris = load_iris()
X = iris.data  # 特征矩阵
y = iris.target  # 目标变量

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

# 特征缩放
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# 初始化KNN分类器,并设置k值为3
knn = KNeighborsClassifier(n_neighbors=3)

# 训练模型
knn.fit(X_train, y_train)

# 使用测试集进行预测
y_pred = knn.predict(X_test)

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

四、代码解释

  1. 导入库:我们导入了Scikit-learn中的几个模块,包括用于加载数据集的load_iris,用于分割数据集的train_test_split,用于特征缩放的StandardScaler,以及用于KNN分类的KNeighborsClassifier和用于计算准确率的accuracy_score

  2. 加载数据集:使用load_iris函数加载鸢尾花数据集,并分别获取特征矩阵X和目标变量y

  3. 分割数据集:使用train_test_split函数将数据集分为训练集和测试集,测试集占总数据的20%,并设置随机种子以确保结果的可重复性。

  4. 特征缩放:使用StandardScaler对特征进行标准化处理,即将特征值缩放到均值为0,方差为1的范围内。这是KNN算法等基于距离的算法所必需的步骤。

  5. 初始化并训练模型:创建一个KNN分类器实例,并设置k值为3。然后,使用训练集数据对模型进行训练。

  6. 预测与评估:使用测试集数据进行预测,并计算模型的准确率。

五、结果分析

运行上述代码后,你将看到一个输出,显示模型的准确率。由于KNN算法是一个相对简单的算法,并且鸢尾花数据集是一个较小的数据集,因此你可能会得到一个相对较高的准确率。

六、总结

本文介绍了如何使用Python和Scikit-learn库来实现一个简单的机器学习模型。通过加载鸢尾花数据集,训练KNN分类器,并评估其性能,我们展示了从数据加载到模型评估的整个流程。希望这个示例能帮助你更好地理解机器学习在Python中的实现。

七、进一步探索

虽然本文只使用了KNN算法和鸢尾花数据集,但Scikit-learn库提供了许多其他算法和数据集。你可以尝试使用不同的算法(如决策树、支持向量机等)和数据集(如波士顿房价数据集、手写数字数据集等)来进一步探索机器学习的魅力。

目录
相关文章
|
27天前
|
机器学习/深度学习 数据采集 数据挖掘
基于 GARCH -LSTM 模型的混合方法进行时间序列预测研究(Python代码实现)
基于 GARCH -LSTM 模型的混合方法进行时间序列预测研究(Python代码实现)
|
7天前
|
机器学习/深度学习 数据采集 并行计算
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合研究(Python代码实现)
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合研究(Python代码实现)
|
20天前
|
算法 安全 新能源
基于DistFlow的含分布式电源配电网优化模型【IEEE39节点】(Python代码实现)
基于DistFlow的含分布式电源配电网优化模型【IEEE39节点】(Python代码实现)
|
3月前
|
存储 机器学习/深度学习 人工智能
稀疏矩阵存储模型比较与在Python中的实现方法探讨
本文探讨了稀疏矩阵的压缩存储模型及其在Python中的实现方法,涵盖COO、CSR、CSC等常见格式。通过`scipy.sparse`等工具,分析了稀疏矩阵在高效运算中的应用,如矩阵乘法和图结构分析。文章还结合实际场景(推荐系统、自然语言处理等),提供了优化建议及性能评估,并展望了稀疏计算与AI硬件协同的未来趋势。掌握稀疏矩阵技术,可显著提升大规模数据处理效率,为工程实践带来重要价值。
166 58
|
1月前
|
机器学习/深度学习 算法 调度
【切负荷】计及切负荷和直流潮流(DC-OPF)风-火-储经济调度模型研究【IEEE24节点】(Python代码实现)
【切负荷】计及切负荷和直流潮流(DC-OPF)风-火-储经济调度模型研究【IEEE24节点】(Python代码实现)
|
6月前
|
机器学习/深度学习 算法 Python
机器学习特征筛选:向后淘汰法原理与Python实现
向后淘汰法(Backward Elimination)是机器学习中一种重要的特征选择技术,通过系统性地移除对模型贡献较小的特征,以提高模型性能和可解释性。该方法从完整特征集出发,逐步剔除不重要的特征,最终保留最具影响力的变量子集。其优势包括提升模型简洁性和性能,减少过拟合,降低计算复杂度。然而,该方法在高维特征空间中计算成本较高,且可能陷入局部最优解。适用于线性回归、逻辑回归等统计学习模型。
242 7
|
3月前
|
机器学习/深度学习 人工智能 PyTorch
200行python代码实现从Bigram模型到LLM
本文从零基础出发,逐步实现了一个类似GPT的Transformer模型。首先通过Bigram模型生成诗词,接着加入Positional Encoding实现位置信息编码,再引入Single Head Self-Attention机制计算token间的关系,并扩展到Multi-Head Self-Attention以增强表现力。随后添加FeedForward、Block结构、残差连接(Residual Connection)、投影(Projection)、层归一化(Layer Normalization)及Dropout等组件,最终调整超参数完成一个6层、6头、384维度的“0.0155B”模型
197 11
200行python代码实现从Bigram模型到LLM
|
4月前
|
机器学习/深度学习 人工智能 算法
Scikit-learn:Python机器学习的瑞士军刀
想要快速入门机器学习但被复杂算法吓退?本文详解Scikit-learn如何让您无需深厚数学背景也能构建强大AI模型。从数据预处理到模型评估,从垃圾邮件过滤到信用风险评估,通过实用案例和直观图表,带您掌握这把Python机器学习的'瑞士军刀'。无论您是AI新手还是经验丰富的数据科学家,都能从中获取将理论转化为实际应用的关键技巧。了解Scikit-learn与大语言模型的最新集成方式,抢先掌握机器学习的未来发展方向!
739 12
Scikit-learn:Python机器学习的瑞士军刀
|
4月前
|
机器学习/深度学习 人工智能 算法
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
本文介绍了如何使用 Python 和 YOLO v8 开发专属的 AI 视觉目标检测模型。首先讲解了 YOLO 的基本概念及其高效精准的特点,接着详细说明了环境搭建步骤,包括安装 Python、PyCharm 和 Ultralytics 库。随后引导读者加载预训练模型进行图片验证,并准备数据集以训练自定义模型。最后,展示了如何验证训练好的模型并提供示例代码。通过本文,你将学会从零开始打造自己的目标检测系统,满足实际场景需求。
2695 0
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
|
8月前
|
数据采集 数据可视化 数据挖掘
金融波动率的多模型建模研究:GARCH族与HAR模型的Python实现与对比分析
本文探讨了金融资产波动率建模中的三种主流方法:GARCH、GJR-GARCH和HAR模型,基于SPY的实际交易数据进行实证分析。GARCH模型捕捉波动率聚类特征,GJR-GARCH引入杠杆效应,HAR整合多时间尺度波动率信息。通过Python实现模型估计与性能比较,展示了各模型在风险管理、衍生品定价等领域的应用优势。
795 66
金融波动率的多模型建模研究:GARCH族与HAR模型的Python实现与对比分析

推荐镜像

更多