鸢尾花数据集的使用举例子

机器学习常用数据集鸢尾花数据集的使用举例子,同时对数据集进行相应的介绍。

鸢尾花数据集(部分),共计150条记录,包含 setosa,versicolor,virginica 三种花型。
示例代码如下:

# coding: utf-8

from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.neural_network import MLPClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn.datasets import load_iris
import argparse

# 根据参数选择模型
ap = argparse.ArgumentParser()
ap.add_argument("-m", "--model", type=str, default="knn", help="请输入模型简称")
args = vars(ap.parse_args())

models = {
    "knn": KNeighborsClassifier(n_neighbors=1),
    "naive_bayes": GaussianNB(),
    "logit": LogisticRegression(solver="lbfgs", multi_class="auto"),
    "svm": SVC(kernel="rbf", gamma="auto"),
    "decision_tree": DecisionTreeClassifier(),
    "random_forest": RandomForestClassifier(n_estimators=100),
    "mlp": MLPClassifier()
}

# 载入鸢尾花数据集,然后进行训练集和测试集的划分,75%数据作为训练集,其余25%作为测试集
# random_state是随机状态,类似随机种子
print("载入鸢尾花数据集...")
dataset = load_iris()
(trainX, testX, trainY, testY) = train_test_split(dataset.data, dataset.target, random_state=3, test_size=0.25)

# 训练模型
print("正在使用模型:'{}'".format(args["model"]))
model = models[args["model"]]
model.fit(trainX, trainY)

# 预测并输出一份分类结果报告
print("生成结果报告")
predictions = model.predict(testX)
print(classification_report(testY, predictions, target_names=dataset.target_names))

该回答通过自己思路及引用到Chatgpt、baidu搜索,得到内容具体如下:
鸢尾花数据集(Iris dataset)是机器学习中最经典的数据集之一,它由英国统计学家和生物学家 Ronald Fisher 在 1936 年收集整理而成。该数据集包含了 150 条记录,每条记录包含了鸢尾花的四个特征(花萼长度、花萼宽度、花瓣长度、花瓣宽度)以及对应的品种(山鸢尾、变色鸢尾、维吉尼亚鸢尾)。

在 Python 中,我们可以使用 scikit-learn 库来加载和使用鸢尾花数据集。以下是一个使用鸢尾花数据集进行分类的示例代码:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# 加载鸢尾花数据集
iris = load_iris()

# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2)

# 定义 KNN 分类器
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("Accuracy:", accuracy)

上述代码首先使用 load_iris() 函数加载鸢尾花数据集,然后使用 train_test_split() 函数将数据集划分为训练集和测试集。接着,我们使用 KNN 分类器来训练模型,并在测试集上评估模型的准确率。

需要注意的是,鸢尾花数据集是一个比较简单的数据集,用于演示机器学习算法的基本应用和原理。在实际应用中,我们可能需要处理更加复杂的数据集,并使用更加高级的机器学习算法来解决实际问题。

希望这个示例能够帮到您!


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7592055
  • 这篇博客你也可以参考下:【20210914】【机器/深度学习】详解鸢尾花卉数据集,并以此为例介绍决策树模型的保存与调用
  • 除此之外, 这篇博客: 机器学习之鸢尾花数据处理流程中的 搜索最优参数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 搜索最优参数的原理是,通过对参数的遍历,如K近邻的n_neighbors参数选择一个范围,在这个范围内进行交叉验证,最后得出每个值对应的模型评测结果均值,最高的参数即可作为最优参数。

    import matplotlib.pyplot as plt
    
    def search_param(type):
        '''搜索最优参数,type为1使用原始数据,其他为使用扩充特征后的数据'''
        k_range = range(1,31)
        k_scores = []
        for k in k_range:
            knn = KNeighborsClassifier(n_neighbors=k)
            if type == 1:
                scores = cross_val_score(knn,iris.data,iris.target,cv=10,scoring='accuracy')
            else:
                scores = cross_val_score(knn,data_ploy,iris.target,cv=10,scoring='accuracy')
            k_scores.append(scores.mean())
        return k_range,k_scores
        
    k_range,k_scores = search_param(1)
    plt.plot(k_range,k_scores)
    plt.title("使用原始数据的最优参数搜索")
    plt.xlabel('Value of K for KNN')
    plt.ylabel('Cross-Validated Accuracy')
    plt.show()
    
    k_range,k_scores = search_param(2)
    plt.plot(k_range,k_scores)
    plt.title("使用扩充特征数据的最优参数搜索")
    plt.xlabel('Value of K for KNN')
    plt.ylabel('Cross-Validated Accuracy')
    plt.show()
    

    在这里插入图片描述
    在这里插入图片描述

  • 您还可以看一下 单笑老师的基于微信小程序和公众号的小红花答题系统课程中的 文本信息交互-成绩查询(下)小节, 巩固相关知识点