机器学习技法第三次作业

Question 1 ~3

带入原式,解方程就知道了

Question 4

三个里面有两个错误才能出现错误,可以把资料分成10份分,1中出错的一份与3中对应,2中出错的两份与3中的
对应,则一共有3份错误,就是0.3 

Question 5

同一个资料有超过一半的g出错才会出错,最好情况下就是所有的err资料加在一起除以(k+1)/2[就是超过半数]

Question 6~8

对着PPT中的公式展开就知道了

Question 9

就是OR操作,蛮简单的

Question 10

就是x中必须有奇数个1,包括1,3,5;1和3需要两个公式进行限制,5只需要一个,一共就是5个

Question 11~12

根据神经网络的计算公式,很容易推算出来

————————————————————————————————————————————————割


后面几题当时脑袋一热,非要用c++去写,写了好久,c++好多东西都忘记了,什么指针,reference,const,static,
相当于把决策树跟随机森林实现了串行版的,不过随机森林的速度好慢啊,300个完全生长的树。
当时直接用sklearn估计马上也就好了。不过对决策树还有随机森林,bagging什么的有了比较深的印象。我会把整个
项目加到附件里面

Question 13

10个,在代码里面输出一下就有结果了。我直接用递归做的,排序是对原数据的index进行排序,当时用数组实现了这部分功能,后来
发现很不方便用vector,然后自己还实现了一下快排什么的,做了好多造轮子的工作- -!浪费了不少时间。决策树我就是用
链表去存的,每个节点有两个后继节点。

Question 14

0.0. Ein应该就是没错了,完全生长的树。

Question 15

我跑出来是0.094,感觉应该选0.05,但是答案是0.15

Question 16~18 

为了这个功能,我发现原来设计的CART不是很合理,又把CART的代码改了一下,然后实现了一个RF,顺带一个BAGGING。
我直接贴输出结果吧
start:  526
1 0 0.0609333 0.079
2 0 0.0579667 0.077
3 0 0.0604667 0.078
4 0 0.0583667 0.073
5 0 0.0582 0.078
6 0 0.0621 0.077
7 0 0.0596333 0.077
8 0 0.0587 0.078
9 0 0.0601 0.073
10 0 0.0601 0.074
11 0 0.0595667 0.077
12 0 0.0577 0.074
13 0 0.0569333 0.078
14 0 0.0564333 0.078
15 0 0.0585667 0.074
16 0 0.0582667 0.077
17 0 0.0607333 0.077
18 0 0.0588 0.078
19 0 0.0604333 0.074
20 0 0.0598333 0.077
21 0 0.0608 0.077
22 0 0.0568667 0.077
23 0 0.0597333 0.078
24 0 0.0595 0.08
25 0 0.0582667 0.075
26 0 0.0579667 0.077
27 0 0.0605333 0.077
28 0 0.0585667 0.073
29 0 0.0587667 0.078
30 0 0.0618667 0.074
31 0 0.0588 0.077
32 0 0.0606333 0.077
33 0 0.0587333 0.081
34 0 0.0585 0.077
35 0 0.0577667 0.077
36 0 0.0573 0.078
37 0 0.0581333 0.073
38 0 0.0569667 0.077
39 0 0.0597 0.074
40 0 0.0605 0.074
41 0 0.0586333 0.074
42 0 0.0614333 0.077
43 0 0.0568667 0.079
44 0 0.0605333 0.073
45 0 0.0612333 0.074
46 0 0.0613 0.079
47 0 0.0579667 0.075
48 0 0.0582667 0.074
49 0 0.0573333 0.078
50 0 0.0597 0.077
51 0 0.0595667 0.078
52 0 0.0586 0.077
53 0 0.0576 0.073
54 0 0.0599333 0.077
55 0 0.061 0.077
56 0 0.0595667 0.078
57 0 0.0597667 0.075
58 0 0.0591667 0.074
59 0 0.0557667 0.078
60 0 0.0570333 0.078
61 0 0.0599 0.077
62 0 0.0588333 0.077
63 0 0.0601333 0.074
64 0 0.0616 0.073
65 0 0.0597 0.077
66 0 0.0598667 0.08
67 0 0.0569667 0.074
68 0 0.059 0.079
69 0 0.0603333 0.081
70 0 0.0608667 0.074
71 0 0.0600667 0.075
72 0 0.0579333 0.074
73 0 0.0583667 0.078
74 0 0.0563667 0.077
75 0 0.0603 0.078
76 0 0.0607667 0.073
77 0 0.0567333 0.075
78 0 0.0570333 0.077
79 0 0.0596 0.078
80 0 0.0584 0.075
81 0 0.0571 0.074
82 0 0.0572 0.077
83 0 0.0577333 0.077
84 0 0.0610333 0.077
85 0 0.0589 0.077
86 0 0.0572 0.075
87 0 0.0595 0.078
88 0 0.0579333 0.077
89 0 0.0573333 0.078
90 0 0.0600333 0.078
91 0 0.0587 0.074
92 0 0.0571 0.075
93 0 0.0608 0.078
94 0 0.0579 0.075
95 0 0.0560333 0.077
96 0 0.0574 0.077
97 0 0.0600667 0.078
98 0 0.0599 0.077
99 0 0.0583333 0.073
100 0 0.0577333 0.077
finish:  5131791
time:  1425
0 0.058957 0.07639
第一个是迭代的次数,三个数分别是Ein(gt)、Ein(GRF)、Eout(GRF).时间是s为单位,不过要乘以一下3.6,反正跑了1个多小时= =!

Question 16~18 

又改了一下之前RF的代码,使它支持树高这个参数的设置。我直接贴执行结果吧
start:  720
1 0.11 0.145
2 0.11 0.146
3 0.12 0.148
4 0.11 0.145
5 0.13 0.147
6 0.12 0.15
7 0.14 0.166
8 0.1 0.146
9 0.11 0.155
10 0.1 0.138
11 0.13 0.152
12 0.13 0.149
13 0.13 0.16
14 0.11 0.181
15 0.12 0.152
16 0.12 0.15
17 0.1 0.151
18 0.14 0.163
19 0.13 0.166
20 0.11 0.146
21 0.13 0.153
22 0.12 0.148
23 0.13 0.163
24 0.12 0.147
25 0.09 0.14
26 0.12 0.15
27 0.13 0.15
28 0.11 0.145
29 0.11 0.142
30 0.14 0.166
31 0.13 0.166
32 0.11 0.141
33 0.13 0.153
34 0.13 0.154
35 0.11 0.141
36 0.1 0.146
37 0.13 0.164
38 0.12 0.153
39 0.09 0.141
40 0.11 0.145
41 0.09 0.135
42 0.14 0.166
43 0.11 0.153
44 0.11 0.145
45 0.13 0.166
46 0.13 0.166
47 0.09 0.146
48 0.14 0.161
49 0.11 0.144
50 0.12 0.148
51 0.13 0.16
52 0.14 0.164
53 0.11 0.146
54 0.11 0.146
55 0.13 0.164
56 0.12 0.152
57 0.12 0.145
58 0.14 0.166
59 0.13 0.15
60 0.11 0.145
61 0.1 0.145
62 0.1 0.141
63 0.11 0.162
64 0.11 0.143
65 0.13 0.161
66 0.1 0.153
67 0.13 0.166
68 0.12 0.167
69 0.13 0.159
70 0.12 0.136
71 0.12 0.156
72 0.13 0.153
73 0.13 0.157
74 0.13 0.16
75 0.11 0.148
76 0.12 0.152
77 0.12 0.159
78 0.11 0.145
79 0.14 0.166
80 0.11 0.148
81 0.13 0.159
82 0.13 0.152
83 0.11 0.144
84 0.12 0.159
85 0.13 0.153
86 0.1 0.15
87 0.13 0.152
88 0.11 0.147
89 0.12 0.156
90 0.11 0.166
91 0.1 0.146
92 0.12 0.15
93 0.13 0.157
94 0.14 0.166
95 0.13 0.163
96 0.11 0.146
97 0.13 0.161
98 0.13 0.153
99 0.11 0.145
100 0.11 0.149
finish:  2313203
time:  642
第一个是迭代次数,后面分别是Ein和Eout
 

附件地址:
http://pan.baidu.com/s/1eQR6jJW
密码: ycgp


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值