机器学习技法作业三题目19-20

機器學習基石(Machine Learning Foundations) 机器学习基石 作业三 Q18-20 C++实现 大家好,我是Mac Jiang,今天和大家分享Coursera-NTU-機器學習基石(Machine Learning Foundations)-作业三 Q18-20的C++实现。虽然有很多大神已经在很多博客中给出了Phython的实现,但是给出C++实现的文章明显较少,这里为大家提供一条C++实现的思路!我的代码虽然能够得到正确答案,但是其中可能有某些思想或者细节是错误的,如果各位博友发现,请及 阅读详情

说明:

1. 此处是台大林轩田老师主页上的hw7,对应coursera上“机器学习技法”作业三;

2. 本文给出大作业(19-20题)的代码;

3. Matlab代码;

4. 非职业码农,代码质量不高,变量命名也不规范,凑合着看吧,不好意思;

5. 对结果没把握。如有问题,欢迎指教,QQ:50834。


相比于题目13-18,题目19-20需要修改主程序和一个函数。

主程序:

clear all;
close all;

data_trn = csvread('hw7_train.dat');
data_tst = csvread('hw7_test.dat');

xtrn = data_trn(:,1:end-1);
ytrn = data_trn(:,end);
[N,k] = size(xtrn);
xtst = data_tst(:,1:end-1);
ytst = data_tst(:,end);
[Ntst,k] = size(xtst);

clear data_trn
clear data_tst

T = 1000;
node0 = [1,0,0,0,0,0,0];
Ein = zeros(T,1);
Eout = zeros(T,1);
EinG = zeros(T,1);
EoutG = zeros(T,1);
ypred_sum_trn = zeros(N,1);
ypred_sum_tst = zeros(Ntst,1);

for t = 1:T,
    global dtree_node;
    dtree_node = [];
    idx_RF = randi(N,N,1);
    
    hw7_CART_train_1branch(xtrn(idx_RF),ytrn(idx_RF), node0);

    ypred_trn = hw7_CART_pred(dtree_node, xtrn);
    Ein(t) = sum(ypred_trn ~= ytrn)/N;
    ypred_sum_trn = ypred_sum_trn+ypred_trn;
    EinG(t) = sum(sign(ypred_sum_trn) ~= ytrn)/N;
    
    ypred_tst = hw7_CART_pred(dtree_node, xtst);
    Eout(t) = sum(ypred_tst ~= ytst)/Ntst;
    ypred_sum_tst = ypred_sum_tst+ypred_tst;
    EoutG(t) = sum(sign(ypred_sum_tst) ~= ytst)/Ntst;

    clear dtree_node;
end;

figure;
hold on;
plot(EinG,'r');
plot(EoutG,'b');
title('Q19-20: t versus E(Gt)');
xlabel('t');
ylabel('E(Gt)');
legend('Ein(Gt)', 'Eout(Gt)');

函数

function hw7_CART_train_1branch(x,y,node0)

global dtree_node;
dtree_node = [dtree_node;node0];
fn_num = node0(1);

[s, dim, thresh] = hw7_deci_stump_impurity(x, y);
dtree_node(fn_num,3)=s;
dtree_node(fn_num,4)=dim;
dtree_node(fn_num,5)=thresh;

dtree_size = size(dtree_node);
nodep = [dtree_size(1)+1,fn_num,s,0,0,0,0];
dtree_node = [dtree_node;nodep];
dtree_node(fn_num,6)=dtree_size(1)+1;

dtree_size = size(dtree_node);
nodem = [dtree_size(1)+1,fn_num,-s,0,0,0,0];
dtree_node = [dtree_node;nodem];
dtree_node(fn_num,7)=dtree_size(1)+1;

end


机器学习技法第二次作业 趁着deadline的前一天把作业做完了,主要是后面两个编程的题目比较花时间。下面直接进入主题吧。 Question 1 这题直接求导就好了 Question 2 黑塞矩阵,求二阶偏导(是叫这个吧)就求出来了 Question 3 这个看了视频应该都知道了 Question 4 替换一下带入公式就行了,两个值都是正值所以要与0求一个max 阅读详情

相关推荐

机器学习技法 作业三

机器学习技法 作业三 1 gini系数的计算。两者相加为1,换元代入求极值。结果是0.5 2 继续换元代入,发现第一项跟原来的gini系数形状一样。 3 limN→∞(1−1/N)pN=e−plim_{N\rightarrow \infty}(1-1/N)^{pN}=e^{-p}limN→∞​(1−1/N)pN=e−p 4 最好的情况就是三个g之间错误的例子不重叠,那么Eout(G)E_{o...

无所知的博客 1174

机器学习技法作业三题目16-18

说明: 1. 此处是台大林轩田老师主页上的hw7,对应coursera上“机器学习技法”作业二; 2. 本文给出大作业(13-15题)的代码; 3. Matlab代码; 4. 非职业码农,代码质量不高,变量命名也不规范,凑合着看吧,不好意思; 5. 对结果没把握。如有问题,欢迎指教,QQ:50834。 题目16-18仅更新主程序,函数可继续使用题目1

foreseerwang的博客 1021

机器学习技法 作业四

机器学习技法 作业四 1 计算一次前向加一次后向的总计算次数。网络结构641,前向63+41次,后向4(w2的梯度)+3(隐藏层的delta)+3*6(w1的梯度),一共47次。 2 36个隐藏层,每个有一个单元的时候系数最少。46个。要说为啥这样最少也说不上来为啥,大致就是每一层的系数需要相乘,每一个要乘的项越小最后结果越小吧。或者可以编程遍历所有情况计算。 3 与上一题相反,让相乘的式子里...

无所知的博客 2040

机器学习技法习题3答案

\begin{enumerate}\item The Gini index is $1-\mu_+^2-\mu_-^2$. What is the maximum value of the Gini index among all $\mu_+\in[0,1]$?Prove your answer.\\\\    解:当$\mu_+=\mu_-=\frac{1}{2}$时,Gini系数有最大值$1...

ma412410029的博客 1502

机器学习技法 作业一

机器学习技法 作业一 1 线性软间隔原始问题,有松弛变量。一共N+d+1个变量。 2 变化之后发现分割线为z1=4.5z_{1}=4.5z1​=4.5。 3 用ovxopt手撸一个svm,把系数对应上即可。ovxopt的接口系数与ppt上qp问题系数有正负号的变化,需要注意。起始也可以直接用sklearn的svm来做。 选最后一项,代码如下: from cvxopt import solve...

无所知的博客 2072

告别命令行恐惧!用nTopology可视化工具5分钟搞定三维Voronoi泡沫建模

本文介绍如何利用nTopology可视化工具快速生成三维Voronoi泡沫结构,无需编程即可完成复杂建模。Voronoi结构在轻量化设计、能量吸收和生物医学等领域具有重要应用,传统命令行方法门槛较高。通过nTopology的四步流程,用户可在5分钟内创建仿真就绪模型,大幅提升设计效率。

weixin_30764771的博客 426

机器学习技法第三次作业

Question 1 ~3 带入原式,解方程就知道了 Question 4 三个里面有两个错误才能出现错误,可以把资料分成10份分,1中出错的一份与3中对应,2中出错的两份与3中的 对应,则一共有3份错误,就是0.3  Question 5 同一个资料有超过一半的g出错才会出错,最好情况下就是所有的err资料加在一起除以(k+1)/2[就是超过半数] Question 6

qian1122221的博客 2031

AutoCAD2016安装破解教程

AutoCAD2016安装破解教程。本人亲自实验,破解成功,有效。以64位为例。 工具/原料   笔记本电脑 AutoCAD2016安装包 AutoCAD2016注册机(xf-adsk2016_x64.exe)链接:http://pan.baidu.com/s/1cAZQA windows7/8/8.1/10-32...

weixin_33804990的博客 1万+

林轩田 机器学习技法 作业3 决策树 随机森林

林轩田 机器学习技法 作业3 决策树 随机森林 分类问题(DecisionTree RandomForest)14-16题 python2.7 训练集来自 http://www.csie.ntu.edu.tw/~htlin/course/ml15fall/hw7/hw7_train.dat 测试集来自 http://www.csie.ntu.edu.tw/~htlin/course/ml15fal...

The Circle 997

图形引擎实战:镭射效果制作分享

该方案的优势1.遵循物理的2.可以使用少量的参数去调控镭射的效果。计算相对简单,缺点仍是颜色不能够自定义,还有一种常见的方案是采样一张镭射贴图来模拟,好处是颜色可以自定义同时性能上还很高效没有复杂的公式计算。我查阅了网上普遍的方案,常见的做法是制作一个Ramp图生成工具,然后将生成好的ramp图赋给材质。这两个方案的好处是美术同学可以手动的去控制镭射的颜色。最后就是Shader中对Ramp图的采样的部分,Ramp图的UV坐标是使用fresnel作为Ramp的U轴坐标,0.5作为V轴坐标。

qq_41166022的博客 1353

告别jom Error 2:深入理解QtCreator、CMake与MSVC工具链的协作机制

本文深入解析QtCreator构建过程中常见的jom Error 2问题,揭示CMake与MSVC工具链的协作机制。从CMake生成器的工作原理到MSVC工具链的组件协作,帮助开发者系统化诊断构建错误,提升开发效率。

weixin_30654419的博客 429

机器学习技法作业二题目19-20

说明: 1. 此处是coursera上“机器学习技法”作业二,对应台大林轩田老师主页上的hw6; 2. 本文给出大作业(19-20题)的代码; 3. Matlab代码; 4. 非职业码农,代码质量不高,变量命名也不规范,凑合着看吧,不好意思; 5. 如有问题,欢迎指教,QQ:50834。 题目19-20,分为主程序和一个函数。 主程序: clear all; close a

foreseerwang的博客 626

Android16 自定义HAL层适配一些VINTF和SELINUX问题修改

在RK里面一般权限矩阵在/rockchip/common/manifests/目录,我这版Android16的代码比较特殊,这里重点修改/device/rockchip/rockchip_generic/manifests/frameworks_compatibility_matrix.xml这个文件,不同的版本注册方式不同,在。hal_ruip_default.te,hal_ruip.te,attributes文件。拓展策略的方式添加,但是在Android16里面发现用不了。发现HAL层服务注册成功了。

tzj1058756809的博客 242

机器学习技法第一次作业

最近刚做完机器学习技法的第一次作业,三次attempt后达到了400,但是有些问题还不是很清楚,作业中用的是libsvm+python3。作为一个ML爱好者跟新手,更多的是记录作业的过程,当时做的也蛮辛苦的,如果有错,望客官海涵。 Question 1: 没什么可说的- -! Question 2: 没什么可说的- -! Question 3~4: 我没用选

qian1122221的博客 4697

uniapp 全局弹窗

功能详解1.有的组件需要全局调用,不想要在一个页面里面一个个引入,现在就需要写入到全局中,直接全局触发。2.通过 $rechargePop就能全局触发 充值的弹窗实现步骤一、先把组件封装好,如 rechargePop组件位置 components/RechargePop/index.vue ,就定义一个methods open方法就可以 二、在同级别路径下定义一个 index.js 三、引入到main.js 四、全局调用this.$rechargePop(); 就能弹出那个弹窗

weixin_42066070的博客 657

Xilinx DDR3 MIG IP核设计--汇总导航

快速上手Xilinx DDR3 IP核----汇总篇

孤独的单刀 2万+

【作业三】林轩田机器学习技法

这次关注的作业题目是Q13~Q20,主要是实现basic C&RT分类树,以及由其构成的Random Forest。 其中basic C&RT分类树的实现思路如下: (一)先抽象出来几个功能: 1)从local file读数据并转化成numpy.array的形式(考虑空行容错)(defread_input_data(path)) 2)如何根据某个维度的feature,计算...

weixin_34198583的博客 208

Python二级考试题目及答案解析(含刷题软件)

答案:A 解析:print()函数可以在屏幕上输出指定的字符串或变量,input()函数用于从键盘获取用户输入,int()函数可以将指定的字符串或浮点数转换为整数,float()函数可以将指定的字符串或整数转换为浮点数。答案:A 解析:int()函数可以将字符串转换为整数,float()函数可以将字符串转换为浮点数,str()函数可以将任意类型的变量转换为字符串,bool()函数可以将任意类型的变量转换为布尔值。

YOLO 1万+

ML学习经历

2018.6.20,学习开始 2018.6.20,Coursera课程,Machine Learning,斯坦福大学 非常适合初学者,内容循序渐进,整体难度不大,对概念、模型介绍的比较细致 数学推导不算完整也不深入,因此也没有数学上的理解难度,但是足够理解模型 assignment实用Octave,类似于Matlab 模型算法都很基本,tree、boost、CNN、RN...

a506433862的博客 395

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

《机器学习基石》作业一

已入机器学习坑,下决心走下去。《统计学习方法》一书介绍了十种算法,不算太难,但仍需重读以仔细研究其中的推导。《机器学习实战》一书则给出了各种算法的具体实例,Python实现,适合入门者了解算法的具体应用。另在Cousera上选了两门课:斯坦福Andrew Ng的《Machine Learning》、台大林田轩的《机器学习基石》和《机器学习技法》。Andrew的课程简单,省去了很多的数学推导和证明,但

Marcovaldong的博客 5486

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【作业一】林轩田机器学习技术

关注的是编程题目Q15~Q20 这里需要借用libsvm的python包,需要一下几个处理步骤: (1)到libsvm官网(http://www.csie.ntu.edu.tw/~cjlin/libsvm/)下载.gz包,解压缩到一个目录 (2)在解压的根目录make命令 (3)再到解压缩根目录下的python文件夹make命令 (4)把根目录下的libsvm.so.2,python文件...

weixin_34370347的博客 96

机器学习资料整理

机器学习目前比较热,网上也散落着很多相关的公开课和学习资源,这里基于课程图谱的机器学习公开课标签做一个汇总整理,便于大家参考对比。 1、Coursera上斯坦福大学Andrew Ng教授的“机器学习公开课”: 机器学习入门课程首选,斯坦福大学教授,Coursera联合创始人Andrew Ng老师的课程,课程图谱上多达400多人关注,20余条课程评论,绝大多数同学认为这门课程比较适合入门,以下选

weew_pp的专栏 721

林轩田-机器学习基石-作业3-python源码

林轩田-机器学习基石-作业3-python源码

rikichou的专栏 3023

机器学习学习路线和资料整理

机器学习学习路线和资料整理 1.基础知识 数学基础最主要是高等数学、线性代数、概率论与数理统计三门课程。 1.1微积分 《普林斯顿微积分读本》 下载链接:https://pan.baidu.com/s/1S1ypgDi2FH3uYjHEfvKwJA 提取码:bjlv 微积分的本质:https://space.bilibili.com/88461692/video 1.2 线性代数 ...

qq_27139123的博客 910

Machine Learning机器学习公开课汇总

机器学习目前比较热,网上也散落着很多相关的公开课和学习资源,这里基于课程图谱的机器学习公开课标签做一个汇总整理,便于大家参考对比。 1、Coursera上斯坦福大学Andrew Ng教授的“机器学习公开课”: 机器学习入门课程首选,斯坦福大学教授,Coursera联合创始人Andrew Ng老师的课程,课程图谱上多达400多人关注,20余条课程评论,绝大多数同学认为这门课程比较适合入门

GarfieldEr007的专栏 3508

机器学习公开课汇总

原文地址:http://blog.coursegraph.com/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%85%AC%E5%BC%80%E8%AF%BE%E6%B1%87%E6%80%BB 机器学习目前比较热,网上也散落着很多相关的公开课和学习资源,这里基于课程图谱的机器学习公开课标签做一个汇总整理,便于大家参考对比。 1、Coursera上

liuxiabing150的专栏 592
上一篇: 机器学习技法作业三题目16-18
下一篇: 茆诗松《贝叶斯统计》第二版勘误
foreseerwang
博客等级 码龄10年 120粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值