###### tags: `MLCC` # Representation ## Feature Engineering :::info **Feature engineering做法:** transforming raw data into a feature vector ::: ### 轉換的作法 #### maps raw data to ML features (2種) 1. all data to float > 原始數據會經過資料前處理變成 **feature vector**,讓他變成 floating-point values  2. int to float  #### one-hot encodeing (1種:string(文字) to float) - OOV (out-of-vocabulary) bucket > 有一個類似詞語資料庫的東西,將每一個詞或是街之類的,給他一個數字,可以定義幾個我們需要/重要的單詞個給一個數字,其他不重要但是或出現的單詞就統一用一個數字。 > example: > 資料庫 家中會出現的寵物 > 魚 1 > 狗 2 > 貓 3 > 其他 4 - 約束 - 只能使用單一權重,不可以狗跟貓不同權重 - 沒有考慮一個單詞可能有多個值,也就是只能一對一,不能一對多 - example: - 我家有養狗跟魚(X) - 我家養魚(O) - 解決方式 - 二進位向量 binary vector:有相對應的值為1,沒有的話為0 > 可能會造成稀疏矩陣 > example: > [養狗,養魚,養貓,養其他動物] > 我家有養狗跟魚 → [1,1,0,0] ## Qualities of Good Features 1. Avoid rarely used discrete feature values > 同個Feature value出現五次以上最好,使 model 了解 feature 和 label 之間的關係 > 讓多個相同 feature 在不同超參數下,與 label的關係 > > 反之, feature 很少的話,無法多次確認 feature 和 label 之間的關係 2. Prefer clear and obvious meanings > 做資料前處理 > feature 要清楚和具體表示它代表的意義,把一些錯誤的 feature 拿掉 3. Don't mix "magic" values with actual data > 過濾超出正常範圍值或是奇怪的 feature 4. Account for upstream instability > feature 的定義要穩定,不會隨時間而有所變動 ## Cleaning Data ### Scaling feature values :::info 將資料正規化,讓原始資料介在[0,1]or[-1,1] ::: - 好處 - 收斂更快 - 避免在訓練期間超出範圍值 - 將 feature 範圍縮小 - scaling  ### Handling extreme outliers 處理極值 :::info - 太多極值導致在縮放時,有些細節被抹掉(變的不明顯)  ::: 1. 把極值歸類在某一類 2. log 縮放 > 會好一些,但是有可能還是會有極值 >  3. 取資料的最大最小範圍(將頭尾切掉) > 切完長這樣 >  4. Binning >資料用範圍分區 > 看原始數據對應的哪一個區域 5. Scrubbing > 過濾不信任的 feature > example: > 忘了輸入(omitted value)、重複輸入(duplicate examples)、標錯(bad labels)、打錯(bad feature values)。 ## 我們要知道得事項 - 我們預期的資料要長怎樣 - 驗證 test set 是否符合我們的期望,不符合可不可以解釋 - 檢查 trainning data 跟其他來源有沒有一樣? > 例如: > example, dashboards,統計數據
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up