数学建模

MATLAB操作

一、MATLAB 基础操作

1.1 变量与运算

MATLAB 的变量是矩阵或数组。以下是一些基本操作:

实例 1:简单运算

1
2
3
4
5
6
7
8
9
% 定义变量
a = 5; % 标量
b = [1, 2, 3]; % 行向量
c = [1; 2; 3]; % 列向量

% 计算
sum_b = sum(b); % 计算向量元素和
product_c = prod(c); % 计算向量元素积
square_a = a^2; % 计算 a 的平方
  • sum(b) 计算向量 b 的元素和,结果为 6
  • prod(c) 计算列向量 c 的元素积,结果为 6

1.2 矩阵操作

MATLAB 最擅长的是矩阵计算。

实例 2:矩阵操作

1
2
3
4
5
6
7
8
9
% 定义矩阵
A = [1, 2; 3, 4]; % 2x2 矩阵
B = [5, 6; 7, 8]; % 2x2 矩阵

% 矩阵基本运算
C = A + B; % 矩阵加法
D = A * B; % 矩阵乘法
E = A .* B; % 元素逐项相乘
F = inv(A); % 计算逆矩阵
  • A + B 结果是矩阵的逐元素相加。
  • A .* B 是矩阵对应元素逐项相乘,而 A * B 是矩阵乘法。
  • inv(A) 返回矩阵 A 的逆矩阵。

1.3 绘图

MATLAB 提供了强大的绘图功能,可以绘制各种类型的图表。

实例 3:绘制二维曲线

1
2
3
4
5
6
7
8
9
x = 0:0.1:10;           % 定义 x 轴数据
y = sin(x); % 定义 y 轴数据

% 绘制正弦函数图像
plot(x, y, 'r', 'LineWidth', 2); % 绘制红色曲线
xlabel('x'); % 设置 x 轴标签
ylabel('sin(x)'); % 设置 y 轴标签
title('Sine Function'); % 设置图表标题
grid on; % 显示网格
  • plot(x, y) 绘制了正弦函数的二维图像。
  • xlabel()ylabel()title() 分别设置坐标轴标签和图像标题。

1.4 条件与循环

实例 4:条件判断与循环

1
2
3
4
5
6
7
8
9
10
11
12
13
14
% 条件语句
x = 3;
if x > 0
disp('x 是正数');
elseif x == 0
disp('x 是零');
else
disp('x 是负数');
end

% 循环
for i = 1:5
fprintf('当前值: %d\n', i); % 格式化输出
end

二、数据分析与处理

2.1 导入数据

MATLAB 支持多种数据格式的导入,包括 Excel、CSV 和 MAT 文件。

实例 5:读取 CSV 文件

1
2
% 读取 CSV 文件
data = readmatrix('data.csv'); % 从 CSV 文件中读取数据

2.2 数据可视化

可以使用多种图表来展示数据。

实例 6:绘制柱状图

1
2
3
4
5
6
7
8
x = categorical({'A', 'B', 'C'}); % 分类数据
y = [10, 15, 20]; % 对应的值

% 绘制柱状图
bar(x, y);
xlabel('Category');
ylabel('Value');
title('Bar Chart Example');

三、数学建模与求解

3.1 求解线性方程组

实例 7:Ax = b 的解

1
2
3
4
A = [2, -1; -4, 3];  % 系数矩阵
b = [1; -2]; % 常数项

x = A\b; % 解线性方程组

3.2 优化问题

MATLAB 的优化工具箱可以求解各种优化问题。

实例 8:最小化函数

1
2
3
4
5
6
% 定义目标函数
f = @(x) (x - 3)^2 + sin(x);

% 使用 fminbnd 求解
x_min = fminbnd(f, 0, 5); % 在 [0, 5] 区间内最小化函数 f
disp(['最小值出现在 x = ', num2str(x_min)]);

四、符号运算

MATLAB 提供符号运算工具,可以进行符号微积分、方程求解等。

实例 9:符号微积分

1
2
3
4
5
6
7
8
syms x;

% 求导
f = x^2 * sin(x);
df = diff(f); % 对 f 求导

% 积分
int_f = int(f); % 对 f 求不定积分

五、机器学习与数据建模

5.1 数据拟合

MATLAB 提供 polyfit 函数用于多项式拟合。

实例 10:线性拟合

1
2
3
4
5
6
7
8
9
10
x = [1, 2, 3, 4, 5];   % 自变量
y = [2.2, 2.8, 3.6, 4.5, 5.1]; % 因变量

% 拟合一阶多项式(直线)
p = polyfit(x, y, 1);

% 绘制拟合结果
y_fit = polyval(p, x);
plot(x, y, 'o', x, y_fit, '-'); % 原始数据和拟合曲线
legend('数据点', '拟合线');

六、并行计算与性能优化

MATLAB 支持多线程和并行计算,可以加速计算。

实例 11:并行 for 循环

1
2
3
parfor i = 1:10
disp(['计算中: ', num2str(i)]);
end

python

1. NumPy:数值计算基础库

1.1 创建多维数组

在实际应用中,NumPy 经常用于创建矩阵或多维数组进行数学计算。以下是如何创建高维数组并进行操作的示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import numpy as np

# 创建 3x3 的随机矩阵
A = np.random.rand(3, 3)
print("A:\n", A)

# 创建 3x3 的单位矩阵
I = np.eye(3)
print("单位矩阵 I:\n", I)

# 计算矩阵 A 与单位矩阵 I 的加法
result = A + I
print("A + I:\n", result)

# 计算 A 的逆矩阵
A_inv = np.linalg.inv(A)
print("A 的逆矩阵:\n", A_inv)

1.2 广播机制与数组运算

在数据分析中,我们经常需要对数组进行逐元素操作,NumPy 的广播机制使得这一过程更加高效。

实例:加权平均

假设你有一个评分数组和一个对应的权重数组,你可以使用广播机制来计算加权平均:

1
2
3
4
5
6
7
# 评分数组和权重数组
scores = np.array([80, 90, 70, 85, 95])
weights = np.array([0.1, 0.2, 0.3, 0.2, 0.2])

# 使用广播机制计算加权平均
weighted_average = np.sum(scores * weights)
print("加权平均成绩:", weighted_average)

2. SciPy:科学计算库

2.1 优化:最小化问题

在实际工程中,常常需要通过优化算法来找到最优解。SciPy 提供了强大的优化工具。以下是一个最小化问题的示例。

实例:最小化损失函数

假设你在做回归分析,需要通过最小化均方误差来拟合一条直线。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from scipy import optimize
import numpy as np

# 定义损失函数:均方误差 (MSE)
def loss(params, x, y):
m, b = params
return np.sum((y - (m * x + b))**2)

# 示例数据
x_data = np.array([1, 2, 3, 4, 5])
y_data = np.array([2.3, 2.9, 3.1, 3.9, 4.7])

# 使用 optimize.minimize 寻找最优的 m 和 b
result = optimize.minimize(loss, [1, 0], args=(x_data, y_data))
m_opt, b_opt = result.x

print(f"最优参数:m={m_opt}, b={b_opt}")

2.2 插值:数据补全

在实际应用中,数据可能存在缺失,SciPy 提供了插值工具来填补缺失数据。

1
2
3
4
5
6
7
8
9
10
11
from scipy import interpolate

# 原始数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2.5, 3.5, np.nan, 5.5, 6.5])

# 使用插值方法填补缺失值
f = interpolate.interp1d(x[~np.isnan(y)], y[~np.isnan(y)], kind='linear', fill_value='extrapolate')
y_filled = f(x)

print("填补后的数据:", y_filled)

3. Pandas:数据处理和分析

3.1 数据清理与转换

在数据预处理过程中,数据清洗和转换是非常重要的步骤。使用 Pandas 你可以轻松处理缺失值、重复数据等问题。

实例:去除缺失值并处理重复数据

假设你有一个包含缺失值和重复数据的 DataFrame,你可以使用 Pandas 来清理数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import pandas as pd

# 创建带有缺失值和重复数据的 DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'Alice', None],
'Age': [25, 30, None, 25, 35],
'Score': [85, 90, 78, 85, None]
}
df = pd.DataFrame(data)

# 去除重复数据
df_cleaned = df.drop_duplicates()

# 删除包含缺失值的行
df_cleaned = df_cleaned.dropna()

print("清理后的数据:\n", df_cleaned)

3.2 数据聚合与分组

Pandas 提供了强大的分组功能,适用于各种聚合任务。

实例:按年龄分组并计算平均分

1
2
3
4
5
6
7
8
9
10
11
12
# 创建示例 DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Edward'],
'Age': [25, 30, 25, 30, 25],
'Score': [85, 90, 78, 88, 92]
}
df = pd.DataFrame(data)

# 按年龄分组,并计算每组的平均分
grouped = df.groupby('Age').mean()

print("按年龄分组计算平均分:\n", grouped)

3.3 数据透视表

在多维数据分析中,使用 Pandas 的数据透视表(pivot_table)可以快速进行复杂的数据分析。

实例:创建数据透视表

1
2
3
4
5
6
7
8
9
10
11
12
13
# 创建示例 DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Edward'],
'Department': ['HR', 'Engineering', 'HR', 'Engineering', 'Marketing'],
'Salary': [50000, 60000, 55000, 70000, 45000],
'Experience': [2, 5, 3, 6, 1]
}
df = pd.DataFrame(data)

# 创建数据透视表:按部门分组,计算薪资和经验的平均值
pivot_table = df.pivot_table(values=['Salary', 'Experience'], index='Department', aggfunc='mean')

print("数据透视表:\n", pivot_table)

4. Matplotlib:数据可视化

4.1 绘制多个子图

在实际分析中,我们通常需要绘制多个子图来展示不同的数据关系。Matplotlib 提供了非常方便的接口来创建子图。

实例:创建多个子图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import matplotlib.pyplot as plt
import numpy as np

# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 创建一个 1x2 的子图
fig, ax = plt.subplots(1, 2, figsize=(10, 4))

# 绘制第一个子图:sin(x)
ax[0].plot(x, y1, label='sin(x)', color='r')
ax[0].set_title('Sine Function')
ax[0].legend()

# 绘制第二个子图:cos(x)
ax[1].plot(x, y2, label='cos(x)', color='b')
ax[1].set_title('Cosine Function')
ax[1].legend()

plt.tight_layout()
plt.show()

4.2 3D 可视化

如果数据是三维的,Matplotlib 提供了 3D 图形支持来进行可视化。

实例:3D 曲面图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from mpl_toolkits.mplot3d import Axes3D

# 创建数据
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z = np.sin(np.sqrt(x**2 + y**2))

# 创建 3D 图
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x, y, z, cmap='viridis')

ax.set_title('3D Surface Plot')
plt.show()

5. Scikit-Learn:机器学习库

5.1 线性回归

Scikit-Learn 提供了许多经典机器学习算法。在实际应用中,我们常用线性回归来预测连续值。

实例:线性回归

1
2
3
4
5
6
7
8
9
10
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
import numpy as np

# 创建示例数据
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([1, 2, 3, 4, 5])

# 数据拆

5. Scikit-Learn:机器学习库(续)

5.1 线性回归(续)

线性回归是一个简单且广泛使用的算法,在很多实际应用中被用来进行预测。以下是一个基于 Scikit-Learn 的线性回归实例。

实例:线性回归预测

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
import numpy as np

# 创建示例数据
X = np.array([[1], [2], [3], [4], [5]]) # 特征:X
y = np.array([1, 2, 3, 4, 5]) # 标签:y

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建并训练线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)

# 用测试集进行预测
y_pred = model.predict(X_test)

# 输出预测结果与真实值
print("预测结果:", y_pred)
print("真实值:", y_test)

# 计算均方误差
mse = mean_squared_error(y_test, y_pred)
print(f"均方误差:{mse}")

说明

  • train_test_split 用于将数据拆分成训练集和测试集。
  • LinearRegression 用于建立回归模型。
  • mean_squared_error 用于评估模型的效果。

5.2 分类:逻辑回归(Logistic Regression)

逻辑回归广泛应用于二分类问题,如疾病预测、金融欺诈检测等。

实例:逻辑回归分类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 创建示例数据
X = np.array([[1], [2], [3], [4], [5], [6], [7], [8], [9], [10]]) # 特征:X
y = np.array([0, 0, 0, 0, 1, 1, 1, 1, 1, 1]) # 标签:y,0 和 1 的二分类

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 创建并训练逻辑回归模型
model = LogisticRegression()
model.fit(X_train, y_train)

# 用测试集进行预测
y_pred = model.predict(X_test)

# 输出准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"分类准确率:{accuracy}")

说明

  • LogisticRegression 用于二分类问题。
  • accuracy_score 用于计算分类模型的准确度。

5.3 聚类:KMeans 聚类

KMeans 是一种常用的无监督学习算法,用于将数据划分成不同的类别。

实例:KMeans 聚类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from sklearn.cluster import KMeans
import numpy as np
import matplotlib.pyplot as plt

# 创建示例数据:两个特征
X = np.array([[1, 2], [2, 3], [3, 4], [10, 11], [11, 12], [12, 13]])

# 创建 KMeans 模型,设置为 2 个聚类中心
kmeans = KMeans(n_clusters=2, random_state=42)

# 训练模型
kmeans.fit(X)

# 预测每个点的聚类标签
labels = kmeans.predict(X)

# 打印聚类中心
print("聚类中心:", kmeans.cluster_centers_)

# 可视化聚类结果
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], marker='x', color='red', s=200)
plt.title("KMeans 聚类")
plt.show()

说明

  • KMeans 用于进行聚类分析。
  • cluster_centers_ 存储聚类中心的坐标。
  • 使用 matplotlib 可视化聚类结果。

总结:如何将 Python 库应用于数学建模和数据分析

结合之前的示例和应用,可以看到 NumPySciPyPandasMatplotlibScikit-Learn 在数学建模和数据分析中的应用非常广泛。这些库为我们提供了强大的数值计算、数据处理、统计分析、机器学习和数据可视化的工具。

  1. NumPy:用于基础的数组操作和矩阵运算,在优化问题、线性代数、数值计算中扮演重要角色。
  2. SciPy:提供了高级的数学计算功能,如优化、积分、插值和高级线性代数,可以解决复杂的数学建模问题。
  3. Pandas:用于数据预处理,特别是处理结构化数据(如 CSV、Excel 文件等)。它还具有强大的数据清理、聚合和透视表功能,非常适合做数据分析。
  4. Matplotlib:帮助我们可视化数据,支持各种类型的图表,包括 2D 和 3D 图形,非常适合用于分析报告和展示数据。
  5. Scikit-Learn:为机器学习提供了一整套算法和工具,适用于分类、回归、聚类等任务,可以帮助我们进行建模和预测。

实际应用中的典型任务

  • 数据清洗:使用 Pandas 处理缺失值、重复数据和异常值。
  • 数据分析:使用 PandasNumPy 对数据进行统计分析和特征工程。
  • 机器学习建模:使用 Scikit-Learn 进行回归、分类和聚类建模,进行数据拟合和预测。
  • 优化:使用 SciPy 优化函数进行模型参数调整、最优解求解等。
  • 数据可视化:使用 Matplotlib 绘制各种图形,帮助理解数据的分布和模型效果。

题型分类

  • 1. 评价类模型

    评价类模型用于综合分析和评估系统或方案的优劣,适用于多维度、多指标的决策问题。

    常见方法

    • 主成分分析(PCA)

      • 应用实例:假设你有一个涉及多个维度的消费者满意度调查数据,包含产品质量、服务态度、性价比等多个指标。通过PCA,可以将这些多个维度的指标降到一个或几个主成分,从而简化数据,并保留最能反映差异的信息,帮助决策者更清晰地看到数据的趋势和结构。

      • 使用方法:你可以使用Python中的sklearn.decomposition.PCA来执行PCA,选择适当的主成分数目,完成降维并分析各主成分的方差贡献率。

      • PCA用于数据降维,常用于减少特征数量,同时保留数据的主要信息。

      • 示例:

        假设你有一个关于多个属性(如年龄、收入、教育程度等)的顾客数据,你想通过PCA来简化数据,便于后续分析。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      import pandas as pd
      from sklearn.decomposition import PCA
      from sklearn.preprocessing import StandardScaler

      # 示例数据(假设有4个特征)
      data = {'Age': [25, 30, 35, 40, 45],
      'Income': [50000, 60000, 70000, 80000, 90000],
      'Education': [2, 3, 2, 3, 4],
      'Spending_Score': [70, 80, 90, 85, 75]}

      df = pd.DataFrame(data)

      # 标准化数据
      scaler = StandardScaler()
      scaled_data = scaler.fit_transform(df)

      # 使用PCA进行降维
      pca = PCA(n_components=2) # 降到2个主成分
      principal_components = pca.fit_transform(scaled_data)

      # 创建新的DataFrame保存主成分
      pc_df = pd.DataFrame(data=principal_components, columns=['PC1', 'PC2'])

      print(pc_df)

    • 层次分析法(AHP)

      • 应用实例:在选择供应商时,可能会考虑价格、质量、交货期等多个指标。通过AHP方法,可以建立这些因素的层次结构,进行定量比较并综合评估各供应商的综合得分。
      • 使用方法:通过构建判断矩阵,计算权重和一致性,最终得到各选项的优先级。
    • 模糊综合评价法

      • 应用实例:在对项目风险进行评估时,可能存在许多模糊的信息,例如评估人员对某一风险的判断不确定。模糊综合评价法通过模糊逻辑将这些不确定性转换为数值,从而帮助决策者做出更合理的选择。
      • 使用方法:你可以使用模糊数学工具包(如scikit-fuzzy)来实现模糊规则并进行综合评价。

    2. 运筹优化类

    运筹优化模型用于处理如何在给定约束下优化目标(如最小化成本、最大化效益)的各种问题,广泛应用于生产调度、路径规划等领域。

    常见方法

    • 目标规划模型(Goal Programming)
      • 应用实例:假设一个企业在生产过程中有多个目标,如降低成本、提高生产效率等,但这些目标之间存在冲突。目标规划可以通过将多个目标转化为可比的优先级来帮助找到最佳的折衷解。
      • 使用方法:在Python中,可以通过scipy.optimize.linprog来求解目标规划问题,并根据不同目标的优先级设定相应的权重。
    • 差分法
      • 应用实例:在优化生产线配置时,如果你需要分析生产速率随时间的变化,可以用差分法来求解动态系统的离散化优化问题。
      • 使用方法:通过离散化微分方程,并应用差分法求解离散状态下的最优解。
    • 多目标优化(Multi-objective Optimization)
      • 应用实例:在电力系统的调度问题中,可能既要考虑最大化发电效益,又要考虑减少污染排放。这时可以通过多目标优化模型来寻找满足多个目标的最优调度方案。
      • 使用方法:使用遗传算法、粒子群优化等群体智能算法,找到多个目标之间的Pareto最优解。

    3. 预测类模型

    预测类模型用于基于历史数据预测未来趋势,广泛应用于经济、金融、市场需求等领域。

    常见方法

    • 时间序列分析(AR模型)
      • 应用实例:假设你正在分析某产品的月销售数据,通过AR模型可以基于历史销售数据预测未来几个月的销售趋势。
      • 使用方法:可以通过statsmodels.tsa.ar_model.AutoReg进行AR模型的拟合和预测。
    • 蒙特卡洛模型
      • 应用实例:在股票市场中,蒙特卡洛模拟常用于估计资产的未来价格分布,特别是在不确定性较高的情形下(如期权定价)。
      • 使用方法:通过Python的numpy.random库生成大量随机样本,进行多次模拟,从而获得不同情景下的预期结果。
    • 回归分析(如逻辑回归、支持向量机等)
      • 应用实例:在金融领域,你可能想通过历史数据来预测某项股票是否会上涨。这时可以使用逻辑回归来预测股价上涨的概率。
      • 使用方法:使用sklearn.linear_model.LogisticRegressionsklearn.svm.SVC来拟合训练数据,进行预测。

    4. 机理分析类

    机理分析类模型通过建立系统内部的机制来解释和预测系统行为,通常用于物理学、工程学等复杂领域。

    常见方法

    • 群智能算法
      • 应用实例:在一个大规模生产调度问题中,使用粒子群优化(PSO)可以有效地找到最优的生产顺序和资源分配方案,尤其是在面对大量复杂约束时。
      • 使用方法:Python的pyswarm库可以帮助实现粒子群优化算法。
    • 分类算法(如SVM、随机森林、KNN)
      • 应用实例:在客户细分问题中,可以使用随机森林算法来根据客户的历史购买行为进行分类,从而为不同类别的客户设计不同的营销策略。
      • 使用方法:使用sklearn.ensemble.RandomForestClassifier来进行模型训练,使用sklearn.metrics评估分类效果。
    • 聚类算法(如K-Means、层次聚类)
      • 应用实例:在市场调研中,可以使用K-Means算法对顾客群体进行聚类分析,从而帮助公司了解不同消费者的需求和偏好。
      • 使用方法:通过sklearn.cluster.KMeans实现K-Means聚类,使用matplotlib进行结果可视化。

    5. 其他常用算法

    • 粒子群优化(PSO):适用于全局优化问题,如机器学习中的超参数调优。
      • 应用实例:调优支持向量机(SVM)的核函数参数时,可以使用PSO算法找到最优的参数组合。
      • 使用方法:通过pyswarm库进行PSO优化。
    • 遗传算法(GA):广泛应用于路径规划、特征选择等优化问题。
      • 应用实例:在路径规划问题中,GA可以用于找到一条从起点到终点的最短路径。
      • 使用方法:通过deap库实现遗传算法的迭代优化。
    • K-Means与层次聚类:用于无监督学习的聚类分析。
      • 应用实例:在客户细分问题中,K-Means算法可以将不同购买行为的客户划分为不同的组。
      • 使用方法:使用sklearn.cluster.KMeans来实现聚类,scipy.cluster.hierarchy实现层次聚类。

总结分类

分类 模型/方法 应用领域/目的
评价类模型 主成分分析(PCA)、层次分析法(AHP)、模糊综合评价法 用于多维度、多指标评价,如决策支持、项目评估等。
运筹优化类 目标规划模型、目标优化、差分法、多目标优化 用于资源分配、路径规划、调度优化等问题。
预测类模型 时间序列分析(AR模型)、蒙特卡洛模拟、回归分析 用于趋势预测、风险评估、需求预测等。
机理分析类 群智能算法、分类算法(逻辑回归、SVM、随机森林、KNN)、聚类算法(K-Means、层次聚类) 用于数据分类、聚类、模式识别等,适用于监督学习和无监督学习。

数学建模
https://theganlove.github.io/2024/09/23/数学建模/
作者
uert
发布于
2024年9月23日
许可协议