周志华西瓜书3.4题。
本文所编写的代码均使用python3.7进行调试,依靠的sklearn进行的实验。
第一步,导入iris数据集,数据集使用sklearn包里面自带的。

from sklearn.linear_model import LogisticRegression
from sklearn import model_selection
from sklearn.datasets import load_iris# 载入iris数据
data = load_iris()

第二步,用10次十折交叉验证法估计对率回归的精度。(这里所用的循环即为10次)

# 十折交叉验证生成训练集和测试集
def tenfolds():k = 0truth = []while k < 10:kf = model_selection.KFold(n_splits=10, random_state=None, shuffle=True)for x_train_index, x_test_index in kf.split(data.data):x_train = data.data[x_train_index]y_train = data.target[x_train_index]x_test = data.data[x_test_index]y_test = data.target[x_test_index]# 验证生成数组长度是否符合规格print(len(x_train),len(x_test))# 用对率回归进行训练,拟合数据log_model = LogisticRegression(multi_class= 'ovr', solver = 'liblinear')log_model.fit(x_train, y_train)# 用训练好的模型预测y_pred = log_model.predict(x_test)for i in range(15):if y_pred[i] == y_test[i]:truth.append(y_pred[i] == y_test)k += 1# 计算精度accuracy = len(truth)/150print("用10折交叉验证对率回归的精度是:", accuracy)

第三步,用留一法估计对率回归的精度。(这里循环了150次)

# 用留一法验证
def leaveone():loo = model_selection.LeaveOneOut()i = 0true = 0while i < 150:for x_train_index, x_test_index in loo.split(data.data):x_train = data.data[x_train_index]y_train = data.target[x_train_index]x_test = data.data[x_test_index]y_test = data.target[x_test_index]# 用对率回归进行训练,拟合数据log_model = LogisticRegression(multi_class='ovr', solver='liblinear')log_model.fit(x_train, y_train)# 用训练好的模型预测y_pred = log_model.predict(x_test)if y_pred == y_test:true += 1i += 1# 计算精度accuracy = true / 150print("用留一法验证对率回归的精度是:", accuracy)

注:使用的时候直接调用相应的定义函数即可。
主要参考的博文:https://blog.csdn.net/catherined/article/details/82015857
欢迎学习交流!

周志华西瓜书3.4题——用十折交叉验证法和留一法估计对率回归的误差相关推荐

  1. 周志华《机器学习》课后习题3.410折交叉验证法和留一法UCI实例比较

    3.4选择两个UCI数据集,比较10折交叉验证法和留一法所估计出的对率回归的错误率. 利用SciKitLearn做十折交叉验证和留一法筛选 本文选用UCI提供的鸢尾花数据集和红酒产地数据集. Iris ...

  2. 周志华西瓜书课后习题答案总目录

    https://blog.csdn.net/icefire_tyh/article/details/52064910 机器学习(周志华西瓜书)参考答案总目录 从刚开始学习机器学习到现在也有几个月了,期 ...

  3. 周志华西瓜书《机器学习》习题提示——第2章

    2.1:分层采样, [ ( 500 500 × 70 % ) ] 2 \left[ \binom{500}{500\times 70\%} \right]^2 [(500×70%500​)]2 2.2 ...

  4. 周志华西瓜书学习笔记(一)

    周志华西瓜书学习笔记 第一章 绪论 数据处理分为三个阶段:收集,分析,预测. 一.基本概念 机器学习致力于研究如何通过计算的手段,利用经验来改善系统自身的性能. Mitchell给出的更形式化的定义为 ...

  5. 《机器学习》(周志华)西瓜书读书笔记

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 第1章 绪论 第2章 模型评估与选择 第3章 线性模型 第4章 决策树 第5章 神经网络 第6章 神经网络 第7章 贝 ...

  6. 周志华西瓜书公式勘误(一)之公式2.27勘误

    刚开始读周志华老师的机器学习西瓜书,读到第38页时感觉公式2.27的公式有误,照书上的理解怎么也说不通,网上搜一下,果然发现知乎上有人提问.可惜知乎上的回答也不能让人满意,不仅罗里吧嗦,还满屏公式让人 ...

  7. 周志华西瓜书第三章学习笔记

    第三章学习笔记 文章目录 第三章学习笔记 1.知识脉络 2.我的笔记 参考 1.知识脉络 2.我的笔记 这一章公式推导实在太多了,需要补充的推导过程也有很多,就不写电子档了.扩展公式推导和LDA部分补 ...

  8. 机器学习(周志华西瓜书) 参考答案 总目录

    转自:http://blog.csdn.net/icefire_tyh/article/details/52064910 从刚开始学习机器学习到现在也有几个月了,期间看过PDF,上过MOOC,总感觉知 ...

  9. 周志华西瓜书 10 个算法详细视频

    (文末有福利) 如果你现在准备开始学习,我想你的第一步就是先囤课!打开你的百度云,发现内存已达到80%!打开你的收藏夹,链接已经100+!仿佛我囤了,就代表我学了! 可是,真的有认真看吗? 可能囤积这 ...

最新文章

  1. Kotlin 简化Fragment使用的扩展方法
  2. 多线程随机数组生成+双线程快速排序(C++实现)(0.2秒排100W个数字)
  3. JDK的安装与环境变量配置
  4. ant 驱动 svnkit 下载代码
  5. matlab 条形图横坐标,Matlab条形图bar横坐标间距设置
  6. cocos2dx linux eclipse,如何将cocos2dx移植到eclipse上?
  7. Android新建一个activty
  8. python 动态类型_动态类型(Dynamic type)
  9. View 绘制体系知识梳理(4) 绘制过程之 Layout 详解
  10. [翻译] DBCamera 轻量级定制摄像头
  11. 将您重定向的次数过多。_吃鸡:蹦蹦将迎来新皮肤?体验服全面加强,最高时速也不打滑...
  12. 打印机 计算机 usb,电脑没法识别打印机(USB接口)
  13. 双交换消元:模合数多项式矩阵行列式、新伴随矩阵算法
  14. 电脑怎么设置微信定位服务器,电脑版微信,一个很简单的客户端,许多功能不支持...
  15. 富士施乐打印机DP P355d设置说明
  16. DM642的PCI驱动编程笔记:缺页中断问题阐述以及与改变中断级相关的内核函数
  17. 未来人工智能对人类的影响的利弊
  18. className和classList区别
  19. 【好记性不如烂笔头】Spring框架内容问答的形式回忆-长期更新
  20. oracle opm系统,ORACLE EBS OPM标准功能培训资料-OPM成本-V1.0.doc

热门文章

  1. 遗传算法(GA)附Matlab代码(copy能用)寻优算法
  2. python模拟键盘打字_python模拟鼠标点击和键盘输入的操作
  3. 3DMax学习:一:安装
  4. 【扔掉计算器】数学心算法《超棒超快》
  5. java swing实现简单KFC点餐系统
  6. 注意,金士顿Kingston KHX-FAN内存散热器,接口是小3pin母头。
  7. 洛咕11月月赛部分题解 By cellur925
  8. 数字货币与电子支付究竟有何不同 一起来了解央行数字货币的本质内涵
  9. 4位右移寄存器模型(D触发器)
  10. 积分制管理系统:其它可增加积分的功能