35、机器学习中的训练集与测试集划分及比较研究

机器学习中的训练集与测试集划分及比较研究

1. 训练集与测试集划分的重要性

在机器学习中,将数据集划分为训练集和测试集是取得成功的关键步骤。合理的划分能够让小的训练集对输入空间覆盖范围类似的测试集具有较高的预测能力,从而得到令人信服的结果。但需要注意的是,机器学习的结果往往存在不确定性,因为几乎总能从数据中学习到一些规律并进行预测,所以结果可能存在欺骗性。因此,适当的验证至关重要,它比单纯的数据拟合要求更高。

2. 基于实验设计(DoE)的划分方法

科学实验室工作通常基于实验设计(DoE)来生成数据,即测量的设置和条件并非随机选择,而是遵循理论考虑或特定的系统规则。以一个回归任务为例,输入位置可以选择形成二维网格,如 19×19 的网格。

pureOriginalFunction=Function[{x,y},
1.9*(1.35+Exp[x]*Sin[13.0*(x-0.6)^2]*Exp[-y]* Sin[7.0*y])];
xRange={0.0,1.0};
yRange={0.0,1.0};
numberOfDataPerDimension=19;
standardDeviationRange={0.1,0.1};
dataSet3D=CIP‘CalculatedData‘Get3dFunctionBasedDataSet[
pureOriginalFunction,xRange,yRange,numberOfDataPerDimension,
standardDeviationRange];
labels={"x","y","z"};
viewPoint3D={0.0,0.0,3.0};
CIP‘Graphics‘Plot3dDataSet[dataSet3D,labels,
GraphicsOptionViewPoint3D -> viewPoint3D]

从 3D 视角检查数据集时,网格特征会很明显。为了得到合适的训练集,可以提取具有足够密度的子网格,如 10×10 的子网格。

numberOfPointsPerDimension=19;
trainingSet={};
testSet={};
Do[
Do[
If[OddQ[i] && OddQ[k],
AppendTo[trainingSet,
dataSet3D[[(i-1)*numberOfPointsPerDimension+k]]],
AppendTo[testSet,
dataSet3D[[(i-1)*numberOfPointsPerDimension+k]]],
];
dataSet3D,
{k,numberOfPointsPerDimension}
],
{i,numberOfPointsPerDimension}
];
viewPoint3D={0.0,0.0,3.0};
CIP‘Graphics‘Plot3dDataSet[trainingSet,labels,
GraphicsOptionViewPoint3D -> viewPoint3D]
CIP‘Graphics‘Plot3dDataSet[testSet,labels,
GraphicsOptionViewPoint3D -> viewPoint3D]

这种选择在空间多样性方面似乎是最优的,并且满足直观的美学要求。使用合适的核函数(如 {"Wavelet",0.3} )对训练集进行支持向量机(SVM)拟合,能够对训练集和测试集产生令人满意的预测结果。

kernelFunction={"Wavelet",0.3};
svmInfo=CIP‘SVM‘FitSvm[trainingSet,kernelFunction];
trainingAndTestSet={trainingSet,testSet};
CIP‘SVM‘ShowSvmRegressionResult[{"ModelVsDataPlot",
"AbsoluteSortedResidualsPlot","RMSE"},trainingAndTestSet,svmInfo]

训练集的均方根误差(RMSE)为 8.904×10⁻²,测试集的 RMSE 为 1.508×10⁻¹,这些值与用于计算正态分布输入输出对输出的标准差 0.1 相匹配。

3. 不同划分启发式方法的比较

为了探索不同划分策略的优劣,将基于 DoE 的划分方法与其他完全忽略 DoE 知识的训练集和测试集划分启发式方法进行比较。

3.1 基于 CR 的划分方法

首先尝试基于 CR 的训练集和测试集划分,训练比例与子网格划分的比例相同。

Length[trainingSet]
100
Length[testSet]
261
trainingFraction=
N[Length[trainingSet]/(Length[trainingSet]+Length[testSet])]
0.277008
trainingAndTestSet=CIP‘Cluster‘GetClusterBasedTrainingAndTestSet[
dataSet3D,trainingFraction];
trainingSet=trainingAndTestSet[[1]];
testSet=trainingAndTestSet[[2]];
CIP‘Graphics‘Plot3dDataSet[trainingSet,labels,
GraphicsOptionViewPoint3D -> viewPoint3D]
svmInfo=CIP‘SVM‘FitSvm[trainingSet,kernelFunction];
CIP‘SVM‘ShowSvmRegressionResult[{"RMSE"},trainingAndTestSet,svmInfo]

这种方法得到的训练集具有良好的空间多样性,但输入与之前的子网格划分明显不同。其训练集的 RMSE 为 9.118×10⁻²,测试集的 RMSE 为 1.975×10⁻¹,略逊于基于 DoE 的拟合结果。

3.2 训练集优化策略

为了改进基于 CR 的划分结果,尝试了多种训练集优化策略:
- AllClusterMax 策略 :在每个迭代步骤中,训练集由每个聚类中偏差最大的单个输入输出对组成。

numberOfTrainingSetOptimizationSteps=20;
deviationCalculationMethod="AllClusterMax";
svmTrainOptimization=
CIP‘SVM‘GetSvmTrainOptimization[dataSet3D,
kernelFunction,trainingFraction,
numberOfTrainingSetOptimizationSteps,
UtilityOptionDeviationCalculation ->
deviationCalculationMethod];
CIP‘SVM‘ShowSvmTrainOptimization[
svmTrainOptimization]

该策略未能对基于 CR 的训练集产生改进。
- AllClusterMean 策略 :每个迭代中的训练集由最接近其对应聚类特定平均偏差的输入输出对组成。

numberOfTrainingSetOptimizationSteps=20;
deviationCalculationMethod="AllClusterMean";
svmTrainOptimization=
CIP‘SVM‘GetSvmTrainOptimization[dataSet3D,
kernelFunction,trainingFraction,
numberOfTrainingSetOptimizationSteps,
UtilityOptionDeviationCalculation ->
deviationCalculationMethod];
CIP‘SVM‘ShowSvmTrainOptimization[
svmTrainOptimization]

这种更平衡的全局策略相比基于 CR 的训练集有了改进。
- SingleGlobalMean 策略 :评估具有最大偏差输入输出对的聚类,并将该聚类的训练集成员替换为最接近其聚类特定平均偏差的测试集输入输出对。

numberOfTrainingSetOptimizationSteps=20;
deviationCalculationMethod="SingleGlobalMean";
svmTrainOptimization=
CIP‘SVM‘GetSvmTrainOptimization[dataSet3D,
kernelFunction,trainingFraction,
numberOfTrainingSetOptimizationSteps,
UtilityOptionDeviationCalculation ->
deviationCalculationMethod];
CIP‘SVM‘ShowSvmTrainOptimization[
svmTrainOptimization]

该策略在开始时显示出改进,但在几步后陷入振荡。为了抑制振荡,引入了黑名单机制。

numberOfTrainingSetOptimizationSteps=20;
deviationCalculationMethod="SingleGlobalMean";
blackListLength=20;
svmTrainOptimization=
CIP‘SVM‘GetSvmTrainOptimization[dataSet3D,
kernelFunction,trainingFraction,
numberOfTrainingSetOptimizationSteps,
UtilityOptionDeviationCalculation ->
deviationCalculationMethod,
UtilityOptionBlackListLength -> blackListLength];
CIP‘SVM‘ShowSvmTrainOptimization[
svmTrainOptimization]

当黑名单长度等于优化步骤数时,振荡得到成功抑制,但只有在前三个优化步骤中取得了早期改进,后续优化尝试失败。减少黑名单长度可以允许已交换的输入输出对重新进入,从而在第 17 步得到了目前为止最好的改进。
- SingleGlobalMax 策略 :评估具有最大偏差输入输出对的聚类,并将该聚类的训练集成员替换为这个最大偏差的输入输出对。

numberOfTrainingSetOptimizationSteps=20;
deviationCalculationMethod="SingleGlobalMax";
svmTrainOptimization=
CIP‘SVM‘GetSvmTrainOptimization[
dataSet3D,kernelFunction,trainingFraction,
numberOfTrainingSetOptimizationSteps,
UtilityOptionDeviationCalculation ->
deviationCalculationMethod];
CIP‘SVM‘ShowSvmTrainOptimization[
svmTrainOptimization]

非黑名单应用该策略在第 2 步有轻微改进,之后出现振荡。完全黑名单应用未能进一步改进,而减少黑名单长度得到了目前为止该回归任务的最佳训练/测试集组合。

index=CIP‘SVM‘GetBestSvmRegressOptimization[
svmTrainOptimization];
trainingAndTestSetList=svmTrainOptimization[[3]];
svmInfoList=svmTrainOptimization[[4]];
trainingAndTestSet=trainingAndTestSetList[[index]];
trainingSet=trainingAndTestSet[[1]];
testSet=trainingAndTestSet[[2]];
svmInfo=svmInfoList[[index]];
CIP‘Graphics‘Plot3dDataSet[trainingSet,labels,
GraphicsOptionViewPoint3D -> viewPoint3D]
CIP‘SVM‘ShowSvmRegressionResult[{"RMSE"},trainingAndTestSet,svmInfo]

最佳训练集的 RMSE 为 1.065×10⁻¹,测试集的 RMSE 为 1.438×10⁻¹,略优于基于 DoE 的子网格划分结果。

4. 不同划分方法的总结

通过一系列的实验可以看出,虽然通过基于 CR 的划分和后续的优化步骤能够得到与基于 DoE 的子网格划分相当的训练集和测试集划分结果,但基于 DoE 的方法在计算上要便宜得多。因此,实验科学家和数据分析师应该在项目早期密切合作,共同设计实验,以便机器学习过程能够在实验进行期间提供支持。这对于现代小型化、并行化和自动化的实验室过程尤为重要,否则传统的“先实验后数据分析”的方法可能会损失很多有价值的信息。

5. 交叉验证的相关问题

在讨论数据集划分为训练集和测试集的过程中,涉及到了交叉验证的领域。交叉验证使用更复杂的划分方案和操作来对数据进行交叉验证,但不幸的是,这些方法通常需要巨大的计算资源或超出合理范围的时间。因此,在大多数情况下,本文所讨论的或类似的预交叉验证启发式方法构成了实际可行的验证程序,尽管它们具有非最优和初步的特点,但仍能为从业者带来有用的结果。不过,必须牢记它们的不足之处,并在报告机器学习结果时明确指出。

6. 不同机器学习方法的比较

当将机器学习应用于一组数据时,需要选择合适的方法。通常,无法通过理论考虑预先确定最适合数据的方法,因此需要经验、有根据的猜测和大量的试错。以一个基于真实函数生成的 3D 数据集为例,对不同的机器学习方法进行比较。

6.1 线性 MLR 方法

首先尝试线性多元线性回归(MLR)方法。

mlrInfo=CIP‘MLR‘FitMlr[dataSet3D];
originalFunctionGraphics3D=CIP‘Graphics‘Plot3dFunction[
pureOriginalFunction,xRange,yRange,labels];
pureMlr3dFunction=Function[{x,y},
CalculateMlr3dValue[x,y,mlrInfo]];
approximatedMlrFunctionGraphics3D=CIP‘Graphics‘Plot3dFunction[
pureMlr3dFunction,xRange,yRange,labels];
Show[originalFunctionGraphics3D,approximatedMlrFunctionGraphics3D]

通过直观检查近似线性模型函数和真实函数的叠加图,可以直接排除线性 MLR 方法,因为该机器学习问题具有很强的非线性特征,所以建议使用非线性方法。

6.2 支持向量回归(SVR)方法

支持向量回归需要预先指定核函数,但通常核函数是未知的。可以通过尝试不同类型的核函数并扫描其参数来构建合适的核。
- 多项式核函数 :尝试使用不同指数作为核参数的多项式核函数。

kernelFunctionList=Table[{"Polynomial",1.0,kernelParameter},
{kernelParameter,1,6,1}];
svmInfoList=CIP‘SVM‘FitSvmSeries[dataSet3D,kernelFunctionList];
svmSeriesRegressionResult=CIP‘SVM‘GetSvmSeriesRmse[
trainingAndTestSet,svmInfoList];
CIP‘SVM‘ShowSvmSeriesRmse[svmSeriesRegressionResult]

结果表明,多项式核函数的效果不佳,最佳结果的 RMSE 比用于数据生成的标准差 0.1 大一个数量级,近似模型函数与真实函数差异较大。
- 小波核函数 :对小波核函数的参数在 0.1 到 1.0 之间以 0.1 为步长进行扫描。

kernelFunctionList=Table[{"Wavelet",kernelParameter},
{kernelParameter,0.1,1.0,0.1}];
svmInfoList=CIP‘SVM‘FitSvmSeries[dataSet3D,kernelFunctionList];
svmSeriesRegressionResult=
CIP‘SVM‘GetSvmSeriesRmse[trainingAndTestSet,svmInfoList];
CIP‘SVM‘ShowSvmSeriesRmse[svmSeriesRegressionResult]

当小波参数为 0.3 时,RMSE 约为 0.1,得到了合适的核函数。

svmInfoIndex=3;
svmInfo=svmInfoList[[svmInfoIndex]];
CIP‘SVM‘GetKernelFunction[svmInfo]
{Wavelet,0.3}
a=0.3;
x=0.0;
pureWaveletKernel2D=Function[y,CIP‘SVM‘KernelWavelet[{x},{y},a]];
argumentRange={-1.0,1.0};
functionValueRange={-0.4,1.1};
labels={"x","z","Wavelet kernel function"};
CIP‘Graphics‘Plot2dFunction[pureWaveletKernel2D,argumentRange,
functionValueRange,labels]
pureSvm3dFunction=Function[{x,y},
CIP‘SVM‘CalculateSvm3dValue[x,y,svmInfo]];
approximatedFunctionGraphics3D=CIP‘Graphics‘Plot3dFunction[
pureSvm3dFunction,xRange,yRange,labels];
Show[originalFunctionGraphics3D,approximatedFunctionGraphics3D]

真实函数与近似模型函数的叠加图显示了该核函数的良好效果。
- 高斯径向基函数(RBF)核函数 :对高斯 RBF 核函数的参数在 1.0 到 15.0 之间以 1.0 为步长进行扫描。

kernelFunctionList=Table[
kernelFunction={"GaussianRBF",kernelParameter},
{kernelParameter,1.0,15.0,1.0}];
svmInfoList=CIP‘SVM‘FitSvmSeries[dataSet3D,kernelFunctionList];
svmSeriesRegressionResult=
CIP‘SVM‘GetSvmSeriesRmse[trainingAndTestSet,svmInfoList];
CIP‘SVM‘ShowSvmSeriesRmse[svmSeriesRegressionResult]

当参数为 14.0 时,RMSE 约为 0.1,得到合适的核函数。

svmInfoIndex=14;
svmInfo=svmInfoList[[svmInfoIndex]];
CIP‘SVM‘GetKernelFunction[svmInfo]
{GaussianRBF,14.}
beta=14.0;
x=0.0;
pureWaveletKernel2D=Function[y,
CIP‘SVM‘KernelGaussianRbf[{x},{y},beta]];
argumentRange={-1.0,1.0};
functionValueRange={-0.1,1.1};
labels={"x","z","Gaussian RBF kernel function"};
CIP‘Graphics‘Plot2dFunction[pureWaveletKernel2D,argumentRange,
functionValueRange,labels]
pureSvm3dFunction=Function[{x,y},
CIP‘SVM‘CalculateSvm3dValue[x,y,svmInfo]];
approximatedFunctionGraphics3D=CIP‘Graphics‘Plot3dFunction[
pureSvm3dFunction,xRange,yRange,labels];
Show[originalFunctionGraphics3D,approximatedFunctionGraphics3D]

叠加图显示该核函数也有不错的效果。
- 通用傅里叶核函数 :对通用傅里叶核函数的参数在 0.1 到 0.9 之间以 0.1 为步长进行扫描。

kernelFunctionList=Table[
kernelFunction={"UniversalFourier",kernelParameter},
{kernelParameter,0.1,0.9,0.1}];
svmInfoList=CIP‘SVM‘FitSvmSeries[dataSet3D,kernelFunctionList];
svmSeriesRegressionResult=
CIP‘SVM‘GetSvmSeriesRmse[trainingAndTestSet,svmInfoList];
CIP‘SVM‘ShowSvmSeriesRmse[svmSeriesRegressionResult]

当参数为 0.7 时,RMSE 约为 0.1,得到合适的核函数。

svmInfoIndex=7;
svmInfo=svmInfoList[[svmInfoIndex]];
CIP‘SVM‘GetKernelFunction[svmInfo]
{UniversalFourier,0.7}
q=0.7;
x=0.0;
pureWaveletKernel2D=Function[y,
CIP‘SVM‘KernelUniversalFourier[{x},{y},q]];
argumentRange={-1.0,1.0};
functionValueRange={0.0,3.0};
labels={"x","z","Universal Fourier kernel function"};
CIP‘Graphics‘Plot2dFunction[pureWaveletKernel2D,argumentRange,
functionValueRange,labels]
pureSvm3dFunction=Function[{x,y},
CIP‘SVM‘CalculateSvm3dValue[x,y,svmInfo]];
approximatedFunctionGraphics3D=CIP‘Graphics‘Plot3dFunction[
pureSvm3dFunction,xRange,yRange,labels];
Show[originalFunctionGraphics3D,approximatedFunctionGraphics3D]

叠加图显示该核函数的效果也很好。

这三种合适的核函数在原理上相似(都类似“凸起”形状),但细节上有明显差异,不过它们都能得到质量相当的近似模型函数。

6.3 感知机方法

基于感知机的方法需要确定构建足够数量合适“凸起”所需的隐藏神经元数量。对不同数量的隐藏神经元进行扫描。

numberOfHiddenNeuronsList=Table[numberOfHiddenNeurons,
{numberOfHiddenNeurons,2,20}];
perceptronInfoList=CIP‘Perceptron‘FitPerceptronSeries[
dataSet3D,numberOfHiddenNeuronsList];
perceptronSeriesRmse=CIP‘Perceptron‘GetPerceptronSeriesRmse[
trainingAndTestSet,perceptronInfoList];
CIP‘Perceptron‘ShowPerceptronSeriesRmse[perceptronSeriesRmse]

结果表明,12 个隐藏神经元是最小的足够数量。更多的隐藏神经元仍然能使拟合的 RMSE 值接近 0.1,说明感知机在扫描范围内能够抵抗过拟合。

7. 总结

通过对不同机器学习方法和训练集/测试集划分方法的比较研究,可以看出在实际应用中,需要根据具体问题选择合适的方法。同时,要重视数据的验证,避免得到不可靠的机器学习结果。在选择核函数或确定感知机的隐藏神经元数量时,需要进行大量的尝试和比较,以找到最适合数据的模型。

方法 RMSE(训练集) RMSE(测试集)
基于 DoE 子网格划分 + SVM(Wavelet 核) 8.904×10⁻² 1.508×10⁻¹
基于 CR 划分 + SVM(Wavelet 核) 9.118×10⁻² 1.975×10⁻¹
SingleGlobalMax 优化 + SVM(Wavelet 核) 1.065×10⁻¹ 1.438×10⁻¹
graph LR
    A[数据集] --> B[基于 DoE 划分]
    A --> C[基于 CR 划分]
    B --> D[SVM 拟合]
    C --> E[SVM 拟合]
    D --> F[评估 RMSE]
    E --> F
    F --> G{RMSE 比较}
    G -->|选择最优| H[确定最佳划分和模型]

通过以上的研究和比较,希望能够为机器学习从业者在选择合适的方法和进行数据集划分时提供一些参考和指导。在实际应用中,还需要根据具体的数据特点和问题需求进行进一步的探索和优化。

机器学习中的训练集与测试集划分及比较研究

8. 各方法的优势与局限性分析
  • 基于 DoE 的划分方法
    • 优势 :计算成本低,能够利用实验设计的理论和系统规则,得到空间多样性好且符合直观美学的训练集和测试集划分,在很多情况下能得到令人满意的预测结果。
    • 局限性 :依赖于实验设计的合理性,如果实验设计不合理,可能无法得到最优的划分。
  • 基于 CR 的划分方法
    • 优势 :训练集具有良好的空间多样性,不依赖于实验设计知识,具有一定的通用性。
    • 局限性 :初始划分结果可能不如基于 DoE 的方法,需要进行后续的优化步骤,且优化过程可能比较复杂,计算成本相对较高。
  • 不同训练集优化策略
    • AllClusterMax 策略
      • 优势 :每次迭代都尝试选择最大偏差的样本,有可能快速找到偏差较大的样本进行调整。
      • 局限性 :容易陷入局部最优,可能无法得到全局最优的训练集。
    • AllClusterMean 策略
      • 优势 :通过选择接近聚类平均偏差的样本,使训练集更加平衡,能在一定程度上避免过拟合。
      • 局限性 :计算聚类平均偏差需要一定的计算资源,且对于复杂的数据分布,可能无法准确找到合适的样本。
    • SingleGlobalMean 策略
      • 优势 :每次只调整一个样本,相对简单,且在引入黑名单机制后能抑制振荡。
      • 局限性 :容易陷入振荡,需要合适的黑名单长度来平衡优化效果和计算成本。
    • SingleGlobalMax 策略
      • 优势 :直接选择最大偏差的样本进行替换,有可能快速改善模型性能。
      • 局限性 :同样容易陷入振荡,需要合适的黑名单长度来优化结果。
  • 不同机器学习方法
    • 线性 MLR 方法
      • 优势 :计算简单,易于理解和解释。
      • 局限性 :对于非线性问题效果很差,无法捕捉数据中的复杂关系。
    • 支持向量回归(SVR)方法
      • 优势 :通过选择合适的核函数,可以处理非线性问题,且在很多情况下能得到较好的拟合效果。
      • 局限性 :需要预先指定核函数及其参数,核函数的选择和参数的调整比较困难,需要大量的尝试。
    • 感知机方法
      • 优势 :能够处理非线性问题,且在一定范围内能抵抗过拟合。
      • 局限性 :需要确定合适的隐藏神经元数量,过多或过少的隐藏神经元都可能影响模型性能。
9. 实际应用中的建议
  • 数据集划分
    • 如果有明确的实验设计,优先考虑基于 DoE 的划分方法,以降低计算成本。
    • 如果没有实验设计知识,可以尝试基于 CR 的划分方法,并结合合适的训练集优化策略进行调整。
    • 在使用训练集优化策略时,要根据数据特点和计算资源选择合适的策略和参数,如黑名单长度等。
  • 机器学习方法选择
    • 对于线性问题,可以首先考虑线性 MLR 方法。
    • 对于非线性问题,优先尝试支持向量回归(SVR)方法,通过扫描不同的核函数和参数来找到合适的模型。
    • 如果数据比较复杂,也可以考虑感知机方法,但要注意确定合适的隐藏神经元数量。
10. 未来研究方向
  • 更高效的划分方法 :研究如何在不依赖实验设计知识的情况下,快速得到高质量的训练集和测试集划分,减少计算成本。
  • 自适应的核函数选择 :开发能够自动选择合适核函数及其参数的算法,避免人工尝试的繁琐过程。
  • 集成学习方法 :将不同的机器学习方法进行集成,发挥各自的优势,提高模型的性能和稳定性。
11. 总结回顾

在机器学习中,数据集划分为训练集和测试集以及选择合适的机器学习方法是非常关键的步骤。通过本文对不同划分方法和机器学习方法的比较研究,我们可以得出以下结论:
- 不同的数据集划分方法和机器学习方法各有优劣,需要根据具体的数据特点和问题需求进行选择。
- 基于 DoE 的划分方法在计算成本上具有优势,而基于 CR 的划分方法具有更好的通用性,但需要进行优化。
- 支持向量回归(SVR)方法在处理非线性问题时表现较好,但核函数的选择和参数调整是关键。
- 感知机方法能够抵抗过拟合,但需要确定合适的隐藏神经元数量。

在实际应用中,我们应该充分考虑各方法的特点,进行合理的选择和优化,以提高机器学习模型的性能和可靠性。

方法类型 具体方法 优势 局限性
数据集划分 基于 DoE 的划分方法 计算成本低,利用实验设计知识 依赖实验设计合理性
基于 CR 的划分方法 空间多样性好,通用性强 初始结果可能不佳,优化复杂
训练集优化策略 AllClusterMax 策略 尝试选择最大偏差样本 易陷入局部最优
AllClusterMean 策略 使训练集更平衡 计算聚类平均偏差有成本
SingleGlobalMean 策略 调整简单,可抑制振荡 易振荡,需合适黑名单长度
SingleGlobalMax 策略 快速改善性能 易振荡,需合适黑名单长度
机器学习方法 线性 MLR 方法 计算简单,易解释 不适合非线性问题
支持向量回归(SVR)方法 可处理非线性问题 核函数选择和参数调整困难
感知机方法 能抵抗过拟合 需确定合适隐藏神经元数量
graph LR
    A[实际问题] --> B{问题类型}
    B -->|线性问题| C[线性 MLR 方法]
    B -->|非线性问题| D{数据集情况}
    D -->|有实验设计| E[基于 DoE 划分 + SVR]
    D -->|无实验设计| F[基于 CR 划分 + SVR 优化]
    C --> G[评估模型性能]
    E --> G
    F --> G
    G --> H{性能是否满足}
    H -->|是| I[应用模型]
    H -->|否| J[调整方法或参数]
    J --> C
    J --> E
    J --> F

通过以上的分析和总结,希望能为机器学习从业者在实际应用中提供全面的参考,帮助他们更好地进行数据集划分和方法选择,从而提高机器学习模型的效果。在未来的研究中,我们期待有更多高效、智能的方法出现,推动机器学习领域的发展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值