【升华】机器学习鸢尾花分类完整代码示例

一、鸢尾花数据集简介

鸢尾花数据集(Iris dataset)是机器学习领域中最著名的数据集之一,由英国统计学家和生物学家Ronald Fisher于1936年整理发布。该数据集包含了150个样本,每个样本有四个特征:萼片长度、萼片宽度、花瓣长度和花瓣宽度,以及一个标签,指示该样本属于三种鸢尾花中的哪一种(Setosa、Versicolor、Virginica)。

鸢尾花

二、决策树算法概述

决策树是一种监督学习算法,可用于分类和回归任务。它通过递归地将数据集划分成多个子集,直到每个子集中的样本都属于同一类别为止。决策树的每个内部节点表示一个特征上的测试,每个分支代表一个测试输出,而每个叶子节点则表示一个类别。

在scikit-learn中,决策树算法有两个主要实现:DecisionTreeClassifier用于分类任务,DecisionTreeRegressor用于回归任务。本文将专注于分类任务。

鸢尾花分类任务是一个经典的机器学习问题,通常用于演示和测试分类算法的性能。该任务的目标是根据鸢尾花的特征将其分为三个不同的品种,即山鸢尾(Setosa)、变色鸢尾(Versicolor)和维吉尼亚鸢尾(Virginica)。这个任务是一个多类别分类问题,其中每个样本都属于三个可能的类别之一。

三、模型构建

数据集准备

import pandas as pd
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 读取数据
df = pd.read_csv('iris.csv')  # 假设数据集保存在当前目录下的iris.csv文件中

# 数据预处理
x = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
X = df[x]
y = df['classification']
X_train, X_test, Y_train, Y_test = train_test_split(X, y, test_size=0.2, random_state=1)  # 划分训练集和测试集

# 训练模型
model = SVC(gamma='auto')
model.fit(X_train, Y_train)  # 训练模型
predictions = model.predict(X_test)  # 预测测试集结果

# 评估模型
accuracy = accuracy_score(Y_test, predictions)  # 计算准确率
print(f'模型准确率为: {accuracy:.2f}')  # 输出准确率

猜你喜欢

转载自blog.csdn.net/dongjing991/article/details/143436141