首页 分享 鸢尾花数据处理与二分类,

鸢尾花数据处理与二分类,

来源:花匠小妙招 时间:2025-02-17 15:01

描述

机器学习库 sklearn 自带鸢尾花分类数据集,分为四个特征和三个类别,其中这三个类别在数据集中分别表示为 0, 1 和 2,请实现 transform_three2two_cate 函数的功能,该函数是一个无参函数,要求将数据集中 label 为 2 的数据进行移除,也就是说仅保留 label 为 0 和为 1 的情况,并且对 label 为 0 和 1 的特征数据进行保留,返回值为 numpy.ndarray 格式的训练特征数据和 label 数据,分别为命名为 new_feat 和 new_label。

然后在此基础上,实现 train_and_evaluate 功能,并使用生成的 new_feat 和 new_label 数据集进行二分类训练,限定机器学习分类器只能从逻辑回归和决策树中进行选择,将训练数据和测试数据按照 8:2 的比例进行分割。

要求输出测试集上的 accuracy_score,同时要求 accuracy_score 要不小于 0.95。

首先,我们需要导入所需的库和数据集。我们将使用scikit-learn库中的鸢尾花数据集,并实现transform_three2two_cate和train_and_evaluate函数。

import numpy as np

from sklearn import datasets

from sklearn.model_selection import train_test_split

from sklearn.metrics import accuracy_score

from sklearn.linear_model import LogisticRegression

from sklearn.tree import DecisionTreeClassifier

def transform_three2two_cate():

iris = datasets.load_iris()

X = iris.data

y = iris.target

mask = y != 2

X = X[mask]

y = y[mask]

y[y == 1] = 0

return X, y

def train_and_evaluate():

X, y = transform_three2two_cate()

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

classifiers = [LogisticRegression(), DecisionTreeClassifier()]

accuracy = 0

for clf in classifiers:

clf.fit(X_train, y_train)

y_pred = clf.predict(X_test)

acc = accuracy_score(y_test, y_pred)

if acc > accuracy:

accuracy = acc

return accuracy

accuracy = train_and_evaluate()

print("Accuracy:", accuracy)

这个代码首先导入了所需的库和数据集。在transform_three2two_cate函数中,我们移除了label为2的数据,并将label为1的数据转换为0。然后,在train_and_evaluate函数中,我们将数据集分为训练集和测试集,并使用逻辑回归和决策树分类器进行训练。最后,我们输出测试集上的accuracy_score。

相关知识

基于KNN的鸢尾花分类
神经网络与深度学习(五)前馈神经网络(3)鸢尾花分类
BP神经网络鸢尾花红酒数据分类分析与源码实现
机器学习实战第1天:鸢尾花分类任务
第3章(下)基于Softmax回归完成鸢尾花分类任务
卷积神经网络实现鸢尾花数据分类python代码实现
神经网络分类鸢尾花数据与可视化展示
鸢尾花数据集可视化与机器学习模型评估
5 MLP版本的鸢尾花分类任务
鸢尾花分类

网址: 鸢尾花数据处理与二分类, https://www.huajiangbk.com/newsview1675257.html

所属分类:花卉
上一篇: 基于SVM的鸢尾花数据集分类实现
下一篇: 鸢尾花分类(代码实现)

推荐分享