2024-11-13 168 发布于河南
版权
举报
版权声明:
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议》和 《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
引言
在数据科学领域,机器学习无疑是最热门的话题之一。它允许我们从大量数据中提取有价值的洞察,并做出预测。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}")
四、代码解释
导入库:我们导入了Scikit-learn中的几个模块,包括用于加载数据集的load_iris,用于分割数据集的train_test_split,用于特征缩放的StandardScaler,以及用于KNN分类的KNeighborsClassifier和用于计算准确率的accuracy_score。
加载数据集:使用load_iris函数加载鸢尾花数据集,并分别获取特征矩阵X和目标变量y。
分割数据集:使用train_test_split函数将数据集分为训练集和测试集,测试集占总数据的20%,并设置随机种子以确保结果的可重复性。
特征缩放:使用StandardScaler对特征进行标准化处理,即将特征值缩放到均值为0,方差为1的范围内。这是KNN算法等基于距离的算法所必需的步骤。
初始化并训练模型:创建一个KNN分类器实例,并设置k值为3。然后,使用训练集数据对模型进行训练。
预测与评估:使用测试集数据进行预测,并计算模型的准确率。
五、结果分析
运行上述代码后,你将看到一个输出,显示模型的准确率。由于KNN算法是一个相对简单的算法,并且鸢尾花数据集是一个较小的数据集,因此你可能会得到一个相对较高的准确率。
六、总结
本文介绍了如何使用Python和Scikit-learn库来实现一个简单的机器学习模型。通过加载鸢尾花数据集,训练KNN分类器,并评估其性能,我们展示了从数据加载到模型评估的整个流程。希望这个示例能帮助你更好地理解机器学习在Python中的实现。
七、进一步探索
虽然本文只使用了KNN算法和鸢尾花数据集,但Scikit-learn库提供了许多其他算法和数据集。你可以尝试使用不同的算法(如决策树、支持向量机等)和数据集(如波士顿房价数据集、手写数字数据集等)来进一步探索机器学习的魅力。
相关知识
机器学习鸢尾花数据集
机器学习:鸢尾花数据集
探索机器学习的起点:鸢尾花数据集
基于机器学习的鸢尾花数据集的三分类算法的实现 C++
机器学习案例——鸢尾花数据集分析
【机器学习】基于KNN算法实现鸢尾花数据集的分类
python 鸢尾花数据集下载
Python机器学习基础教程
TensorFlow 2建立神经网络分类模型——以iris数据为例
分类算法入门:以鸢尾花数据集为例(上)
网址: 用Python实现简单机器学习模型:以鸢尾花数据集为例 https://m.huajiangbk.com/newsview1548662.html
上一篇: 对sklearn库中的鸢尾花数据 |
下一篇: 如何在地图上画柱状图python |