2.2. Machine Learning Crash Course Jam
Last updated
Last updated
1.監督式學習
2.regression: 預測連續型的資料 (e.g., 房價資料)
(1)Algebraic : y = wx + b -> y = wx1 + w2x2 + b
(2)Loss : 衡量預測模型的能力, 最好的情況是損失為0
Mean square error (MSE)
Root Mean square error (RMSE)
3.Reducing error
最佳的Learning rate會因資料而異
step size: 經幾次迭代後更新learning rate
Stochastic gradient descent: SGD (隨機選擇下一點計算下一次斜率) vs GD, SGD會比較有效率
codlab是一個很像Jupyter notebook的環境
Pandas Structure
Series
讀取外部資料
用head檢查資料有沒有讀進來
查詢資料類型
數值型資料 (count, min, max, std. mean)
Stastic上的資料種類
類別資料
連續型資料
將資料轉型
選取資料
重新洗牌
新增欄位
1.匯入Library
2.讀取外部資料
3.对数据进行随机化处理,以确保不会出现任何病态排序结果(可能会损害随机梯度下降法的效果)
4.將大資料簡化 (修改單位)
5.數值型資料統計
6.Build the first model (Linear regression)
(1)先畫圖瞭解一下資料
(2)定義x軸資料
(3)定義y資料
(4)配置 LinearRegressor
(5)Training model
(6)Predict : 看看model的預測值如何
(7)計算MSE, RMSE
(8)瞭解predictions跟target的差異
(9)取平均分佈的樣本
(10)繪製散布圖
1.如何Fit a model?
預測未知的資料夠準確
模型的狀態
Overfitting
Optimum
Underfitting
未來的資料怎麼來?
將資料分成training set及testing set
怎麼切testing set?
80/20法則: 取1/5作為testing set
validation set
2.如何挑選合適的feature?
(1)特徵工程
挑選適合的特徵
(2)單位換算
(3)Feature should not take on "magic value"
不要用-1表示不能用的資料
多加一個flag的column
(4)不要用代碼紀錄特徵的特性
(5)了解資料, 刪除outlier
(6)對於不是連續型的變數, 可以用資料區間表示
3.分類
機率模型
邏輯式回歸: 將線性模型轉換為機率模型
y = exp(b + w1x1 + ... + wpxp) > 0
p = f(b + w1x1 + ... + wpxp) < 0
Logistic regression是最簡單的神經網路 (NN)
Threshold的選擇取決於風險的承擔
同一模型, 須根據不同場景選擇不同閾值, 將會影響決策
模型說是真, 實際也為真的機率 (True Positive)
除了精確度外, 需要考慮召回率: TP/(TP + FP)
1.匯入Library
2.讀取外部資料
3.資料預處理
(4) 選擇Training set
(5) 選擇validation set
1.Training data和validation data有相似的特性
所以記得先用shuffle重新洗牌, 讓資料均勻
overfitting
是否是feature放太多所造成的結果?
目標loss越小, 不希望模型太複雜
如何定義模型複雜度?
y = b + w1x1 + ... + wpxp
w或p越大, 模型越複雜
模型複雜度
||w||^2 = w1 ^2 + ... + wp ^2