自学练习
文章平均质量分 82
qilixuening
这个作者很懒,什么都没留下…
展开
-
机器学习-周志华-个人练习10.6
10.6 试使用MATLAB中的PCA 函数对Yale人脸数据集进行降维,并观察前20个特征向量所对应的图像。为了便于练习,未使用MATLAB,而是用了scikit-learn.decomposition模块下的PCA进行练习。书上给的Yale人脸数据集访问有点慢(貌似被墙了),我重新上传了一份到百度云(点此下载)。数据集共有样本166个,每张图像的分辨率为320*243(用numpy的sha原创 2017-05-14 15:57:39 · 2820 阅读 · 1 评论 -
贝叶斯线性回归小练习
根据上一篇博客贝叶斯线性回归(单输出)对贝叶斯线性回归的理解,随便找了某地区在售房房价随时间和面积的信息(如下所示),利用贝叶斯线性回归分别针对单变量线性基函数模型、单变量多项式基函数模型、单变量和双变量高斯基函数模型进行线性回归。原创 2017-05-26 22:09:35 · 3117 阅读 · 1 评论 -
贝叶斯线性回归(单输出)
本文主要依据Pattern Recognition and Machine Learing第三章的内容展开。1线性模型假设有一个 DD 维的输入 x\mathbf x,和一个连续的目标输出 tt,我们可以利用一组固定的基函数ϕi(x),i=0,…,M\phi_i(\mathbf x),i=0,\ldots,M的线性组合(组合系数为w0,…,wMw_0,\ldots,w_M),得到一个线性回归模型:原创 2017-05-26 20:05:54 · 1541 阅读 · 0 评论 -
机器学习-周志华-个人练习13.2
13.2 试基于朴素贝叶斯模型推导生成式半监督学习算法回顾一下,朴素贝叶斯的假设是xi=(xi1,…,xin)\mathbf x_{i}=(x_{i1},\ldots,x_{in})中的所有xijx_{ij}相互独立,结合贝叶斯公式可知,我们的目标是找到一个ck∈Cc_k \in \mathcal C,最大化下式: p(ck∣xi)=p(ck)p(xi∣ck)(1)p(c_k \mid \mat原创 2017-05-30 16:59:31 · 1344 阅读 · 1 评论 -
机器学习-周志华-个人练习13.3
13.3 假设数据由混合专家(mixture of experts)模型生成,即数据是基于kk个成分混合而得的概率密度生成: 半监督学习之混合专家模型的模型参数原创 2017-06-01 16:46:14 · 1834 阅读 · 0 评论 -
机器学习-周志华-个人练习12.4
12.4 试证明,Rd\mathbb R^d空间中线性超平面构成的假设空间的VC维是d+1。本题参考了四去六进一的一些想法,用自己的想法更加详细地描述出来。首先,我们假设在Rd\mathbb R^d空间中存在一组正交单位向量,使得此空间内任意一点的坐标可以表示为(x1,x2,…,xd)T(x_1,x_2,\ldots ,x_d)^\rm T,不失一般性地,选取坐标原点(0,…,0)(0,\ldots原创 2017-05-21 17:28:33 · 1374 阅读 · 0 评论 -
机器学习-周志华-个人练习13.1
13.1 试推导出式(13.5)~(13.8).式13.5首先,我们知道高斯混合模型的混合成分均为高斯分布,且由如下公式定义: pM(x)p(x∣μi,Σi)=∑i=1Nαi⋅p(x∣μi,Σi)=1(2π)n2|Σi|12exp{−12(x−μi)⊤Σ−1i(x−μi)}(1)(2)\begin{align}p_{\mathcal M}(\mathbf x)&=\sum_{i=1}^{N}\a原创 2017-05-29 20:07:49 · 1305 阅读 · 0 评论 -
机器学习-周志华-个人练习13.4
13.4 从网上下载或自己编程实现TSVM算法,选择两个UCI数据集,将其中30%的样例用作测试样本,10%的样例用作有标记样本,60%的样例用作无标记样本,分别训练出利用无标记样本的TSVM以及仅利用有标记样本的SVM,并比较其性能。选择最常用的iris数据集,并以sciki-learn的SVM算法为基础建立TSVM,为了方便展示效果,选用iris数据集下的两个第二类和第三类,并将类标记记为-1,原创 2017-06-09 11:31:15 · 4327 阅读 · 3 评论 -
图半监督学习——标记传播
从书上301~304页的介绍可知,图半监督学习具有两个明显的缺点: 处理大规模数据时性能欠佳; 难以直接对新样本进行分类。 下面采用sklearn的半监督学习模块来验证上述特性。 选用iris数据集的第1、3项属性开展测试,sklearn 的半监督学习算法是利用标记传播进行学习,具体又分为标记传播(Label Propagating)和标记扩散(Label Spreading)原创 2017-06-09 23:30:43 · 10106 阅读 · 0 评论 -
半监督学习(转载)
本文转载自ice110956。什么是半监督学习?传统的机器学习技术分为两类,一类是无监督学习,一类是监督学习。无监督学习只利用未标记的样本集,而监督学习则只利用标记的样本集进行学习。但在很多实际问题中,只有少量的带有标记的数据,因为对数据进行标记的代价有时很高,比如在生物学中,对某种蛋白质的结构分析或者功能鉴定,可能会花上生物学家很多年的工作,而大量的未标记的数据却很容易得到。这就促使能同时转载 2017-06-10 11:12:35 · 4272 阅读 · 0 评论 -
机器学习-周志华-个人练习13.10
13.10 试为图13.7算法第10行写出违约检测算法(用以检测是否有约束未被满足)根据题意可知,我们的目的是检测将xi\mathbf x_i划入聚类簇CrC_r是否会违背M与C\mathcal M与\mathcal C中的约束。 在这里不能只简单考虑该样本是否满足与某些约束条件内样本的“必连”和“勿连”条件,而是需要分析到底是待聚类样本违约还是其约束集合中的样本存在违约,同时需要考虑必连样本的传原创 2017-06-12 14:51:36 · 981 阅读 · 1 评论 -
Kaggle房价预测:数据探索——练习
主要借鉴了Kaggle基础问题——房价预测的两篇教程Comprehensive data exploration with Python和House Prices EDA并进行总结。本篇,主要进行数据探索,对数据的基本特征有一个全局的大致了解。import pandas as pdimport numpy as npimport matplotlib.pyplot as pltfrom skl原创 2017-07-15 12:48:33 · 8095 阅读 · 1 评论 -
Kaggle房价预测:数据预处理——练习
本篇主要借鉴了Kaggle基础问题——房价预测的两篇教程Comprehensive data exploration with Python和House Prices EDA并进行总结。基于上一篇数据探索,我们可以对整个数据集的基本特征进行大致了解,并同时学习到了Pandas和Seaborn的一些操作技巧。接下来,我们以此为基础,进行数据的预处理原创 2017-07-15 13:19:31 · 33325 阅读 · 10 评论 -
PRML:多元变量分布
考虑有 KK 个状态的问题。我们用一个 KK 维的向量 (x1,…,xK)(x_1, \dots, x_K) 来表示这些状态,第 kk 个状态用 xk=1,xj=0,∀j≠kx_k = 1, x_j=0, \forall j \neq k 表示。例如 x=(0,0,1,0,0,0)T\mathbf x=(0,0,1,0,0,0)^\text{T} 表示 K=6K = 6 的第 33 个状态。这些向量原创 2017-07-31 21:15:06 · 1239 阅读 · 0 评论 -
PRML:二元变量分布
伯努利分布考虑二元随机变量 x∈{0,1}x\in \{0,1\}(抛硬币,正面为 1,反面为 0),其概率分布由参数 μ\mu 决定:p(x=1)=μp(x=1)=\mu其中 (0≤μ≤1)(0 \leq\mu \leq 1),并且有 p(x=0)=1−μp(x=0)=1-\mu。这就是伯努利分布(Bernoulli distribution),其概率分布可以写成:Bern(x|μ)=μx(1原创 2017-07-31 21:09:46 · 1858 阅读 · 2 评论 -
win10下配置GPU加速的Keras框架
不久之前,开始学习深度学习,这个时候发现用CPU计算的Keras框架性能明显不够用了,但当时随便弄了一下没能成功实现GPU加速。于是后来一次重装系统,从头详细地重现这个过程。Python环境搭建要搭建Python环境,个人觉得真的没有比Anaconda安装更省心的了,而且其内部已经包含了许多常用的包,不用一个一个的安装了。我选用的是python3.6的64位版本。注意,在引导安装过程中,强烈建议勾选原创 2017-08-23 11:15:06 · 44671 阅读 · 8 评论 -
高斯基函数线性组合回归练习——sklearn库高斯过程回归
本题纯粹用作练习,无任何其他意义。采用高斯基函数作为线性回归模型,用sklearn.gaussian_process.GaussianProcessRegressor可以进行回归,顺便学习画3D图。代码如下:# -*- coding: utf-8 -*-import numpy as npimport matplotlib.pyplot as pltfrom sklearn.ga原创 2017-05-17 22:20:40 · 10427 阅读 · 0 评论 -
机器学习-周志华-个人练习10.1
10.1 编程实现k近邻分类器,在西瓜数据集3.0a上比较其分类边界与决策树分类边界的异同。根据k近邻分类器的原理,可简单地写出如下代码,通过各近邻点投票来判断各点的类别,分别取k=3,4,5可以得到如下3图。由图可见,k近邻分类器所得结果在训练集上分类效果较好,而其余决策树分类边界相比最大的不同在于其边界并不为直线,而是可以为曲线。这是因为在确定近邻时,k近邻分类器采用的是到各点的欧氏距离,原创 2017-05-13 19:04:44 · 2299 阅读 · 1 评论 -
机器学习-周志华-个人练习9.6
9.6 试析AGNES算法使用最小距离和最大距离的区别。 根据定义,如上图所示,最大和最小距离分别代表聚类簇i与j间距离最近的样本点或距离最远样本点之间的距离,而其具体几何含义是什么呢?根据个人的理解,参考了icefire的回答但有一些不同看法,我用维基百科上关于Hausdorff distance的示意图进行表示。 如下图所示,图中左下方的黑色虚线代表Hausdorff距离,而黑色实线代表dmi原创 2017-05-09 23:33:57 · 1701 阅读 · 0 评论 -
机器学习-周志华-个人练习8.3和8.5
8.3从网上下载或自己编程实现AdaBoost,以不剪枝决策树为基学习器,在西瓜数据集3.0a上训练一个AdaBoost集成,并与图8.4进行比较。8.5试编程实现Bagging,以决策树桩为基学习器,在西瓜数据集3.0a上训练一个Bagging集成,并与图8.6进行比较。这两道题代码我没有直接编,而是调用的scikit-learn库的集成学习模块进行AdaBoost和Bagging集成,原创 2017-05-07 18:56:42 · 3238 阅读 · 0 评论 -
机器学习-周志华-个人练习4.4
4.4 试编程实现基于基尼指数进行划分选择的决策树算法,为表4.2中数据生成预剪枝、后剪枝决策树,并与未剪枝决策树进行比较。本题未剪枝决策树与4.3题基本一致,同时,由于表4.2数据没有连续属性,因此本题的代码不能处理具有连续属性的数据XD。事实上,在本题用基尼指数与用基于信息增益的效果是一样的,但由于多个变量可能同时达到最小基尼指数,因此我的代码结果和成图里面的“脐部=凹陷”这一节点采用原创 2017-04-28 22:21:19 · 2820 阅读 · 1 评论 -
《机器学习》(周志华) 习题3.1-3.3个人笔记
3.1 试分析在什么情况下式(3.2)中不必考虑偏置项b.其实从前面第一章开始的习题就有很多不会的,第二章更是只会做前两道,现在到第三章,发现第一题都不是很明了了。从我个人来看:f(x)=w'x+b中,x代表d维向量,w则是相应的权重向量,而b=b*x0可看做权重为b,x0=1为相应属性. 很明显,1与x中的xi线性无关,也就是说,f(x)实际上是d+1维空间,当所有示例的x0属性都只有一种原创 2017-03-09 21:05:28 · 5187 阅读 · 0 评论 -
机器学习 3.4 个人笔记
3.4 选择2个UCI数据集,比较10折交叉验证法和留一法所估计出的对率回归的错误率。与3.3题类似,不过在此处beta与x的乘积进行指数运算,在某些数据集中容易出现RuntimeWarning: overflow encountered in exp,因此不得不放弃,就此作罢。10折交叉验证法和留一法均可以在划分好数据集的情况下直接调用下面的logit_regession(train_dat原创 2017-03-11 20:43:51 · 735 阅读 · 0 评论 -
机器学习(周志华) 习题3.5 个人笔记
附上代码:# -*- coding: utf-8 -*-import numpy as npimport matplotlib.pyplot as pltdata = [[0.697,0.460,1], [0.774,0.376,1], [0.634,0.264,1], [0.608,0.318,1], [0.556,原创 2017-03-12 10:06:46 · 1853 阅读 · 0 评论 -
机器学习-周志华-课后习题答案5.5
5.5 试编程实现标准BP算法和累计BP算法,在西瓜数据集3.0上分别用这两个算法训练一个单隐层网络,并进行比较。通过编程实践发现,在本例下要达到某一限定的均方误差时,标准BP算法比累积BP算法明显收敛更快,特别在本例中,将ABP算法误差设定到0.01时,其更新权重次数十分庞大。本人采用标准BP算法(隐层10个神经元)获取数据集在误差小于0.01时的各项权重算得其错误率为2/17,训练29原创 2017-03-17 21:39:34 · 4570 阅读 · 2 评论 -
机器学习-周志华-课后习题答案5.7
5.7 试根据式(5.18)和(5.19)构造一个能解决异或问题的单层RBF神经网络。根据100页图5.5a类似思想,可以构造出如下的单层RBF神经网络(图中有个c0标错了,应该是c1。输入值x1,x2和输出值y的取值范围均为{0, 1}。)于是,拥有4个隐层神经元的RBF网络就能进行异或操作了。当x取(0, 1)或(1, 0)时,输出值为1;当x取(1, 1)或(0,原创 2017-03-18 15:57:00 · 865 阅读 · 0 评论 -
机器学习(周志华) 习题7.3 个人笔记
7.3 试编程实现拉普拉斯修正的朴素贝叶斯分类器,并以西瓜数据集3.0为训练集,对p151“测1”样本进行判别。编程得到结果为:[0.024223607117715082, 4.4242506192749345e-05]因此测试例应预测为好瓜。# -*- coding: utf-8 -*-# exercise 7.1: apply LL method to estimate th原创 2017-03-30 20:13:12 · 1722 阅读 · 2 评论 -
机器学习(周志华) 个人练习答案7.6
7.6 试编程实现AODE分类器,并以西瓜数据集3.0为训练集,对p151的‘测1’样本进行判别。通过下列代码实现,结果为5.144433573365839和0.5121125686430099,显然应该划分为“好瓜”。# -*- coding: utf-8 -*-# exercise 7.6: AODE method to estimate likelihood based on fi原创 2017-03-31 20:58:53 · 823 阅读 · 0 评论 -
机器学习-周志华-个人练习11.1
11.1 试编程实现Relief算法,并考察其在西瓜数据集3.0上的运行结果。本题采用Relief算法处理二分类任务,虽然书上只要求对连续属性归一化,但我将离散属性的值转化为了1,2,3,如果不对离散属性归一化,显然在查找近邻时连续属性不能有效发挥作用,因此需要将数据的离散属性和连续属性都进行归一化。另外,在计算连续属性的相关统计量时,本题是二元分类,因此可以对书上公式11.3进行化简,得到下原创 2017-05-15 21:52:03 · 1181 阅读 · 1 评论 -
机器学习-周志华-个人练习11.3
11.3 Relief算法是分别考察每个属性的重要性。试设计一个能考虑每一对属性重要性的改进算法。首先,我们知道单属性对应的统计量计算公式如下: δj=∑i(−diff(xji,xji,nh)2+diff(xji,xji,nm)2)\displaystyle\delta^j=\sum_{i}\left(-\mathrm{diff}(x_{i}^{j},x_{i,nh}^{j})^2+\mathrm原创 2017-05-16 20:17:51 · 1119 阅读 · 0 评论 -
机器学习-周志华-个人练习4.3
4.3 试编程实现基于信息熵进行划分选择的决策树算法,并为表4.3中的数据生成一颗决策树。刚开始看到这一章时感觉这些内容都很好理解,算法也很直观,然而真到编程的时候发现有点编不下去,所以一直看到了集成学习这一章才发现真是到了不得不编的时候了,说实话,我感觉这一章的算法实现起来真的很麻烦。(1)首先就是怎么分出连续属性和离散属性来计算信息熵,这个我只能先对数据进行预处理:让离散属性的取值转换原创 2017-04-25 16:13:44 · 2312 阅读 · 1 评论 -
机器学习-周志华-个人练习9.4
9.4 试编程实现k均值算法,设置3组不同的k值,3组不同初始中心点,在西瓜数据集4.0上进行实验比较,并讨论什么样的初始中心有利于取得好结果。根据k均值算法的迭代公式,可以知道在二维平面上,这些中心点直接由其几何位置的两点间垂直平分线作为聚类边界,因此在数据不多的情况下,很容易陷入局部最优,从而使迭代过程很快结束。实际执行代码发现,所谓取得好结果,应该是使各点离聚类边界尽量远,且最终的中心点原创 2017-05-07 18:10:54 · 1657 阅读 · 0 评论 -
Kaggle入侵物种检测VGG16示例——基于Keras
根据Kaggle: Invasive Species Monitoring问题的描述,我们需要对图像是否包含入侵物种进行判断,也就是对图片进行而分类(0:图像中不含入侵物种;1:图像中含有入侵物种),据给出的数据(训练集2295张图及类别,测试集1531张图),很显然,这种图像分类任务很适合用CNN来解决,Kera的应用模块Application提供了带有预训练权重的Keras模型,如Xceptio原创 2017-08-23 20:08:36 · 4303 阅读 · 1 评论