周志华《机器学习》课后习题练习——ch3.4 交叉验证法练习

题目:选择两个UCI数据集,比较10折交叉验证法和留一法所估计出的对率回归的错误率。

其中代码主要参考:https://blog.csdn.net/snoopy_yuan/article/details/64131129

为了练习我采用的数据集与原博客中的有所区别,是UCI中一个霓虹人搞的有关于大肠杆菌中蛋白质的分布的数据集。。。传送门:http://archive.ics.uci.edu/ml/datasets/Ecoli

其中一共有8个属性,包括大肠杆菌的名字,以及其余7个不同的指标,最终的预测结果一共有8种不同的分类。

简单说一下原博客中没有提到的而我遇到的一些要点吧。

我主要用到的库有:pandas,numpy,sklearn,matplotlib,

首先是UCI的数据集很多都是.data和.name 结尾的文件,这些文件处理起来不是很方便,为此可以在UCI网站中打开相应的数据集,直接Ctrl+A复制到TXT中,然后复制进EXCEL中进行数据处理,进行简单的分列之后即可得到便于进行数据处理的csv文件了。

其次是在原博客中提到了使用seaborn进行画图,但是最新版本的seaborn中已经不带plt了,所以需要引进matplotlib中的pyplot。

然后是在进行数据处理的时候,原数据集中的分类结果是字符串表示的cp,im,pp等,分别代表蛋白质存在于细胞浆,细胞膜等中,对此字符串可以使用pandas的replace函数对其进行替换。

在替换之后使用sklearn进行10折交叉验证的时候会出现一个提示:Unknown label type:‘unkonwn’,这是因为数据类型没有确定导致的,可以使用.astype(‘int‘)即可。

 1 # -*- coding: utf-8 -*
 2 import numpy as np
 3 import seaborn as sns
 4 import pandas as pd
 5 import matplotlib.pyplot as plt
 6 from sklearn.linear_model import LogisticRegression
 7 from sklearn import metrics
 8 from sklearn.model_selection import cross_val_predict
 9
10 ecoli = pd.read_csv("ecoli.csv")
11 # print(ecoli)
12 # sns.jointplot("mcg", "gvh", tips, kind=‘reg‘)
13 # sns.pairplot(tips)
14 # plt.show()
15
16 ‘‘‘
17 Class Distribution. The class is the localization site. Please see Nakai &
18                Kanehisa referenced above for more details.
19
20   cp  (cytoplasm)                                    143
21   im  (inner membrane without signal sequence)        77
22   pp  (perisplasm)                                    52
23   imU (inner membrane, uncleavable signal sequence)   35
24   om  (outer membrane)                                20
25   omL (outer membrane lipoprotein)                     5
26   imL (inner membrane lipoprotein)                     2
27   imS (inner membrane, cleavable signal sequence)      2
28 ‘‘‘
29
30 ecoli = ecoli.replace(to_replace=‘cp‘ , value= 143)
31 ecoli = ecoli.replace(‘im‘ , 77)
32 ecoli = ecoli.replace(‘pp‘ , 52)
33 ecoli = ecoli.replace(‘imU‘ , 35)
34 ecoli = ecoli.replace(‘om‘ , 20)
35 ecoli = ecoli.replace(‘omL‘ , 5)
36 ecoli = ecoli.replace(‘imL‘ , 2)
37 ecoli = ecoli.replace(‘imS‘ , 2)
38 print(ecoli)
39
40 X = ecoli.values[:,1:7]   #training set
41 y = ecoli.values[:,8].astype(‘int‘)    #training set
42 # print(X)
43 # print(y)
44
45 # log-regression lib model
46 log_model = LogisticRegression()
47 m = np.shape(X)[0]
48
49 # 10-folds CV
50 y_pred = cross_val_predict(log_model, X, y, cv=10)
51 print(metrics.accuracy_score(y, y_pred))
52 # print(y_pred)
53
54
55 #LOO
56 from sklearn.model_selection import LeaveOneOut
57 loo = LeaveOneOut()
58 accuracy = 0;
59 for train, test in loo.split(X):
60     log_model.fit(X[train], y[train])  # fitting
61     y_p = log_model.predict(X[test])
62     if y_p == y[test] : accuracy += 1
63 print(accuracy / np.shape(X)[0])

原文地址:https://www.cnblogs.com/fengf1/p/9196720.html

时间: 2024-11-08 23:09:20

周志华《机器学习》课后习题练习——ch3.4 交叉验证法练习的相关文章

【读书笔记】机器学习-周志华 & 机器学习实战(Python)

这两本放在一起看吧.当然了,我觉得Spark上面的实践其实是非常棒的.有另一个系列文章讨论了Spark. /Users/baidu/Documents/Data/Interview/机器学习-数据挖掘/<机器学习_周志华.pdf> 一共442页.能不能这个周末先囫囵吞枣看完呢.哈哈哈. P1 一般用模型指全局性结果(例如决策树),用模式指局部性结果(例如一条规则). P3 如果预测的是离散值,那就是分类-classification:如果预测的是连续值,那就叫回归-regression. P3

周志华 机器学习 笔记

首先的阶段由卷积层和池化层组成,卷积的节点组织在特征映射块(feature maps)中,每个节点与上一层的feature maps中的局部块通过一系列的权重即过滤器连接.加权和的结果被送到非线性函数中如ReLU.一个feature maps中所有的节点分享相同的过滤器,即共享权重.这种结构的原因是双重的,第一,图像中一个值附近的值是高度相关的,第二,不同区域的值是不相干的.换句话说,一个图像某部分出现的特征会在其他部分出现,因此可以实现权值共享并且检测到相同模式在矩阵的不同部分,这种操作在数学

机器学习是什么--周志华

机器学习是什么--周志华 机器学习现在是一大热门,研究的人特多,越来越多的新人涌进来. 不少人其实并没有真正想过,这是不是自己喜欢搞的东西,只不过看见别人都在搞,觉着跟大伙儿走总不会吃亏吧. 问题是,真有个“大伙儿”吗?就不会是“两伙儿”.“三伙儿”?如果有“几伙儿”,那到底该跟着“哪伙儿”走呢? 很多人可能没有意识到,所谓的machine learning community,现在至少包含了两个有着完全不同的文化.完全不同的价值观的群体,称为machine learning "communit

机器学习-周志华

机器学习的一些小tips周志华Tom M.Mitchell,是卡内基梅隆大学的教授,讲授“机器学习”等多门课程:美国人工智能协会(AAAL)的主席:美国<Machine Learning>杂志.国际机器学习年度会议(ICML)的创始人:多种技术杂志的撰稿人,曾发表过许多文章,出版过多本专著,是机器学习领域的著名学者. 本书展示了机器学习中核心的算法和理论,并阐明了算法的运行过程.本书综合了许多的研究成果,例如统计学.人工智能.哲学.信息论.生物学.认知科学.计算复杂性和控制论等,并以此来理解问

《机器学习》(周志华)第4章 决策树 笔记 理论及实现——“西瓜树”

参考书籍:<机器学习>(周志华) 说       明:本篇内容为读书笔记,主要参考教材为<机器学习>(周志华).详细内容请参阅书籍——第4章 决策树.部分内容参考网络资源,在此感谢所有原创者的工作. ================================================================= 第一部分 理论基础 1. 纯度(purity) 对于一个分支结点,如果该结点所包含的样本都属于同一类,那么它的纯度为1,而我们总是希望纯度越高越好,也就是

(二)《机器学习》(周志华)第4章 决策树 笔记 理论及实现——“西瓜树”——CART决策树

CART决策树 (一)<机器学习>(周志华)第4章 决策树 笔记 理论及实现--"西瓜树" 参照上一篇ID3算法实现的决策树(点击上面链接直达),进一步实现CART决策树. 其实只需要改动很小的一部分就可以了,把原先计算信息熵和信息增益的部分换做计算基尼指数,选择最优属性的时候,选择最小的基尼指数即可. #导入模块 import pandas as pd import numpy as np from collections import Counter #数据获取与处理

周志华:关于机器学习的一点思考

https://mp.weixin.qq.com/s/sEZM_o5D6AhyMgvocbsFhw 演讲:周志华 整理:肖琴.闻菲 [新智元导读]机器学习如今大获成功的原因有哪些?如何才能取得进一步的突破?南京大学周志华教授在AI WORLD 2018大会上分享他关于机器学习的一点思考:我们需要设计新的.神经网络以外的深度模型:让智能体在弱监督条件下也能够学习,以及考虑开放动态任务环境下的学习. 播放 震撼!AI WORLD 2018世界人工智能峰会开场视频 南京大学计算机系主任.人工智能学院院

偶尔转帖:AI会议的总结(by南大周志华)

偶尔转帖:AI会议的总结(by南大周志华) 说明: 纯属个人看法, 仅供参考. tier-1的列得较全, tier-2的不太全, tier-3的很不全. 同分的按字母序排列. 不很严谨地说, tier-1是可以令人羡慕的, tier-2是可以令 人尊敬的,由于AI的相关会议非常多, 所以能列进tier-3的也是不错的 tier-1: IJCAI (1+): International Joint Conference on Artificial Intelligence AAAI (1): Na

(转)周志华:“深”为什么重要,以及还有什么深的网络

周志华老师大家应该都很熟悉吧,今天偶然看到他在今年IJCAI大会上的发言稿,感觉读完受益匪浅,故摘录下来与大家分享,也方便日后复习查看. 本文由雷锋网整理完成,原文地址:https://ai.yanxishe.com/page/reportDetail/14317 这里只是用于学习用途,非商业用途,如有侵权,请联系博主删除. 深度学习就等于深度神经网络吗? 深度学习今天已经有各种各样的应用,到处都是它,不管图像也好,视频也好,声音自然语言处理等等.那么我们问一个问题,什么是深度学习? 我想大多数