Scikit-learn筆記02_監督式學習(迴歸及分類)_線性迴歸(Linear Regression)


監督式學習(Supervised Learning)

特點:
  • 屬於機器學習算法中較常用的、也是較為成功的模式。
  • 監督式學習的核心概念(輸入 → 輸出)非常直觀,容易理解和實施。
  • 常應用於分類、迴歸問題分析以及時間序列預測等情境。
  • 具有較高的可解釋性,便於商業應用中說明模型的預測邏輯。
  • 可量化的評估,透過標準化的指標(如準確率、均方誤差)進行量化評估和優化。
  • 模型建構於輸入跟輸出配對之訓練資料,對尚未見過的資料做預測。

限制及困難:
  • 標籤數據的獲取可能耗時且昂貴。依賴於帶標籤的數據集(每個輸入樣本都有相應的目標輸出),使得模型可以清楚地學到輸入與輸出的映射關係。
  • 無法處理未見過的類別或樣本
  • 訓練資料通常要耗時人工建立。

常見監督式學習演算法:
線性模型/線性迴歸 (Lineaer Models)
決策樹(Decision Trees)、隨機森林(Random Forests)
最近鄰居法(K-Nearest Neighbors)
支持向量機(SVM)
類神經網路(Neural Networks)

監督式學習任務
1.分類(Classification):
在已定義的離散標籤中預測資料屬於何種標籤(類比數值)
僅兩種標籤的問題又俗稱二元分類,yes/no。比方:信件是否屬於垃圾郵件?
多種標籤問題則稱為多元(類別)分類,比方某筆鳶尾花資料屬於何種品種?

2.迴歸(Regression):預測連續數值(浮點數、實數)
比方:房價趨勢預測、農產收成量預測


線性迴歸(Linear Regression)
  • 屬於常見統計方法,也是機器學習起初接觸時優先探討的問題。
  • 目的在於藉由過去資料找出已經存在的關係,並且利用X來預測Y可能的結果。
  • 線性迴歸模型指的是X(自變數)跟Y(應變數)之線性關係
  • 依照自變數多寡可分成簡單線性迴歸和多(複)元迴歸。
  • 迴歸分析又依照函數型態,細分為線性、非線性。
多(複)元迴歸 -> 像鳶尾花有四個變數維度,就屬於此類迴歸。
簡單線性迴歸 ->像是單價、銷數量關係

簡單線性迴歸模型: y = ax + b,a跟b稱作迴歸係數(regression coefficients)。
為了找出迴歸係數,常用方法為最小平方法(Ordinary Least Squares,OLS),找出
跟各點殘差(Residual)最小的公式。


sklearn本身提供一種api : make_regression


常使用到的就是這幾種參數
n_samples
n_features
n_targets
noise


make_regression測試程式

from sklearn import datasets
import matplotlib.pyplot as plt
X,y = datasets.make_regression(n_samples=200,
                               n_features=1,
                               n_targets=1,
                               noise=7)
plt.scatter(X, y)
plt.show()


也可透過數學式方式來產生迴歸線段資料
測試程式,如下是斜率3,截距-5的直線方程式。
輸出是一張散點圖,其中 x 是隨機生成的數據點。
而 y 是通過線性關係 y = 3*x - 5 加上隨機噪聲後的結果。

from sklearn import datasets
import numpy as np
import matplotlib.pyplot as plt
rng = np.random.RandomState(2)
x = 10 * rng.rand(50)
print(x)

y=3*x-5+rng.randn(50)
print(y)

plt.scatter(x, y)
plt.show()


rng.rand(50):
生成一個包含 50 個隨機數的陣列,每個數值在 [0, 1) 之間。

10 * rng.rand(50):
將隨機數擴展到 [0, 10) 的範圍,作為自變數 x。

rng.randn(50):
生成 50 個服從標準正態分佈的隨機數(平均值為 0,標準差為 1),用於引入噪聲。

y = 3*x - 5 + rng.randn(50):
將線性函數的值加上噪聲,生成帶有隨機誤差的應變數 y。

plt.scatter(x, y):
繪製自變數 x 和應變數 y 的散點圖。









Ref:








留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header