
机器学习
PandaDou
啥都别说了,学吧......
展开
-
关于证明PLA收敛的一点记录
yn=sign(wfTxn)y_n = sign(w_f^Tx_n)yn=sign(wfTxn)这里的wfw_fwf为我们假想的完美权重,及以这个权重对任意xnx_nxn分类,都可以得到正确的分类结果yny_nyn。yn(t)wfTxn(t)≥minnynwfTxn>0y_{n(t)} w_f^Tx_{n(t)} \ge \min_n y_n w_f^T x_n \g...原创 2019-04-13 11:01:25 · 939 阅读 · 0 评论 -
西瓜书课后题4.7(队列控制决策树深度)
题目:图4.2是一个递归算法,若面临巨量数据, 则决策树的层数会很深,使用递归方法易导致“栈”溢出。试使用“队列”数据结构,以参数MaxDepth控制树的最大深度,写出与图4.2等价、但不使用递归的决策树生成算法。思考我没写出严格的算法,是将对率回归决策树那一题的代码改了一下,实现不用递归,深度可控的决策树。不过那一题生成的树本来就比较矮,无法有更多的对照,之后我用别的数据集再做一下,先保留...原创 2019-08-28 23:50:26 · 1048 阅读 · 0 评论 -
西瓜书课后题5.5(BP/ABP)
题目试编程实现标准BP算法和累计BP算法,在西瓜数据集3.0上分别用这两个算法训练一个单隐层网络,并比较进行。代码:import numpy as npimport matplotlib.pyplot as pltfrom pylab import *import pandas as pdimport operator# 特征字典,后面用到了好多次,干脆当全局变量了featur...原创 2019-08-29 23:45:15 · 5863 阅读 · 4 评论 -
西瓜书课后题5.7(单层RBF神经网络解决抑或问题)
题目根据式原创 2019-09-03 15:38:35 · 1839 阅读 · 0 评论 -
西瓜书课后题5.10(卷积神经网络)
题目从网上下载或自己变成实现衣蛾卷积神经网络,并在手写字符识别数据MNIST上进行试验测试。代码直接从“python深度学习”这本书上copy下来的,用的是keras框架。以前看过,以后若有需要再细看这里的内容。代码from keras import layersfrom keras import modelsfrom keras.datasets import mnistfrom ...原创 2019-09-03 15:52:32 · 3356 阅读 · 0 评论 -
西瓜书课后题8.3(Adaboost)
题目从网上下载或自己变成实现Adaboost,以不剪枝决策树为基学习器,在西瓜集数据集3.0alphaalphaalpha上训练一个AdaBoost继承,并与图8.4进行比较。分析原理简单来说Adaboost得到的是一个加法模型,他通过迭代计算一个一个的分类器,然后以一定的权值相加在一起,得到一个总的模型。因为每一个单独的分类器,都依靠上一次的训练结果在进行这一次的训练,所以这就是所谓的串行...原创 2019-09-27 14:53:41 · 3821 阅读 · 0 评论 -
西瓜书课后题7.3(拉普拉斯修正的朴素贝叶斯分类器)
题目试编程实现拉普拉斯修正的朴素贝叶斯分类器,并以西瓜数据集3,.0为训练集,对P.151“测1”样本进行判别。编号 | 色泽 | 根蒂 | 敲声 | 纹理 | 脐部 | 触感 | 密度 | 含糖率 | 好瓜-| :-: | -:测1 | 青绿 | 蜷缩 | 浊响 | 清晰 | 凹陷 | 硬滑 | 0.697 | 0.460 | ?原理...原创 2019-09-27 21:20:29 · 13047 阅读 · 1 评论 -
西瓜书课后题7.6(AODE)
题目试编程实现AODE分类器,并以西瓜数据集3.0位训练集,对p.151的“测1”样本进行判别。编号色泽根蒂敲声纹理脐部触感密度含糖率好瓜测1青绿蜷缩浊响清晰凹陷硬滑0.6970.460?这个数据的真实类别为好瓜,在上一题用朴素贝叶斯也测试过。原理这实际上是一个半朴素贝叶斯分类器。首先什么叫朴素贝叶斯分类器,即采用了“”属性条件独...原创 2019-09-27 21:59:58 · 2440 阅读 · 0 评论 -
西瓜书课后题8.5(bagging)
题目试编程实现Bagging,以决策树桩为基学习器,在西瓜数据集3.0α\alphaα上训练一个Bagging继承。原理bootstrap: 假如数据集dataSet有N个数据,bootstrap的过程是随机从dataSet中取N次数据,得到新的数据集用来训练。bagging: 不断bootstrap获得新的数据集,并训练新的学习器。因为每次数据集都不太一样,集成起来可以消除方差。...原创 2019-09-27 22:21:02 · 4005 阅读 · 0 评论 -
西瓜书课后题9.4(K均值)
题目试编程实现k均值算法,设置三组不同的k值、三组不同初始中心点,在西瓜数据集4.0上进行试验比较,并讨论什么样的初始中心有利于取得好的结果。代码import numpy as npimport matplotlib.pyplot as pltdef createDataSet(): """ 创建测试的数据集,里面的数值中具有连续值 :return: ...原创 2019-09-27 22:31:07 · 3534 阅读 · 2 评论 -
西瓜书课后11.1(Relief算法)
题目试编程实现Relief算法,并考察其在西瓜数据集3.0上的运行结果。分析Relief是一种过滤式特征选择方法。简单来说就是利用这种方法可以计算出各个特征子集的重要性。我们用δj\delta^jδj来度量jjj属性的重要程度,公式为δj=∑−diff(xij,xi,nhj)2+diff(xij,xi,nmj)2\delta^j = \sum-diff(x_i^j,x^j_{i,nh})^2...原创 2019-09-28 18:50:36 · 2264 阅读 · 1 评论 -
西瓜书作业4.5(对率回归划分决策树/多变量决策树)
题目试编程实现基于对率回归进行划分选择的决策树算法,并为表4.3中数据生成一颗决策树。思路1.先处理离散值,通过one-hot对离散值编码成数值。2.通过梯度下降(暂未尝试牛顿法)求得对率回归的一组参数。3.通过这组参数将数据分为两类。4.循环达到决策树停止条件。(这个题做得比较匆忙,因为晚上要赶火车,图画出来之后没有算精度,但是思路应该是对的。通过梯度下降得到对率回归的一组参数,因...原创 2019-08-27 17:57:56 · 6994 阅读 · 2 评论 -
西瓜书习题4.3(基于信息熵的决策树)
试编程实现基于信息熵进行划分选择的决策树算法,并为表4.3中数据生成一颗决策树。代码import numpy as npimport matplotlib.pyplot as pltfrom pylab import *# 特征字典,后面用到了好多次,干脆当全局变量了featureDic = { '色泽': ['浅白', '青绿', '乌黑'], '根蒂': ['硬挺...原创 2019-08-22 22:12:06 · 11304 阅读 · 1 评论 -
机器学习技法2019作业一
[机器学习技法作业链接](https://www.csie.ntu.edu.tw/~htlin/course/)我做的是Machine Learning, Spring 2019。目前Bonus(17、18)没做。已做内容有一些存疑,格式和内容待优化。欢迎指出问题。Transforms: Explicit versus Implicit1)import numpy as npimport ...原创 2019-06-11 15:36:43 · 2920 阅读 · 2 评论 -
机器学习技法2019作业二
我做的是Machine Learning, Spring 2019。只做了实验题即编程题。Experiments with Bagging Ridge Regressionimport numpy as np# 从文件得到数据def file2matrix(filename): fr = open(filename) lines = fr.readlines() ...原创 2019-07-30 12:16:20 · 698 阅读 · 0 评论 -
西瓜书习题3.3(对率回归/logistic regression)
3.3 编程实现对率回归,并给出西瓜数据集3.0α\alphaα上的结果。1.代码import numpy as npimport matplotlib.pyplot as pltdef getDataSet(): """ get watermelon data set 3.0 alpha. :return: (feature array, label arra...原创 2019-08-18 21:06:18 · 6656 阅读 · 0 评论 -
机器学习技法2019作业三
Experiments with Decision Trees先得到决策树并计算Ein和Eoutimport numpy as np# 获取数据def getDataSet(filename): fr = open(filename) lines = fr.readlines()想· numberOfLines = len(lines) x = [...原创 2019-08-14 15:18:11 · 470 阅读 · 0 评论 -
机器学习技法作业四
Experiment with k Nearest Neighborimport numpy as npimport matplotlib.pyplot as pltdef getDataSet(filename): fr = open(filename) lines = fr.readlines() dataSet = [] for lin...原创 2019-08-14 15:29:49 · 579 阅读 · 0 评论 -
西瓜书习题3.4(交叉验证法和留一法)
3.4 选择两个UCI数据集,比较10折交叉验证法和留一法所估计出的对率回归的错误率。使用的UCI数据集是关于乳腺癌的。其描述为:数据集链接为Breast Cancer Coimbra代码import numpy as npimport matplotlib.pyplot as pltimport pandas as pddef getDataSet(filename): ...原创 2019-08-19 17:40:46 · 1969 阅读 · 0 评论 -
西瓜书习题3.5(线性判别分析/LDA)
编程实现线性判别分析,并给出西瓜数据集3.0α\alphaα上的结果。代码import numpy as npimport matplotlib.pyplot as pltdef getDataSet(): """ get watermelon data set 3.0 alpha. :return: (feature array, label array) ...原创 2019-08-19 23:09:21 · 4472 阅读 · 1 评论 -
西瓜书作业4.4(基于基尼指数划分决策树,未剪枝/预剪枝/后剪枝)
文章目录题目全部代码画图代码未减枝思想画图预剪枝思想画图后剪枝思想画图比较总结参考题目试编程实现基于基尼指数进行划分选择的决策树算法,为表4.2中数据生成预剪枝、后剪枝决策树,并与未剪枝决策树进行比较。(牢骚:剪枝这块真是头大,剪枝的原理很清晰,代码实现的时候遇到了问题,看了一些代码,不知道是可读性的问题还是自己反应慢,最后还是靠着自己的理解实现了,自知水平不行,现记录一下。)全部代码画...原创 2019-08-25 10:08:07 · 13383 阅读 · 4 评论 -
西瓜书各章课后编程题
写了一部分,有些题目前没做。方便自己找。第三章 线性模型3.3 对率回归/logistic regression3.4 交叉验证法和留一法3.5 线性判别分析/LDA第四章 决策树4.3 基于信息熵的决策树4.4 基于基尼指数划分决策树,未剪枝/预剪枝/后剪枝4.5 对率回归划分决策树/多变量决策树4.7 队列控制决策树深度第五章 神经网络5.5 BP/ABP5.7 单层R...原创 2019-09-28 19:11:05 · 2998 阅读 · 0 评论