機器學習技法第三次作業

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章