核心數學知識點
- 1、引言
- 2、數據科學必會數學知識
- 2.13 K均值聚類
- 2.14 決策樹
- 2.15 隨機森林
- 2.16 梯度下降
- 2.17 隨機梯度下降(SGD)
- 2.18 卷積
- 2.19 拉普拉斯變換
- 2.20 傅里葉變換
- 2.21 信息論
- 2.22 時間序列分析
- 2.23 生成模型與判別模型
- 2.24 支持向量機(SVM)
- 2.25 均方誤差(MSE)
- 2.26 L2 正則化
- 3、總結
1、引言
小屌絲:魚哥,數學知識點下一部分呢。
小魚:別著急,別著急,這就來了。
小屌絲:一點都不自覺,還得我提醒呢。
小魚:…
2、數據科學必會數學知識
2.13 K均值聚類
- 定義:一種分組數據的方法,將數據點劃分為K個簇。
- 核心原理:歐氏距離、質心更新。
- 用法:數據挖掘、圖像分割。
- 算法公式:質心更新 μ j = 1 ∣ C j ∣ ∑ x i ∈ C j x i \mu_j = \frac{1}{|C_j|} \sum_{x_i \in C_j} x_i μj?=∣Cj?∣1?∑xi?∈Cj??xi?
- 代碼示例:
from sklearn.cluster import KMeansX = [[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]]
kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
2.14 決策樹
- 定義:一種遞歸分割數據的樹形模型,用于分類和回歸。
- 核心原理:信息增益、基尼系數、剪枝。
- 用法:分類、回歸、特征選擇。
- 算法公式:信息增益 I G ( D , a ) = H ( D ) ? ∑ v ∈ V a l u e s ( a ) ∣ D v ∣ ∣ D ∣ H ( D v ) IG(D, a) = H(D) - \sum_{v \in Values(a)} \frac{|D_v|}{|D|}H(D_v) IG(D,a)=H(D)?∑v∈Values(a)?∣D∣∣Dv?∣?H(Dv?)
- 代碼示例:
from sklearn.tree import DecisionTreeClassifier
X = [[0, 0], [1, 1]]
y = [0, 1]
tree = DecisionTreeClassifier().fit(X, y)
2.15 隨機森林
- 定義:通過合并多個決策樹模型提高預測準確性的技術。
- 核心原理:集成學習、Bagging、隨機子空間。
- 用法:分類、回歸、特征重要度評估。
- 算法公式:樹的預測加權平均 f ^ = 1 K ∑ k = 1 K f k \hat{f} = \frac{1}{K} \sum_{k=1}^K f_k f^?=K1?∑k=1K?fk?
- 代碼示例:
from sklearn.ensemble import RandomForestClassifierX = [[0, 0], [1, 1]]
y = [0, 1]
rf = RandomForestClassifier(n_estimators=10).fit(X, y)
2.16 梯度下降
- 定義:一種優化算法,用于最小化成本函數。
- 核心原理:損失函數、梯度計算、學習率。
- 用法:模型參數優化、神經網絡訓練。
- 算法公式: θ = θ ? η ? J ( θ ) \theta = \theta - \eta \nabla J(\theta) θ=θ?η?J(θ)
- 代碼示例:
import numpy as npdef gradient_descent(x, y, theta, alpha, iterations):m = len(y)for _ in range(iterations):gradient = np.dot(x.T, (np.dot(x, theta) - y)) / mtheta -= alpha * gradientreturn theta
2.17 隨機梯度下降(SGD)
- 定義:一種基于梯度下降的優化算法,但每次迭代只使用一個樣本。
- 核心原理:隨機擾動、收斂性、學習率。
- 用法:大規模數據集的優化。
- 算法公式: θ i = θ i ? 1 ? η ? J ( θ i ? 1 ; x ( i ) , y ( i ) ) \theta_{i} = \theta_{i-1} - \eta \nabla J(\theta_{i-1}; x^{(i)}, y^{(i)}) θi?=θi?1??η?J(θi?1?;x(i),y(i))
- 代碼示例:
from sklearn.linear_model import SGDClassifierX = [[0, 0], [1, 1]]
y = [0, 1]
sgd = SGDClassifier().fit(X, y)
2.18 卷積
- 定義:一種運算,用于信號、圖像、數據特征提取。
- 核心原理:濾波、滑動窗口、卷積核。
- 用法:卷積神經網絡(CNN)、圖像處理。
- 算法公式: ( f ? g ) ( t ) = ∫ ? ∞ ∞ f ( τ ) g ( t ? τ ) d τ (f * g)(t) = \int_{-\infty}^{\infty} f(\tau)g(t - \tau)d\tau (f?g)(t)=∫?∞∞?f(τ)g(t?τ)dτ
- 代碼示例:
import numpy as np
from scipy.signal import convolve2dimage = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
kernel = np.array([[1, 0], [0, -1]])
result = convolve2d(image, kernel, mode='valid')
2.19 拉普拉斯變換
- 定義:用于把微分方程轉化為代數方程的一種積分變換。
- 核心原理:函數變換、線性運算。
- 用法:信號處理、控制系統。
- 算法公式: F ( s ) = ∫ 0 ∞ f ( t ) e ? s t d t F(s) = \int_{0}^{\infty} f(t) e^{-st} dt F(s)=∫0∞?f(t)e?stdt
- 代碼示例:
from sympy.integrals.transforms import laplace_transform
from sympy import symbols, expt, s = symbols('t s')
f = exp(-t)
F = laplace_transform(f, t, s)
2.20 傅里葉變換
-
定義:將時間域信號轉換到頻域的一種變換技術。
-
核心原理:頻譜分析、濾波。
-
用法:信號處理、圖像處理。
-
算法公式: F ( ω ) = ∫ ? ∞ ∞ f ( t ) e ? i ω t d t F(\omega) = \int_{-\infty}^{\infty} f(t) e^{-i\omega t} dt F(ω)=∫?∞∞?f(t)e?iωtdt
-
代碼示例:
import numpy as npx = np.linspace(0, 2 * np.pi, 10)
y = np.sin(x)
y_fft = np.fft.fft(y)
2.21 信息論
- 定義:研究信息的度量、傳遞和壓縮的理論。
- 核心原理:熵、互信息、編碼定理。
- 用法:數據壓縮、特征選擇。
- 算法公式:熵 H ( X ) = ? ∑ i P ( x i ) log ? P ( x i ) H(X) = -\sum_{i} P(x_i) \log P(x_i) H(X)=?∑i?P(xi?)logP(xi?)
- 代碼示例:
from sklearn.feature_selection import mutual_info_classifX = [[1, 2], [3, 4], [5, 6]]
y = [0, 1, 0]
mi = mutual_info_classif(X, y)
2.22 時間序列分析
- 定義:分析時間序列數據的統計方法。
- 核心原理:自相關、移動平均、ARIMA模型。
- 用法:經濟預測、庫存控制。
- 算法公式: ARIMA模型 Y t = c + φ 1 Y t ? 1 + ε t + θ 1 ε t ? 1 Y_t = c + \varphi_1 Y_{t-1} + \varepsilon_t + \theta_1 \varepsilon_{t-1} Yt?=c+φ1?Yt?1?+εt?+θ1?εt?1?
- 代碼示例:
import pandas as pd
from statsmodels.tsa.arima.model import ARIMAdata = pd.Series([1, 2, 3, 4, 5, 6])
model = ARIMA(data, order=(1, 1, 1))
model_fit = model.fit()
2.23 生成模型與判別模型
- 定義:生成模型嘗試建模輸入數據及其標簽的聯合概率分布,而判別模型則直接建模標簽條件概率。
- 核心原理:生成模型(如高斯混合模型)、判別模型(如邏輯回歸)。
- 用法:分類、聚類。
- 算法公式:
- 生成模型 P ( X , Y ) = P ( Y ) P ( X ∣ Y ) P(X, Y) = P(Y)P(X|Y) P(X,Y)=P(Y)P(X∣Y);
- 判別模型 P ( Y ∣ X ) P(Y|X) P(Y∣X)
- 代碼示例:
from sklearn.mixture import GaussianMixture
'''
生成模型 - 高斯混合模型
'''
X = [[1, 2], [3, 4], [5, 6]]
gmm = GaussianMixture(n_components=2).fit(X)
2.24 支持向量機(SVM)
- 定義:一種監督學習模型,用于分類和回歸。
- 核心原理:最大間隔分類、核函數。
- 用法:分類、回歸、異常檢測。
- 算法公式: 決策邊界 w T x + b = 0 w^T x + b = 0 wTx+b=0
- 代碼示例:
from sklearn.svm import SVCX = [[0, 0], [1, 1]]
y = [0, 1]
clf = SVC().fit(X, y)
2.25 均方誤差(MSE)
- 定義:一種衡量預測值與實際值之間差異的度量方法。
- 核心原理:最小化均方誤差,找到最優的模型參數。
- 用法:回歸模型的損失函數。
- 算法公式: MSE = 1 n ∑ i = 1 n ( y i ? y ^ i ) 2 \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 MSE=n1?∑i=1n?(yi??y^?i?)2
- 代碼示例:
import numpy as np# 示例數據
y_true = np.array([3.0, -0.5, 2.0, 7.0])
y_pred = np.array([2.5, 0.0, 2.0, 8.0])# 計算MSE
mse = np.mean((y_true - y_pred)**2)
print("MSE:", mse)
2.26 L2 正則化
- 定義:通過在損失函數中增加所有參數的平方和來懲罰大幅度的權重,旨在防止模型過擬合。
- 核心原理:通過懲罰較大的權重系數來減少模型的復雜度。
- 用法:線性回歸、邏輯回歸、神經網絡。
- 算法公式: J ( θ ) = MSE + λ 2 ∑ j = 1 m θ j 2 J(\theta) = \text{MSE} + \frac{\lambda}{2} \sum_{j=1}^{m} \theta_j^2 J(θ)=MSE+2λ?∑j=1m?θj2?
- 代碼示例:
from sklearn.linear_model import Ridge
import numpy as np# 示例數據
X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
y = np.dot(X, np.array([1, 2])) + 3# 創建Ridge回歸模型
ridge = Ridge(alpha=1.0)
ridge.fit(X, y)# 預測
y_pred = ridge.predict(X)# 計算MSE
mse_ridge = np.mean((y - y_pred)**2)
print("MSE with L2 regularization:", mse_ridge)
3、總結
要想學好數學科學、或者機器學習,數學知識是必會的,也是基礎。
所以,以上的這26個數學知識點,一定要掌握。
為了方便我們學習, 我把兩篇的鏈接都放到下面了,點擊即可跳轉。
- 《【機器學習】必會數學知識:一文掌握數據科學核心數學知識點(上),收藏~》
- 《【機器學習】必會數學知識:一文掌握數據科學核心數學知識點(下),收藏~》
我是小魚:
- CSDN 博客專家;
- 阿里云 專家博主;
- 51CTO博客專家;
- 企業認證金牌面試官;
- 多個名企認證&特邀講師等;
- 名企簽約職場面試培訓、職場規劃師;
- 多個國內主流技術社區的認證專家博主;
- 多款主流產品(阿里云等)評測一等獎獲得者;
關注小魚,學習【機器學習】&【深度學習】領域的知識。