---
# System prepended metadata

title: 機器學習 01：機器學習基礎
tags: [DBSCAN, Unsupervised Learning, KMeans, ML model]

---

# 機器學習 01：機器學習基礎
###### tags: `ML model`, `Unsupervised Learning`, `KMeans`, `DBSCAN`


## 1. 正規化
- 極值正規化（Min-Max Normalization）
    
    <font size=5>**$v' = \frac{v - Min}{Max - Min}\in[0, 1]$**</font>
    
    
- 平均值正規化（Mean Normalization）
    
    <font size=5>**$v' = \frac{v - \bar v}{Max - Min}\in[-1, 1]$**</font>
    
- Z-Score Normalization
    
    **負數代表低於平均，正數代表高於平均**
    
    <font size=5>**$v' = \frac{v - \bar v}{σ}\in[-1, 1]$**</font>
    
---
## 2. 距離
- **歐幾里得距離**（Euclidean Distance）：空間中兩點的**直線距離**
- **曼哈頓距離**（Manhatten Distance）：空間中兩點的**直角距離**
---
## 3. 雜訊處理方法
- 尋找離群值

    - 平均值法：樣本數太小會測不到
    - 四分位數法：較準確

- 離群值處理方法

    - 視為空值
    - 天花板/地板法
    - 函數校正
---
## 4. 評估指標

- **分類指標**

    - **混淆矩陣（confusion matrix）**
        
        ![混淆矩陣](https://i.imgur.com/apPtmpm.png)
        
        1. **True Positive (TP)「真陽性」**：真實情況是「有」，模型說「有」的個數。
        2. **True Negative (TN)「真陰性」**：真實情況是「沒有」，模型說「沒有」的個數。
        3. **False Positive (FP)「偽陽性」**：真實情況是「沒有」，模型說「有」的個數。
        4. **False Negative (FN)「偽陰性」**：真實情況是「有」，模型說「沒有」的個數。
        <br>

        **相關指標**
        1. **Recall（靈敏性, Sensitivity）**<font size=3>**$\begin{gather*} = \frac{TP}{TP+FN}\end{gather*}$**</font>
        
            認出有病的比率%
        
        2. **Precision（精度）**<font size=3>**$\begin{gather*} = \frac{TP}{TP+FP}\end{gather*}$**</font>：
        
            診斷為有病時的正確率%
            
        3. **Specificity（特異性）**<font size=3>**$\begin{gather*} = \frac{TN}{FP+TN}\end{gather*}$**</font>
        
            認出沒病的比率%
        
        4. **F1-score **<font size=3>**$\begin{gather*} = \frac{2}{\frac{1}{Precision}+\frac{1}{Recall}}\end{gather*}$**</font>
            
            - 唯有 recall 和 Precision 都很高時，F1 才會高。
            - Precision 和 recall 無法兩者兼得，提升 Precision 必會降低 Recall，反之亦然。

        5. **ROC曲線**
            
            以 X 軸為 1-Specificity，Y 軸為 Recall 作圖，並利用曲線下面積（AUC）來判別 ROC 的鑑別力：
            
            - AUC = 0.5 （no discrimination 無鑑別力），對角線。
            - 0.7 ≦ AUC ≦ 0.8（acceptable discrimination 可接受的鑑別力）
            - 0.8 ≦ AUC ≦ 0.9（excellent discrimination 優良的鑑別力）
            - 0.9 ≦ AUC ≦ 1.0（outstanding discrimination 極佳的鑑別力）
            <br>
            
            ![](https://i.imgur.com/gH4YZuP.png)
            
            
            

            
- **迴歸指標**
    - **平均絕對誤差（L1 loss, MAE, Mean Absolute Error）**

        <font size=5>**$MAE = \sum\limits_{i=1}^{n} \frac{\hat Y_i - Y_i}{n}$**</font>

    - **平均平方誤差（L2 loss, MSE, Mean Squared Error）**

        <font size=5>**$MSE = \sum\limits_{i=1}^{n} \frac{(\hat Y_i - Y_i)^2}{n}$**</font>

    - **方均根誤差（RMSE, Root Mean Squared Error）**

        <font size=5>**$RMSE = \sqrt{\sum\limits_{i=1}^{n} \frac{(\hat Y_i - Y_i)^2}{n}}$**</font>
        
        範數指數較大，就越重視大的值，故 RMSE 對離群值的敏感程度比 MAE 高，當離群值按指數減少（常態分佈）時，RMSE 通常是首選。

    - **$R^2$**

        模型評估指標，0~1 之間，越接近 1 代表模型效果越好。
    
## 5. 檢定
    
1. **卡方檢定**：驗證**類別型**欄位與目標關聯性
2. **T檢定**：驗證**數值型**欄位與**二元**目標關聯性
3. **Anova檢定**：驗證**數值型**欄位與**多元**目標關聯性

P.S. p-value < 0.05 為高關聯性（95%信心水準）


---
## 6. 偏差 / 變異度
1. 偏差（bias）：當模型有高偏差時，有可能為 underfitting。
2. 變異度（variance）：自由度高（複雜度高）的模型可能有高變異度，因此 overfitting。
3. 不可還原誤差（irreducible error）：可能是由資料本身的雜訊造成，只能藉由清理資料處理。

---

## Reference
1. 數據挖掘應用案例探討（使用 R 語言）－李玉璽
2. 精通機器學習，使用 Scikit-Learn, Keras 與 Tensorflow－Aurelien Greon
3. https://medium.com/@chih.sheng.huang821/%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-%E7%B5%B1%E8%A8%88%E6%96%B9%E6%B3%95-%E6%A8%A1%E5%9E%8B%E8%A9%95%E4%BC%B0-%E9%A9%97%E8%AD%89%E6%8C%87%E6%A8%99-b03825ff0814
