作者查詢 / ddavid
作者 ddavid 在 PTT [ Python ] 看板的留言(推文), 共767則
限定看板:Python
看板排序:
全部TypeMoon9289H-GAME4300GO3873GameDesign2664FATE_GO2575JinYong2090FBG1867AC_In1774nobunyaga1708LoL1533Wrestle1251StarCraft879Poker815Python767Detective650CGI-Game645C_Chat531Steam414Old-Games345Magic338DMM_GAMES336OverWatch317Little-Games303C_and_CPP266historia256Inference253DataScience231WorldCup222RealPlaying221Programming196TRPG182ToS118Olympics_ISG114Expansion07109Prob_Solve90PathofExile85Salary53eSports47marvel41BattleRoyale35PUBG33C_Sharp30BlizzHeroes26NDS26SLG26NTUCCG25Palmar_Drama23politics23LeafKey18basketballTW17KanColle16Web_Design15ck51st31614Gossiping14PhD14NTU-Fantasy11mud10AndroidDev6Baseball6CS_IGO6KS92-3196AHQ4Ahqwestdoor4MATLAB4Toy4b885060xx3cat3CVS3HotBloodYuan3joke3LGS3NTUEE108HW3NTUVGC3SuperIdol3XiangSheng32nd_NTUCCC2AC_Music2b90902xxx2ck55th3332CLHS-50-142DummyHistory2FJU-ACC90a2FJU-AM-902GAMEMUSIC2japanavgirls2JD_Lover2KS93-3042NBA2NCCU08_SW2NTUST-DT92-12OrangeRoad2SC-91-3012SCU_Talk2tabletennis2talk2Viator94Ding2About_Clubs1AngelPray1b89902xxx1b92902xxx1C_GameBoard1CCU_COMM_ANT1cksh83rd3031CMWang1CSMU-MED901Dynasty1G-REX1HatePolitics1Hunter1KS94-3101Mabinogi1MobileComm1NDHU-His961PuzzleDragon1sex1SOFTSTAR1specialman1Sportcenter1SYSOP1WomenTalk1<< 收起看板(120)
11F→: 對耶,有*a這招XD12/06 18:35
12F→: python用zip跟*可以搞一堆奇奇怪怪的組裝處理XD12/06 18:36
13F→: 然後不能接數字那個問題可以用str(a[0])解決,雖然就會感12/06 18:38
14F→: 覺print(a[0], end='')會比print(end=str(a[0]))來得好,12/06 18:39
15F→: 雖然可以拿到同樣效果,但前者在「意義上」比較正確12/06 18:39
19F推: 樓上,這是3.6版的新格式化字串用法,參考:12/10 04:38
20F→: http://zetcode.com/python/fstring/12/10 04:38
21F→: 簡單來說f接的字串裡面,可以用大括號直接夾著一個算式,12/10 04:40
22F→: python會evaluate其值來取代那個大括號12/10 04:41
8F推: 關鍵應該是某些終端機不吃backspace的處理12/06 21:47
9F→: 不是所有終端機都有處理游標位移相關的控制碼12/06 21:48
10F→: 所以這招我不會很喜歡用,因為不同地方可能結果不同12/06 21:49
11F→: 試了一下,Windows 10的command line就失敗了XD12/06 21:51
12F→: 另外其實反正就是迴圈跑完要加印一次'\b',單以這個例子而12/06 21:52
13F→: 言else其實是不需要的啊,反正做一次就對了12/06 21:52
6F推: 樓上,if else跟for沒有相關性,要分開看12/06 18:29
7F→: a if b else c近似為C++裡面的b ? a : c(注意順序)12/06 18:30
8F→: b成立的話就a,否則就c12/06 18:31
9F→: 那一行難懂是因為必須要知道語法parse的優先順序,如果能12/06 18:32
10F→: 加上括號就會比較好讀了12/06 18:33
11F→: 我個人寫到這些多個邏輯式、運算子或語法互套的情況都習慣12/06 18:33
12F→: 很詳盡加括號表示解讀順序,不然有時自己回頭看都會花掉XD12/06 18:34
3F推: 問題原Po如果真的卡住需要細節思路解說的話可以回應一下哪12/06 03:42
4F→: 邊不懂,或者補充一下你實際應用情況的條件讓大家考慮哪種12/06 03:43
5F→: 方法會相對更適合12/06 03:43
10F推: 這要看你的準確率怎麼算的吧?11/19 22:39
11F→: 如果是設定為二元分類的話,照理說這邊只有0% 50% 100%三11/19 22:41
12F→: 種值,當然這是你的兩張圖在training testing data都均勻11/19 22:42
13F→: 的情況11/19 22:42
14F→: 但如果你不是做成二元分類而是最後拿到一個分數,比如是A11/19 22:43
15F→: 這張圖的分數0.8 B是0.2,然後把1/0做為正確答案的話,就11/19 22:44
16F→: 會評估出非0% 50% 100%的評估值了11/19 22:45
17F→: 另外如果在testing data裡面不均勻的話,當然也可能有不一11/19 22:46
18F→: 樣的值出現,就算使用二元分類。比如是4:6的話就會有11/19 22:46
19F→: 0% 40% 60% 100%四種可能11/19 22:47
20F→: 而以99.5%這個情況來看,應該不是不均勻的狀態,所以就比11/19 22:47
21F→: 較像是你最後的結果是regression導致的,你得到了非常接近11/19 22:48
22F→: 1的分數,但可能訓練還有不足、或是lr不夠小導致最後掉不11/19 22:49
23F→: 到完美的那個點、又或者掉到某個99.5%的local maximum出不11/19 22:50
24F→: 來了之類的11/19 22:50
28F推: 其實如果有洗牌的話就有可能稍微跟1000倍epochs不一樣啦,11/20 00:08
29F→: 因為前者就有可能連續多次train到同一張圖,改epochs的話11/20 00:08
30F→: 就算洗牌也最多就是AB BA這樣的連續兩次XD11/20 00:09
31F推: 二元分類其實就是你最後吐output之前有沒有過一層強制把它11/20 22:45
32F→: 變成1/0 or 1/-1 or 1/2這樣的輸出11/20 22:46
33F→: 如果沒有的話,例如兩個類別是1 2,那就可能吐出0.892、11/20 22:47
34F→: 1.812、1.433之類的值,而我們看離1近還離2近最終判斷是哪11/20 22:48
35F→: 一邊,但計算Error的時候是用實際的y去減預測出來這個值(11/20 22:49
36F→: 然後看取絕對值或平方或其他處理)來評估的11/20 22:50
37F→: 也就是說當你最後有沒有通過那層強制離散化處理,則計算的11/20 22:51
38F→: Error概念是有一點差別的11/20 22:51
39F→: 有通過的話,你評估的是 預測正確數/應預測總數,也就是以11/20 22:52
40F→: 案例「數量」為單位的評估11/20 22:52
41F→: 但最後沒有通過那樣一層的話,你評估的就會是「你的預測平11/20 22:53
42F→: 均離實際答案多近」。也就是答案是第2類,結果吐出1.9跟11/20 22:54
43F→: 1.6,雖然到最後實用時都會當成預測第2類正確來處理,但在11/20 22:55
44F→: 內部分析評估時1.9顯然是比1.6更好的預測11/20 22:55
45F→: 也因此,例如以你的情況,就算2000張圖都猜對了,但是對第11/20 22:56
46F→: 1類圖吐出的output都是1.005,對第2類圖吐出的都是1.995,11/20 22:56
47F→: 那麼你就還是有個0.005的平均誤差存在11/20 22:57
48F→: 即便實用上它吐出1.995我們就會做為預測為第2類來使用11/20 22:58
49F→: 然後洗牌的部分是說單一epoch裡面train圖的順序會打亂11/20 22:58
50F→: 比如你的training data裡面有500張A跟500張B,但連進500張11/20 22:59
51F→: A再進500張B循環,或者ABABABABAB循環,或者每個epoch都打11/20 23:00
52F→: 亂,第一個epoch AAABAAABBBABABBA...,第二個BBABAABBAB11/20 23:00
53F→: ...,不同的打亂方式是有可能讓訓練出來的模型出現差異的11/20 23:01
54F→: ,並不會因為都是同樣張數就肯定有一樣結果11/20 23:02
55F→: 這也會跟使用的機器學習模型有關,有些模型確實不受順序影11/20 23:02
56F→: 響,但以NN往往相對都比較會受到training data順序影響11/20 23:03
58F推: sigmoid也沒有直接變成0/1啊11/21 22:10
59F→: 你要最後直接過一層離散化的0/1 function才行11/21 22:11
60F→: Sigmoid跟Softmax的差異不是在這邊11/21 22:11
61F推: Softmax確保一次輸出多個類別的機率值時,加總會是111/21 22:18
62F→: 而Sigmoid沒有這個特性,它可以對A類別說0.9同時也對B類別11/21 22:18
63F→: 說是0.8511/21 22:18
64F→: 所以如果做multi-label learning的時候就比較會採Sigmoid11/21 22:19
5F推: 其實這些全部都是normalization啊,哪個好要看實際應用的11/20 23:05
6F→: 資料特性跟需求目的而定11/20 23:05
7F→: 而normalize對象哪些該一起、哪些該分開,就會依據你對這11/20 23:06
8F→: 些項目的重要性跟獨立性而定11/20 23:07
9F→: 例如你認為第一個像素跟第二個像素在你的判斷中是各自獨立11/20 23:08
10F→: 的,你認為第一個像素之間的明暗比較才有意義,而它與第二11/20 23:08
11F→: 個像素的相對關係就不重要,而且你認為這兩個像素的重要性11/20 23:09
12F→: 相等,那你就可能採取個別對特徵行(單一像素)做min-max11/20 23:10
13F→: 而另一個相對的例子,你覺得不同圖片之間的比對並不重要,11/20 23:11
14F→: 重視的特徵是同一張圖片內的明暗變化,也就是例如兩張圖片11/20 23:12
15F→: 的明暗度可能差異超大,但是這兩張圖都是上半亮下半暗你就11/20 23:12
16F→: 覺得其實可能是類似的,在這種情況我們就可能採取對資料列11/20 23:13
17F→: (單一張圖內部的像素)做min-max11/20 23:13
18F→: 而如果圖片之間的明暗比較以及單一圖片內部的明暗比較都同11/20 23:14
19F→: 樣重要,我們就可能同時對所有特徵資料行列(所有圖片的所11/20 23:14
20F→: 有像素)同時一起做min-max11/20 23:15
21F→: 另外如果覺得不只是相對的明暗度,絕對的明暗度也非常重要11/20 23:16
22F→: 那麼我們就不會採用min-max而是採用直接從0-255映射到0-111/20 23:17
23F→: 之類的方式11/20 23:17
4F推: 如果後欄是數字的話就還有機會,你可以在這一欄特別處理讀03/29 16:31
5F→: 到數字為止(前提是這欄裡面沒數字)03/29 16:31
6F→: 或者這一欄如果「一定有剛好一個逗號」的話,你可以當成兩03/29 16:32
7F→: 欄來讀,再合併並補上中間的逗號03/29 16:32
8F→: 若沒以上這些比較好處理的情況,要程式自動處理就不容易了03/29 16:33
5F推: name_count[ord(name[0]) - 65] += 103/18 02:14
6F→: 利用換算ASCII碼 - 65當索引值(0~25)03/18 02:15
7F→: 不過此法要確保沒例外,不然就會List index out of range03/18 02:17
8F→: 可先用一行確定值在65到90之間03/18 02:17