机器学习最简单的分类任务入门

以鸢尾花分类任务为例,几种不同的机器学习算法(决策树、支持向量机、K近邻)进行分类,并对比结果。

一、导入必要的库

python 复制代码
import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.svm import SVC
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

二、数据加载与预处理

python 复制代码
# 加载鸢尾花数据集
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.3, random_state=42)

三、决策树分类器

python 复制代码
# 决策树分类器
dt_clf = DecisionTreeClassifier(random_state=42)
dt_clf.fit(X_train, y_train)
dt_pred = dt_clf.predict(X_test)
dt_accuracy = accuracy_score(y_test, dt_pred)
print("决策树准确率:", dt_accuracy)

四、支持向量机分类器

python 复制代码
# 支持向量机分类器
svm_clf = SVC(random_state=42)
svm_clf.fit(X_train, y_train)
svm_pred = svm_clf.predict(X_test)
svm_accuracy = accuracy_score(y_test, svm_pred)
print("支持向量机准确率:", svm_accuracy)

五、K近邻分类器

python 复制代码
# K近邻分类器,这里取k = 3
knn_clf = KNeighborsClassifier(n_neighbors=3)
knn_clf.fit(X_train, y_train)
knn_pred = knn_clf.predict(X_test)
knn_accuracy = accuracy_score(y_test, knn_pred)
print("K近邻准确率:", knn_accuracy)

完整代码如下:

python 复制代码
import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.svm import SVC
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.3, random_state=42)

# 决策树分类器
dt_clf = DecisionTreeClassifier(random_state=42)
dt_clf.fit(X_train, y_train)
dt_pred = dt_clf.predict(X_test)
dt_accuracy = accuracy_score(y_test, dt_pred)
print("决策树准确率:", dt_accuracy)

# 支持向量机分类器
svm_clf = SVC(random_state=42)
svm_clf.fit(X_train, y_train)
svm_pred = svm_clf.predict(X_test)
svm_accuracy = accuracy_score(y_test, svm_pred)
print("支持向量机准确率:", svm_accuracy)

# K近邻分类器,这里取k = 3
knn_clf = KNeighborsClassifier(n_neighbors=3)
knn_clf.fit(X_train, y_train)
knn_pred = knn_clf.predict(X_test)
knn_accuracy = accuracy_score(y_test, knn_pred)
print("K近邻准确率:", knn_accuracy)

当运行上述代码时,会得到每种算法在鸢尾花测试集上的准确率,通过对比这些准确率可以对不同算法在该分类任务上的性能有一个初步的评估。请注意,不同的数据集、数据预处理方式以及算法参数调整都会对结果产生影响。

相关推荐
IT学长编程10 小时前
计算机毕业设计 基于深度学习的酒店评论文本情感分析研究 Python毕业设计项目 Hadoop毕业设计选题 机器学习选题【附源码+文档报告+安装调试】
hadoop·python·深度学习·机器学习·数据分析·毕业设计·酒店评论文本情感分析
☼←安于亥时→❦11 小时前
PyTorch之张量创建与运算
人工智能·算法·机器学习
nuczzz11 小时前
pytorch非线性回归
人工智能·pytorch·机器学习·ai
guygg8813 小时前
HOG + SVM 行人检测
人工智能·机器学习·支持向量机
和鲸社区13 小时前
四大经典案例,入门AI算法应用,含分类、回归与特征工程|2025人工智能实训季初阶赛
人工智能·python·深度学习·算法·机器学习·分类·回归
点云SLAM14 小时前
四元数 (Quaternion)在位姿(SE(3))表示下的各类导数(雅可比)知识(2)
人工智能·线性代数·算法·机器学习·slam·四元数·李群李代数
easy202014 小时前
Kaggle项目实践——Titanic: Machine Learning from Disaster
笔记·学习·机器学习
胖达不服输15 小时前
「日拱一码」087 机器学习——SPARROW
人工智能·python·机器学习·sparrow
Uzuki15 小时前
目标检测 | 基于Weiler–Atherton算法的IoU求解
目标检测·机器学习·自动驾驶·图形学
1373i17 小时前
【Python】通俗理解反向传播
深度学习·算法·机器学习