Python实现机器学习(下)— 数据预处理、模型训练和模型评估 📅 发布时间:2026/9/11 10:57:49 👁 浏览次数: 前言Hello大家好我是小哥谈。本门课程将介绍人工智能相关概念重点讲解机器学习原理机器基本算法监督学习及非监督学习。使用python结合sklearn、Pycharm进行编程介绍iris鸢尾花数据集建立AI模型并评估其表现。本节课主要面向刚毕业高中生、大学生、硕士生等对AI行业充满向往的同学们前期回顾Python实现机器学习上— 基础知识介绍及环境部署目录1.数据预处理1.1 iris数据集介绍1.2 iris数据加载及展示2.模型训练3.模型评估1.数据预处理1.1 iris数据集介绍Iris 鸢尾花数据集是一个经典数据集在统计学习和机器学习领域都经常被用作示例。数据集内包含3类共150条记录每类各50个数据每条记录都有4项特征花萼长度、花萼宽度、花瓣长度、花瓣宽度可以通过这4个特征预测鸢尾花卉属于iris-setosa, iris-versicolour, iris-virginica中的哪一品种。通俗地说iris数据集属于监督式学习的应用是用来给花做分类的数据集每个样本包含了花萼长度、花萼宽度、花瓣长度、花瓣宽度四个特征我们需要建立一个分类器分类器可以通过样本的四个特征来判断样本属于山鸢尾、变色鸢尾还是维吉尼亚鸢尾这三个名词都是花的品种。采用iris数据集的原因主要是该数据集简单而且有代表性。1.2 iris数据加载及展示具体代码如下# iris数据加载 from sklearn import datasets iris datasets.load_iris() # 展示iris数据 print(iris.data) print(iris.feature_names) print(iris.target_names) # 确认数据类型 print(type(iris.data)) # 确认维度 print(iris.data.shape)运行结果如图所示结果说明1每行数据为一个样本2每行数据代表不同样本同一属性下对应的数值3每列数据对应的属性值图中最后一行该项目归根结底为一个分类问题是对应结果为类别非连续性的监督式学习问题每个预测的数值即是结果数据或称为目标、输出、标签。进行数据预处理的四个关键点1区分开属性数据和结果数据2属性数据和结果数据都是可量化的3运算过程中属性数据和结果数据的类型都是Numpy数组4属性数据和结果数据的维度是对应的由结果可知数据为150行4列。2.模型训练本项目的本质为一个分类问题即根据数据集目标的特征或者属性划分到已有的类别中。常用的分类算法有K近邻算法KNN、逻辑回归、决策树、朴素贝叶斯等。本项目采用的是KNN算法。KNNk-NearestNeighbor又被称为近邻算法它的核心思想是物以类聚人以群分。✅假设一个未知样本数据x需要归类总共有ABC三个类别那么离x距离最近的有k个邻居这k个邻居里有k1个邻居属于A类k2个邻居属于B类k3个邻居属于C类如果k1k2k3那么x就属于A类也就是说x的类别完全由邻居来推断出来。具体代码如下# 确认维度 #print(iris.data.shape) # 样本数据与结果分别赋值到“x”和“y” x iris.data y iris.target # 确认样本和输出数据维度 #print(x.shape) #print(y.shape) # 建模四步骤 1.调用需要使用的模型类 2.模型初始化创建一个模型实例 3.模型训练 4.模型预测 # 创建实例 knn KNeighborsClassifier(n_neighbors1) # 模型训练 knn.fit(x,y) # 模型预测 print(knn.predict([[1,2,3,4]]))运行结果如图所示结果表示第3类。3.模型评估在模型评估的时候必须保证已将数据分为训练集和测试集使用训练集数据进行模型的训练使用测试集数据进行预测从而评估模型表现。✅分离训练集和测试集的作用1可以实现在不同的数据集上进行模型训练和预测1建立数学模型的目的是对新数据的预测基于测试数据计算的准确率能够更有效地评估模型表现。具体代码如下所示# iris数据加载 from sklearn import datasets from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score iris datasets.load_iris() # 展示iris数据 #print(iris.data) #print(iris.feature_names) #print(iris.target_names) # 确认数据类型 #print(type(iris.data)) # 确认维度 #print(iris.data.shape) # 样本数据与结果分别赋值到“x”和“y” x iris.data y iris.target # 确认样本和输出数据维度 #print(x.shape) #print(y.shape) # 建模四步骤 1.调用需要使用的模型类 2.模型初始化创建一个模型实例 3.模型训练 4.模型预测 # 创建实例 #knn KNeighborsClassifier(n_neighbors1) # 模型训练 #knn.fit(x,y) # 模型预测 #print(knn.predict([[1,2,3,4]])) knn5 KNeighborsClassifier(n_neighbors5) knn5.fit(x,y) y_pred knn5.predict(x) #print(y_pred) #print(y_pred.shape) # 准确率正确预测的比例 # 用于评估分类模型的常用指标 # 准确率计算 print(accuracy_score(y,y_pred))运行结果如图所示通过以上案例可知人工智能就其本质而言是机器对人的思维信息过程的模拟让它能像人一样思考。根据输入信息进行模型结构、权重更新以实现最终优化。