机器学习中的回归、分类与曲线拟合
立即解锁
发布时间: 2025-08-23 02:00:40 订阅数: 4 

### 机器学习中的回归、分类与曲线拟合
在机器学习领域,回归和分类是两个重要的任务类型,它们有着不同的特点和应用场景。同时,曲线拟合也是数据处理和模型构建中的关键环节。下面将详细介绍这些内容。
#### 1. 回归与分类任务
##### 1.1 回归任务
当机器学习技术用于执行回归任务时,它会构建模型函数 \(f\),将输入向量 \(x\) 映射到输出向量 \(y\),即 \(y = f (x)\)。这里的输出向量 \(y\) 由连续的分量组成,每个分量都有特定的科学含义。
##### 1.2 分类任务
分类任务与回归任务有所不同。机器学习方法经过训练,将输入向量 \(x\) 分配到特定的类别 \(i\)。为了实现这一目标,需要对输出 \(y\) 进行适当的编码。通常,输出向量 \(y\) 的分量数量设置为所需类别的数量,每个分量 \(y_k\) 编码一个类别。例如,对于 3 个类别,编码后的输出向量如下:
- 类别 1: \(y = \begin{pmatrix} 1.0 \\ 0.0 \\ 0.0 \end{pmatrix}\)
- 类别 2: \(y = \begin{pmatrix} 0.0 \\ 1.0 \\ 0.0 \end{pmatrix}\)
- 类别 3: \(y = \begin{pmatrix} 0.0 \\ 0.0 \\ 1.0 \end{pmatrix}\)
采用这种编码方式后,就可以使用这些输出向量执行回归任务,相应的数据集被称为分类数据集。为了将输入向量 \(x\) 分配到特定类别,需要确定输出向量 \(y\) 的最大分量,该最大分量所在的位置对应的类别即为输入向量 \(x\) 所属的类别。例如,若训练好的机器学习方法为输入向量 \(x\) 计算出输出向量 \(y = \begin{pmatrix} 0.2 \\ 0.5 \\ 0.3 \end{pmatrix}\),则该输入向量被分配到类别 2,因为分量 2(值为 0.5)是输出向量 \(y\) 的最大分量。需要注意的是,对于正确的分类,机器学习方法不需要高精度地映射到每个类别的期望输出向量 \(y\),只要类别检测分量是最大分量即可。因此,一般来说,分类任务对机器学习方法的要求比回归任务稍低。如果回归任务失败,至少可以尝试将数据分类到不同的感兴趣区域。
以下是一个分类数据集的示例:
```mathematica
input1={Subscript[in, 11],Subscript[in, 12],Subscript[in, 13]};
output1={0.0,1.0};
ioPair1={input1,output1};
input2={Subscript[in, 21],Subscript[in, 22],Subscript[in, 23]};
output2={0.0,1.0};
ioPair2={input2,output2};
input3={Subscript[in, 31],Subscript[in, 32],Subscript[in, 33]};
output3={0.0,1.0};
ioPair3={input3,output3};
input4={Subscript[in, 41],Subscript[in, 42],Subscript[in, 43]};
output4={1.0,0.0};
ioPair4={input4,output4};
classificationDataSet={ioPair1,ioPair2,ioPair3,ioPair4};
MatrixForm[classificationDataSet]
```
这个数据集可以根据类成员资格进行升序排序:
```mathematica
sortResult=CIP‘DataTransformation‘SortClassificationDataSet[
classificationDataSet];
sortedClassificationDataSet=sortResult[[1]];
MatrixForm[sortedClassificationDataSet]
```
排序结果会给出输入与类别的关系信息:
```mathematica
classIndexMinMaxList=sortResult[[2]]
```
例如,`classIndexMinMaxList` 可能为 `{{1,1},{2,4}}`,这表示有两个类别,类别 1 包含一个输入(索引为 1),类别 2 包含三个输入(索引为 2、3 和 4)。
分类任务通常与模式识别相关,输入向量 \(x\) 编码一个模式(如 MRI 创建的数字图像),该模式被映射到具有特定含义的特定类别(如肿瘤组织),从而实现模式识别。机器学习方法在原则上具有很强的模式识别能力。
#### 2. CIP 计算的结构
计算智能包(CIP)的计算结构基本统一。通过 `Get` 方法(使用 CIP 的 `ExperimentalData` 和 `CalculatedData` 包)检索或模拟数据,然后将这些数据提交给 `Fit` 方法(如 CIP 的 `CurveFit`、`Cluster`、`MLR`、`SVM` 或 `Perceptron` 包)。`Fit` 方法的结果是一个全面的信息数据结构(如 `curveFitInfo`、`clusterInfo`、`mlrInfo`、`svmInfo` 或 `perceptronInfo`),可以将其传递给 `Show` 方法进行评估(如检查拟合优度),或传递给 `Calculate` 方法进行与模型相关的计算。这种直观的 `Get - Fit - Show - Calculate` 方案易于记忆,贯穿于整个数据分析过程。
CIP 方法使用了许多默认设置,这些设置对于算法的运行是必要的,但重要的细节可以通过选项进行更改。由于默认设置并非普遍适用,在某些情况下可能合适,而在其他情况下可能导致失败,因此在数据分析应用中,根据具体情况调整这些设置至关重要。需要注意的是,CIP 是开源的,用户可以查看实现方法的每个细节,甚至进行更改或改进。
以下是 CIP 计算结构的流程图:
```mermaid
graph LR
A[Get 方法] --> B[检索或模拟数据]
B --> C[Fit 方法]
C --> D[生成信息数据结构]
D --> E[Show 方法]
D --> F[Calculate 方法]
E --> G[评估拟合优度]
F --> H[模型相关计算]
```
#### 3. 曲线拟合
##### 3.1 二维曲线拟合的开始
二维曲线拟合从实验的 \(xy\) 误差数据开始,这些数据由三元组 \((x_i,y_i,\sigma_i)\) 组成,其中 \(x_i\) 是自变量值,\(y_i\) 是相应的因变量值,\(\sigma_i\) 是 \(y_i\) 值的统计误差(通常假设所有 \(x_i\) 值是无误差的,因为它们的误差会传播到因变量 \(y_i\) 的更大误差 \(\sigma_i\) 中)。
以下是生成 \(xy\) 误差数据的示例代码:
```mathematica
Clear["Global‘*"];
<<CIP‘CalculatedData‘
<<CIP‘Graphics‘
<<CIP‘CurveFit‘
pureModelFunction=Function[x,1.0+1.0*x+0.4*x^2-0.1*x^3];
argumentRange={-2.0,5.0};
numberOfData=100;
standardDeviationRange={0.5,0.5};
xyErrorData=CIP‘CalculatedData‘GetXyErrorData[pureModelFunction,
argumentRange,numberOfData,standardDeviationRange];
labels={"x","y","Data"};
CIP‘Graphics‘PlotXyErrorData[xyErrorData,labels]
```
##### 3.2 曲线拟合的目标
曲线拟合的目标是调整一个平滑且平衡的模型函数 \(f(x)\),使其能够充分描述数据。在数学上,曲线拟合是一种数据分析过程,试图从实验的 \(xy\) 误差数据中构建线性或非线性模型函数 \(y = f(x)\)。
除了模型函数 \(f(x)\) 完全已知的罕见情况外,可以区分三种不同的场景:
- **场景 1**:模型函数 \(f(x)\) 的结构形式在理论或经验上已知,但参数值未知。例如,已知结构形式是一条直线,但斜率和截距的值未知。
- **场景 2**:模型函数 \(f(x)\
0
0
复制全文
相关推荐










