發表文章

2024我的願望清單

 這是我2024年的目標: 一時的懸念一生的願景,寫了就有做的動力同時也期待2024到來以及新的自己:) 完成包手臂刺青 學會暴力上槓、前水平 寫35篇部落格 和柏菱規劃好5年內的存款目標 跑完一次半馬 跟柏菱去日本旅遊一個月 學會SQL 學會自由式並且游1000公尺 上10堂互聯網營運課程 製作一份恆春滷肉飯地圖

【特徵工程筆記】挑戰用最廢的方式來講核密度估計(Kernel Destiny Estimation)

圖片
  (來自維基的圖) 目標: 用直覺(最廢)的方式無深入有淺出去講解核密度估計 步驟: 1.什麼是核 2.什麼是核密度估計 3.核密度估計日常上能做什麼? 1.什麼是核 在講核密度估計之前首先來說什麼是核(Kernel)?核在統計上或者在數據上代表的就是: 一個函數、一個函數、一個函數 ...(回音)直覺上來說就是一個f(x)的值。 通常比較常見的核函數就是高斯(Gaussian),如果用高斯分佈(常態分佈)如下圖: 也就是平常使用的2個標準差約符合95%分佈、3個標準差約符合99%的分佈。此時我們常說的標準差就是核,通常核也是有著權重的意思。 怎麼突然又有權重的意思?不要想的太深奧,想像成是一個文字遊戲,把“2個標準差符合95%的分佈”這句話中的標準差改成權重來唸是不是也是能通呢? 最後補充核函數是必須符合兩個定義: 歸一化 對稱性 2.什麼是和密度估計 講完什麼是核接下來就來上主菜,什麼是核密度估計? --------以下有雷小心閱讀------------- 核密度估計就是直方圖轉折線圖(結束) ????????????????????? ?????????????????就這樣? 嗯,不然再附贈一張圖給你, 再跟你說核密度估計就是把左邊的圖畫成右邊的圖 ,直覺的去說明核密度估計就是如此。 在數據上會把這樣的過程表示成不連續的數據轉化成連續的數據。雖然直方圖的本質上認為頻率是等於機率,但是這種說法不是必然的。所以才需要折線圖也就是核密度估計的方式去表示。 所以核密度估計(Kernel Destiny Estimation,簡稱KDE)就可以回答,有個觀察質X,會被觀察的機率是有多少呢?也就是在連續無窮的過程中有個值會被發現的機率是多少。因此要講不連續變成連續的過程,就必須要去除每條直方圖的寬帶有多少,這樣就能夠轉化成核密度估計,如果用這個角度去理解公式那麼就比較容易。 3.核密度估計日常上能做什麼? 其實將直方圖轉乘成折線圖本身是不影響解釋,是幾乎不會有差異。前者是一區一區的來看、後者則是一條線畫出來。即使將不連續轉化成連續的過程中,實務上也不太會看的太精準、也不會特定討論用那種估計去討論,因為最終目的就是看一個趨勢而已。 也因此實務上我們把直方圖畫成一幅折線圖,相對視覺上來說比較好看而已。(有沒有覺得很絕望) 也因為現實中許多因素,不需要先有太深奧的理論才來

【特徵工程學習筆記】對數據取log有什麼好處

圖片
(Just a log.)  目標: 用較泛的角度解釋對非正態分佈的數據取log會有什麼好處以及原因 1.前言 2.為什麼會有取log這件事情 3.取log有什麼好處 4.結論 1. 前言 取log簡單說下,目的就是要解決下面的例子: Q:12為2的幾次方? 核心目標就如上,幾個較不確定的中文詞會附註英文,有興趣可以用英文google結果會較準。 2.為什麼會有取log這件事情 將數據餵進去跑模型之前,通常我會簡單進行三個步驟處理: * 預處理清洗數據內容 * 改變特徵類型(categorical or numerical data type transfer ) * 查看數據分佈(positive or negative skew in distribution) 對數據取log本身是再處理第三點, 目的是要讓數據分佈的偏態(skew)盡量回到正態分佈(normal distribution)。 若假設要取log的欄位每項數據為a,則必須符合以下兩個條件: 1. a > 0 2. a != 1 (!= 不等於) 若不符合上述其中一項則無法使用log取對數。 但是實際上數據一定會有遇到欄位有負數或者等於1的值,這時候如果要取log會有兩種處理方式: * 再值前面加上 i -》 log( a+i) * 或者直接使用 box-cox transformer 上面並沒有哪個方式比較好,如果時間允許是建議兩個都試一試然後交叉驗證(Grid Search CV) 3. 取log有什麼好處 3.1 讓數據范圍變小 如果有一天搬家不考慮的質量的狀況下,有一個縮小燈先把東西都縮小然後帶著拿到目的地再用放大燈照,是不是就不用多跑幾趟去搬運。 所以取log目的在於要縮短數據絕對值的範圍 假如今天有組數據范圍介於10~1000,取log以後範圍就會變成1~100,數據范圍就會變小。 3.2 分佈形態會比較向正態分佈靠近 老前輩都說如果分佈(distribution)很偏就先取log說不定就會好一點。要解釋這原因就讓我想到有個日本清酒名叫獺祭,有兩款清酒: * 三割線九分 * 二割三分 幾割幾分就是米的研磨精度,三割九分就是磨掉三分之一的米、二割三分就是磨掉三分之二的米。磨掉越多的米純度就越高口感就越順。 取log再縮小數據的範圍同時也會再轉換的過程中將部分數據中的雜訊去除掉,減少一

【Python練習】實現蒙提霍爾問題

圖片
  (Picture from wiki) 目標: 使用Python代碼來解答蒙提霍爾問題 步驟: 1.拆解蒙提霍爾問題 2.代碼如何實現 3.圖表及結論 1.拆解蒙提霍爾問題 1.1概述 蒙提霍爾是個十分反直覺的問題(更詳細可參考維基百科: 蒙提霍爾問題 ),情況如下: 有三扇門後面有兩支山羊一台車,在選擇一扇門以後,另外兩扇門其中一扇們被打開裡頭是一支山羊,這時候有一次的機會選擇: *要換門 *還是堅持不換門 問題是換門or不換門哪個方式選中車子的機率比較高呢? 1.2 先設定變數 假設我們是來賓(guest),然後會有第一次選擇門的機會,然後會有一個主持人(host)在我們選擇門以後幫我們打開另外兩扇門的其中一扇,並且在主持人開門後我們可以再選擇要換門或者不要換門。有了這個故事情節,就可以先有五個變數: *guest_first:來賓第一次選擇門 *host_open:主持人開另外兩扇門其中一扇 *guest_second:來賓選擇要不要換門 *change: 換門 *not_change: 不換門 1.3整理一下三觀 *[注1] 多次重複實驗過程,可以使用迴圈(for loop) *[注2] 主持人開門(host_open)的結果必須是山羊而不是車子(如果主持人開門後結果是車子遊戲就沒意義) *[注3] 以上帝視角:如果來賓第一次(guest_first)選到車子,最好的策略就是不要換門(not_change) *[注4] 以上帝視角:如果來賓第一次(guest first)選到山羊,主持人開門後是另外一支山羊,最好的策略就是換門(change) 2.代碼如何實現 import random as random import matplotlib.pyplot as plt %matplotlib inline random.seed(0) change = 0 not_change = 0 times = 100000 # 計算10萬次 # [注1]多次重複實驗過程,可以使用迴圈(for loop) for i in range(times):     # 先創造兩支山羊跟一台車子的門     doors = ['goat_1', 'goat_2', 'car']     random.shuffle(do

筆記術(六)-該如何看待並且管理自己的筆記呢?

圖片
筆記不單單只是紀錄上課的筆記、書本閱讀的心得、或者紀錄開會內容。仔細想想這些筆記是否紀錄後就不會再回頭翻閱,或只是短暫一次性的筆記呢?其實思考下來,我們所整理和紀錄的筆記,大部分似乎都是為了遵照某些規則做樣子並紀錄而已。 大部分我們做筆記只是 「為了必須做而去做」、「看別人都在抄寫筆記是否也該跟著抄?」 、 「反正就先寫下來不管有沒有用到,以後再說吧!」 ...這些的心態。以前我剛開始使用Evernote筆記也是保持著這樣的心態去使用,可是等到使用的日子越來越久,紀錄的內容越來越多以後就漸漸發現,這樣的筆記使用方法非常的被動,甚至最後反而越紀錄越沒有動力,甚至開始懷疑人生、懷疑為什麼要做這件事情。 但我認為做筆記並不一定是一件被動、總有一天一定能用上的事情: "筆記其實可以是一個生活和工作上的好助手,可以協助我們完成許多事情甚至幫助促進思考和邏輯的訓練。是一個非常有意義的工具。" 同時也是包含著許多管理和整理的經驗在裡面,於是緊接著再進一步的去思考,該如何用管理的層面去思考和切入做筆記這件事情呢?本週這篇文章我會用三個觀點來跟大家分享,我如何用哪些觀點來看待筆記管理這件事情,這三件事情分別是: 筆記的意義到底是什麼? 做筆記到底是為什麼目的而行動? 做筆記到底可以帶來什麼樣的好處跟利益? 意義上: 筆記第一個想到的功能就是 「紀錄」 ,但筆記事實上不單單只有紀錄這樣的功能,有時候筆記就像第二顆腦袋,因為我們能記住的事情有限,也無法長期將所有重要的事情都記得,所以這時候就必須要有筆記來紀錄一些瑣事跟重要的事情,來分擔我們腦中的記憶容量(參考閱讀: 筆記術(二)-清空自己大腦的筆記法 ),所以筆記的意義不僅僅只有紀錄: "筆記就好像是一個隨身硬碟,可以將靈感、事件、任務全部都紀錄起來並且隨身帶著走,等需要使用這些資訊的時候就可以像是使用隨身硬碟一樣打開它,並到裡面去找尋需要的資料。" 也因此筆記就有課更深一層的功能,可以幫我們分攤許多事情以及事件的提醒,就好像一個自己的私人秘書,可以幫助我們不會遺漏掉事情以及提醒我們下一步行動該如何進行。 目的上: 筆記就好像手機上的提醒通知,透過回溯查尋我們以前紀錄的事情,以及將重要的事

習慣力(一)打字慢一點的練習心得,並讓我節省更多的時間

圖片
我自己本身是一個輕重度電腦使用者,因為大部分工作和娛樂都在電腦上使用,所以打字速度自然而然就越打越快,換句話說就是鍵盤手。可是最近我突然發現自己有一個壞習慣,就是打字很快但快到有時候打字眼睛跟不上,就容易造成錯字或者是回覆沒有邏輯和言不及義。 尤其是開始寫文章以後,更容易發生這樣的問題,我有時候必須要花很多時間來修改文章並且找尋錯字,或者是在回復訊息的時候更容易將字打錯。為了改進這個問題,我最近就開始嘗試一個很簡單的改變: “就是刻意把打字的速度放慢” 放慢到每打完一個字確認沒有問以後才開始繼續敲打下一個文字。可是這樣的嘗試讓我打字的速度足足慢了一半,雖然已經實驗一個月目前也還在適應中,依照目前的狀況是已經逐漸的適應,但同時也逐漸帶來一些當初自己沒有預期的效益和好處,尤其是這樣的方法幫我省下許多校稿以及找錯字的時間,不僅沒有讓我完成文章的時間增加,反而還減少我寫完成一篇文章的時間。 今天就來跟大家分享我自己是如何練習刻意放慢打字,並且在這樣的過程中獲得了什麼好處。 一、放慢才能更進一步檢視自己: 因為打字的速度放慢,就在這樣的過程中開始發現到以前都不曾注意過的習慣和問題,比如說: 打錯字也沒修改就直接按下Enter也沒有發現 打字的力道太大,容易傷到關節和弄壞鍵盤 打錯字又不斷的修改錯字,呈現鬼打牆 等這些問題都是以前自己習慣打字很快卻沒有注意過的事情,所以剛好就藉機這個機會利用放慢速度的方式一口氣把這些不好的習慣一次性的慢慢矯正。同時也發現: “因為慢,所以能夠有更多的時間去檢視自己” 這樣的檢視方式在以前打字很快的時候都不曾有過,因為打字變快以後就會進入一種半意識沒有在思考的狀態,也就是放空的呈現。所以首先就透過放慢的方式把自己的意識拉回來,先讓自己心靜下來然後再進行更多的改進。 二、不趕時間才能更專注 不趕時間就不會有:「一定要快!」、「不管如何就先把事情完成再說」、「沒關係以後再修改」這些狀態產生,也因為這些不斷催促的心態: “造成太多的雜訊進而無法更專注” 將打字的速度放慢以後,我就轉而告訴自己:「沒關係,慢慢打字的這段時間以內就好好的把字打對」、「重點還是於如何產生有質而不是有量的內容」...等這些想法。也因為這

項目管理在做啥?(十四)有邏輯的思考和表達背後的訣竅

圖片
如果今天主管要求員工去接受一個項目和企劃案並且提出了一連串問題,「這個項目可以幫客戶解決什麼問題」、「預期達到哪些效應和成效有哪些?」、「預計執行的方法和時間?」。 當主管開始一連串的丟出一大堆問題時,心裡可能就會想應該要如何才能招架的住?或者是害怕自己能不能勝任這項任務。若是緊接著主管還要求幾天後就需要先整理成一份立項目報告,那麼因該要怎樣表達才會有邏輯以及清楚的讓別人知道自己的想法和要做什麼? 別擔心,不要因為沒有接受過任何邏輯或者表達訓練而就覺得自己做不到,我出社會的第一份工作是行銷企劃助理,在剛開始報告的時候也經常犯了一大堆表達上的錯誤,常常會議中一直說: 我覺得是    .... 大概是如此吧! 以我的經驗判斷.... 應該是.... 結果就是被老闆唸的很慘甚至當場被噹說講話沒邏輯,但是別沮喪,因為有邏輯的去表達一件事情並不是天生就可以做到或者與生俱來的能力。而是需要透過不斷的練習以及嘗試才可以逐漸表達出自己想要表達的內容,自己也是透過大量的練習和透過一些方法才漸漸抓到眉角,甚至自己還應徵上項目管理的工作並每天都要有邏輯的去工作,也因此就算沒有經驗也代表不用害怕,只要透過一些方式去練習就一定能夠改變而更好。 本週文章就要來跟大家分享我如何透過一些方法,來將要表達的內容包裝的更詳細和有邏輯,並運用在自己的工作中。 一、先想好主張或結論 為什麼我們講出來的話會覺得沒有章法或者前後呼應呢?原因就在於內容背後沒有一個觀點以及結論去支撐,就好像蓋房子如果沒有先架設好鋼筋和打地基就直接灌水泥一直往上面蓋,這樣蓋起來的房子一定不會堅固並可能容易垮掉或者架構歪掉。也因此在表達前可以先嘗試先想好結論活著下個總結: "就好像先把房子的地基以及架構給弄好,讓自己的觀點不容易產生偏移和沒有章法" 換句話來講就是先找出一個答案和要闡述的目的,然後接下來的闡述不管如何,最終的方向就是要朝著自己的答案前進,就算有時候一不小心把主題給講偏也可以趕快修正回來。找出自己的主張就好像旅行中天上那顆北極星,不管如何都會有一標的物可以明確的指向北方,讓我們搞清楚東西南北,而不會混淆方向。 二、講出的每句話都先先問自己為什麼 當有了問題的答案,接下來就必須要讓