0
点赞
收藏
分享

微信扫一扫

手把手带你学python—牛客网python基础 鸢尾花分类


牛客是一款不论是面试 还是刷题 都是非常有用的 还等什么,传送门- ​​牛客网python基础​​

🥇作者简介:大家好我是 uu 给刚入门的python的小伙伴带来一套python 完整的入门基础。

🥈个人主页:uu主页

📑 推荐一款非常火的面试、刷题神器👉  ​​牛客网python基础​​

觉得uu写的不错的话 麻烦动动小手 点赞👍 收藏⭐  评论📄

今天给大家带来的刷题系列是:pandas读取文件查看用户数据集的大小

                             

​​ 

手把手带你学python—牛客网python基础 鸢尾花分类_python

​ 

手把手带你学python—牛客网python基础 鸢尾花分类_机器学习_02


题目介绍: 

描述

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

然后在此基础上,实现 train_and_eval(232, 232, 232); background: rgb(249, 249, 249);">

import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import f1_score,roc_auc_score,accuracy_score
from sklearn.tree import DecisionTreeClassifierdef transform_three2two_cate():
data = datasets.load_iris()
#其中data特征数据的key为data,标签数据的key为target
#需要取出原来的特征数据和标签数据,移除标签为2的label和特征数据,返回值new_feat为numpy.ndarray格式特征数据,new_label为对应的numpy.ndarray格式label数据
#需要注意特征和标签的顺序一致性,否则数据集将混乱
#code start here
index_arr = np.where(data.target == 2)[0]
new_feat = np.delete(data.data, index_arr, 0)
new_label = np.delete(data.target, index_arr) #code end here
return new_feat,new_labeldef train_and_eval():
data_X,data_Y = transform_three2two_cate()
train_x,test_x,train_y,test_y = train_test_split(data_X,data_Y,test_size = 0.2)
#已经划分好训练集和测试集,接下来请实现对数据的训练
#code start here

estimator = DecisionTreeClassifier()
estimator.fit(train_x, train_y)
y_predict = estimator.predict(test_x)
#code end here
#注意模型预测的label需要定义为 y_predict,格式为list或numpy.ndarray
print(accuracy_score(y_predict,test_y))if __name__ == "__main__":
train_and_eval()
#要求执行train_and_eval()后输出为:
#1、{0,1},代表数据label为0和1
#2、测试集上的准确率分数,要求>0.95

​​import numpy as npfrom sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import f1_score,roc_auc_score,accuracy_score
from sklearn.tree import DecisionTreeClassifier

def transform_three2two_cate():
data = datasets.load_iris()
#其中data特征数据的key为data,标签数据的key为target
#需要取出原来的特征数据和标签数据,移除标签为2的label和特征数据,返回值new_feat为numpy.ndarray格式特征数据,new_label为对应的numpy.ndarray格式label数据
#需要注意特征和标签的顺序一致性,否则数据集将混乱
#code start here
index_arr = np.where(data.target == 2)[0]
new_feat = np.delete(data.data, index_arr, 0)
new_label = np.delete(data.target, index_arr)

#code end here
return new_feat,new_label

def train_and_eval():
data_X,data_Y = transform_three2two_cate()
train_x,test_x,train_y,test_y = train_test_split(data_X,data_Y,test_size = 0.2)
#已经划分好训练集和测试集,接下来请实现对数据的训练
#code start here

estimator = DecisionTreeClassifier()
estimator.fit(train_x, train_y)
y_predict = estimator.predict(test_x)




#code end here
#注意模型预测的label需要定义为 y_predict,格式为list或numpy.ndarray
print(accuracy_score(y_predict,test_y))

if __name__ == "__main__":
train_and_eval()
#要求执行train_and_eval()后输出为:
#1、{0,1},代表数据label为0和1
#2、测试集上的准确率分数,要求>0.95​​

手把手带你学python—牛客网python基础 鸢尾花分类_机器学习_03

 

  牛客是一款不论是面试 还是刷题 都是非常有用的 还等什么,传送门- ​​牛客网python基础​​

举报

相关推荐

0 条评论