溧阳 做网站,百度一下 你就知道官网,设计方案参考网站,php网站的特点专栏介绍
欢迎订阅专栏——机器学习实战 机器学习实战_Nowl的博客-CSDN博客 纸上得来终觉浅
本专栏项目将着重于解决各类实际机器学习问题#xff0c;带你上手各种场景的实际问题
数据集可以在我的资源中找到#xff0c;也可以自行搜索
文中导入数据集的路径要改成自己的…专栏介绍
欢迎订阅专栏——机器学习实战 机器学习实战_Nowl的博客-CSDN博客 纸上得来终觉浅
本专栏项目将着重于解决各类实际机器学习问题带你上手各种场景的实际问题
数据集可以在我的资源中找到也可以自行搜索
文中导入数据集的路径要改成自己的哦
不了解机器学习基础的可以阅读专栏 机器学习_Nowl的博客-CSDN博客 文章目录
一、任务描述
二、数据集描述
三、主要代码
主要代码库的说明与导入方法
数据预处理
模型训练
模型预测与性能评估
除数据预处理外的完整代码
四、本章总结 一、任务描述
鸢尾花分类任务是一个经典的机器学习问题通常用于演示和测试分类算法的性能。该任务的目标是根据鸢尾花的特征将其分为三个不同的品种即山鸢尾Setosa、变色鸢尾Versicolor和维吉尼亚鸢尾Virginica。这个任务是一个多类别分类问题其中每个样本都属于三个可能的类别之一。 二、数据集描述
鸢尾花分类任务使用的数据集通常是著名的鸢尾花数据集Iris dataset。该数据集包含了150个鸢尾花样本每个样本有四个特征萼片长度Sepal Length、萼片宽度Sepal Width、花瓣长度Petal Length和花瓣宽度Petal Width。每个样本还标有其所属的品种。 三、主要代码
1主要代码库的说明与导入方法 pandas (import pandas as pd): Pandas是一个用于数据处理和分析的强大库提供了数据结构如DataFrame和Series和数据操作工具使得在Python中进行数据清理、转换和分析变得更加方便。 matplotlib.pyplot (import matplotlib.pyplot as plt): Matplotlib是一个用于绘制图表和可视化数据的2D绘图库。pyplot是Matplotlib的子模块提供了类似于MATLAB的绘图接口用于创建图表、直方图、散点图等。 sklearn.model_selection (from sklearn.model_selection import train_test_split): train_test_split是scikit-learn中用于划分数据集为训练集和测试集的函数。它能够随机将数据划分为两个子集是机器学习中常用的数据准备步骤之一。 sklearn.svm (from sklearn import svm): Scikit-learn中的svm模块提供了支持向量机SVM算法的实现包括用于分类和回归的支持向量分类器SVC和支持向量回归器SVR等。 sklearn.metrics (from sklearn import metrics): metrics模块包含了许多用于评估模型性能的指标例如准确性、精确度、召回率、F1分数等。这些指标可用于评估分类、回归和聚类等任务的模型性能。 2数据预处理
1.查看数据集基本情况
# 导入必要的库
import pandas as pd# 从CSV文件读取鸢尾花数据集
iris pd.read_csv(datasets/iris.csv)# 查看数据集大小
print(iris.shape) 可以看到数据集为150行6列的数据集
2.特征工程
我们可以绘制图像来观察数据特征的关系
# 导入必要的库
import pandas as pd
import matplotlib.pyplot as plt# 从CSV文件读取鸢尾花数据集
iris pd.read_csv(datasets/iris.csv)# 绘制散点图显示鸢尾花的萼片长度与萼片宽度根据不同的品种用不同的颜色标识
plt.scatter(iris[iris.Species Iris-setosa][SepalLengthCm], iris[iris.Species Iris-setosa][SepalWidthCm], colorred, labelSetosa)
plt.scatter(iris[iris.Species Iris-versicolor][SepalLengthCm], iris[iris.Species Iris-versicolor][SepalWidthCm], colorgreen, labelVersicolor)
plt.scatter(iris[iris.Species Iris-virginica][SepalLengthCm], iris[iris.Species Iris-virginica][SepalWidthCm], colorblue, labelVirginica)# 显示图例
plt.legend()# 设置图表标题和轴标签
plt.title(Scatter Plot of Sepal Length vs Sepal Width for Iris Flowers)
plt.xlabel(Sepal Length (cm))
plt.ylabel(Sepal Width (cm))# 显示图形
plt.show()绘制花萼长与宽的关系图我们发现蓝色和绿色的点混在一起这就代表着这两个特征不能很好地区别鸢尾花的种类 # 绘制散点图显示鸢尾花的花瓣长度与花瓣宽度根据不同的品种用不同的颜色标识
plt.scatter(iris[iris.Species Iris-setosa][PetalLengthCm], iris[iris.Species Iris-setosa][PetalWidthCm], colorred, labelSetosa)
plt.scatter(iris[iris.Species Iris-versicolor][PetalLengthCm], iris[iris.Species Iris-versicolor][PetalWidthCm], colorgreen, labelVersicolor)
plt.scatter(iris[iris.Species Iris-virginica][PetalLengthCm], iris[iris.Species Iris-virginica][PetalWidthCm], colorblue, labelVirginica) 绘制花瓣长与宽的关系图我们发现不同颜色的点基本上被区分在了不同的区域这很好让我们用这两个特征来进行模型训练吧。 3模型训练
在这里我们使用svm分类模型来训练
# 导入必要的库
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn import svm# 从CSV文件读取鸢尾花数据集
iris pd.read_csv(datasets/iris.csv)# 将数据集划分为训练集和测试集测试集占总数据的20%
train, test train_test_split(iris, test_size0.2)# 提取训练集和测试集的特征和标签
train_x train[[SepalLengthCm, SepalWidthCm, PetalLengthCm, PetalWidthCm]]
train_y train.Species
test_x test[[SepalLengthCm, SepalWidthCm, PetalLengthCm, PetalWidthCm]]
test_y test.Species# 创建支持向量机SVM分类器模型
model svm.SVC()# 在训练集上拟合SVM模型
model.fit(train_x, train_y) 4模型预测与性能评估
评估模型的性能
from sklearn import metrics# 使用训练好的模型对测试集进行预测
prediction model.predict(test_x)# 打印SVM模型的准确性
print(The accuracy of the SVM is:, metrics.accuracy_score(prediction, test_y)) 结果是1.0这代表在测试集上的预测百分百正确这是由于数据集较小并且特征较少的原因我们将在之后遇到更加复杂的情况 5除数据预处理外的完整代码
# 导入必要的库
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn import svm
from sklearn import metrics# 从CSV文件读取鸢尾花数据集
iris pd.read_csv(datasets/iris.csv)# 将数据集划分为训练集和测试集测试集占总数据的20%
train, test train_test_split(iris, test_size0.2)# 提取训练集和测试集的特征和标签
train_x train[[SepalLengthCm, SepalWidthCm, PetalLengthCm, PetalWidthCm]]
train_y train.Species
test_x test[[SepalLengthCm, SepalWidthCm, PetalLengthCm, PetalWidthCm]]
test_y test.Species# 创建支持向量机SVM分类器模型
model svm.SVC()# 在训练集上拟合SVM模型
model.fit(train_x, train_y)# 使用训练好的模型对测试集进行预测
prediction model.predict(test_x)# 打印SVM模型的准确性
print(The accuracy of the SVM is:, metrics.accuracy_score(prediction, test_y)) 四、本章总结
如何查看数据集的大小基本的探索数据之间关系的方法对数据集进行划分的方法基本的模型训练基本的模型评估方法