文章目录

  • 1. 鸢尾花分类(1)
  • 2. 鸢尾花分类_2
  • 《100天精通Python》专栏推荐白嫖80g Python全栈视频

废话少说速度上号刷题卷起来

1. 鸢尾花分类(1)

描述
请编写代码实现train_and_predict功能,实现能够根据四个特征对三种类型的鸢尾花进行分类。
train_and_predict函数接收三个参数:
train_input_features—二维NumPy数组,其中每个元素都是一个数组,它包含:萼片长度、萼片宽度、花瓣长度和花瓣宽度。
train_outputs—一维NumPy数组,其中每个元素都是一个数字,表示在train_input_features的同一行中描述的鸢尾花种类。0表示鸢尾setosa,1表示versicolor,2代表Iris virginica。
prediction_features—二维NumPy数组,其中每个元素都是一个数组,包含:萼片长度、萼片宽度、花瓣长度和花瓣宽度。
该函数使用train_input_features作为输入数据,使用train_outputs作为预期结果来训练分类器。请使用训练过的分类器来预测prediction_features的标签,并将它们作为可迭代对象返回(如list或numpy.ndarray)。结果中的第n个位置是prediction_features参数的第n行。

实现代码:

import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import metrics
from sklearn.naive_bayes import GaussianNBdef train_and_predict(train_input_features, train_outputs, prediction_features):""":param train_input_features: (numpy.array) A two-dimensional NumPy array where each elementis an array that contains: sepal length, sepal width, petal length, and petal width   :param train_outputs: (numpy.array) A one-dimensional NumPy array where each elementis a number representing the species of iris which is described inthe same row of train_input_features. 0 represents Iris setosa,1 represents Iris versicolor, and 2 represents Iris virginica.:param prediction_features: (numpy.array) A two-dimensional NumPy array where each elementis an array that contains: sepal length, sepal width, petal length, and petal width:returns: (list) The function should return an iterable (like list or numpy.ndarray) of the predicted iris species, one for each item in prediction_features"""   clf = GaussianNB()clf.fit(train_input_features, train_outputs)y_pred = clf.predict(prediction_features)return y_prediris = datasets.load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target,test_size=0.3, random_state=0)y_pred = train_and_predict(X_train, y_train, X_test)if y_pred is not None:print(metrics.accuracy_score(y_test, y_pred))

2. 鸢尾花分类_2

描述
机器学习库 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。

实现代码:

def transform_three2two_cate():data = datasets.load_iris()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 herereturn new_feat,new_labeldef train_and_evaluate():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 herelr_model = LogisticRegression().fit(train_x, train_y)y_predict = lr_model.predict(test_x)#code end here#注意模型预测的label需要定义为 y_predict,格式为list或numpy.ndarrayprint(accuracy_score(y_predict,test_y))

《100天精通Python》专栏推荐白嫖80g Python全栈视频

《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html

  • 优点:订阅限时9.9付费专栏进入千人全栈VIP答疑群,作者优先解答机会(代码指导、远程服务),群里大佬众多可以抱团取暖(大厂内推机会)!
  • 专栏福利:简历指导、招聘内推、每周送实体书、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等

Python每日一练(机器学习)——第43天:鸢尾花分类相关推荐

  1. Python每日一练0023

    问题 如何判断一个文件是否存在 解决方案 这个问题可以分成几类问题 如果这里的文件指的是文件或目录,我们可以用os.path.exists()方法 >>> import os > ...

  2. Python每日一练0004

    问题 如何保存迭代对象的最后N个元素 例如保存列表['a', 'b', 'c', 'd']的最后2个元素 或者保存某个迭代器对象的最后5个元素 解决方案 对于列表.元组这样的数据结构,可以使用切片来很 ...

  3. python 编程一日一练-python每日一练

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 过滤掉列表中的负数 筛选出字典{lilei: 79,jim: 88,lu ...

  4. python 编程一日一练-Python每日一练0022

    问题 你想在一个文件里每次读入固定大小的字节,比如每次读入4个字节并转成int,或者每次读入x个字节并进行结构化,例如: l = [5, 2, 4, 1, 2, 4, 5, 6, 8] with op ...

  5. python 编程一日一练-Python每日一练0013

    问题 现在有多个字典或者映射,你想将它们从逻辑上合并为一个单一的映射后执行某些操作, 比如查找值或者检查某些键是否存在. 解决方案 使用collections库的ChainMap类,可以快速的将多个d ...

  6. Python每日一练0018

    问题 你需要对浮点数执行精确的计算操作,并且不希望有任何小误差的出现. Python的float类型是存在误差的 >>> a = 1.1 >>> b = 2.2 & ...

  7. python每日一练名片管理程序_Python每日一练0022

    问题 你想在一个文件里每次读入固定大小的字节,比如每次读入4个字节并转成int,或者每次读入x个字节并进行结构化,例如: l = [5, 2, 4, 1, 2, 4, 5, 6, 8] with op ...

  8. Python机器学习日记2:鸢尾花分类(持续更新)

    Python机器学习日记2:鸢尾花分类 一.书目与章节 二. 前言 1. 什么是机器学习 2. 熟悉任务和数据 3. 本文软件版本 4. scikit-learn参考资料 三. 问题类型 四. 鸢尾花 ...

  9. Python每日一练第5天——将一组数尽可能均匀地分成两堆,使两个堆中的数的和尽可能相等

    每日一练-做题 麦克叔叔去世了,他在遗嘱中给他的两个孙子阿贝和鲍勃留下了一堆珍贵的口袋妖怪卡片.遗嘱中唯一的方向是"尽可能均匀地分配纸牌的价值".作为Mike遗嘱的执行人,你已经为 ...

最新文章

  1. MATLAB_8-边缘检测_demo.m[课堂齿轮作业]其他的在文章末尾
  2. 运行sqlplus时遇到cannot restore segment prot after reloc: Permission denied
  3. 集成Netty|tensorflow实现 聊天AI--PigPig养成记(2)
  4. Spring中资源的加载ResourceLoader
  5. 94年出生,她们如今都是985高校博士生导师!
  6. [转载]建立团队沟通协作工作方式
  7. Objective-C基础3:内存管理续
  8. python并发处理机制_Python并发编程—同步互斥
  9. 关于移动平台的viewport
  10. 为Android GridView 设置行背景
  11. 小白也会用的SQL优化工具推荐
  12. VIIRS和DMSP夜间灯光数据(1992-2020)
  13. 卡贴机变无锁教程_iphone卡贴机ICCID激活去掉卡贴变成无锁机的教程及原理
  14. Python基础学习笔记-第一章
  15. 华硕(ASUS)路由器AP模式设置教程
  16. python高级教程-2
  17. 惠普硬盘测试工具_短DST未通过,手把手教你惠普笔记本如何检测硬盘
  18. micro-ROS之esp32与ros2资料(freertos)
  19. 【Android 布局】AbsoluteLayout(绝对布局)
  20. 十大iOS角色扮演游戏盘点

热门文章

  1. ldd not a dynamic executable 问题
  2. 小米不再是性价比代表,被诟病低配高价的OV却向性价比靠拢
  3. sql面试题:面试常考的sql语句题汇总(面试SQL必考必看)
  4. xen-qemu初始化
  5. 图论算法——幻象迷宫(洛谷 P1363)
  6. 树莓派zero,连接手机USB共享网络
  7. CSS3之动画模块实现轮播图
  8. Vue项目中手机号码验证
  9. python游戏编程入门p_Python游戏编程入门 PDF高清完整版
  10. uni.showModal用法