核心数学知识点
- 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∈Cjxi
- 代码示例:
from sklearn.cluster import KMeans
X = [[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=1Kfk
- 代码示例:
from sklearn.ensemble import RandomForestClassifier
X = [[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 np
def gradient_descent(x, y, theta, alpha, iterations):
m = len(y)
for _ in range(iterations):
gradient = np.dot(x.T, (np.dot(x, theta) - y)) / m
theta -= alpha * gradient
return 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 SGDClassifier
X = [[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 convolve2d
image = 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, exp
t, 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 np
x = 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)=−∑iP(xi)logP(xi)
- 代码示例:
from sklearn.feature_selection import mutual_info_classif
X = [[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+φ1Yt−1+εt+θ1εt−1
- 代码示例:
import pandas as pd
from statsmodels.tsa.arima.model import ARIMA
data = 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 SVC
X = [[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博客专家;
- 企业认证金牌面试官;
- 多个名企认证&特邀讲师等;
- 名企签约职场面试培训、职场规划师;
- 多个国内主流技术社区的认证专家博主;
- 多款主流产品(阿里云等)评测一等奖获得者;
关注小鱼,学习【机器学习】&【深度学习】领域的知识。