You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用ML.Net查找目标属性对应的最优输入特征组合

ML.Net 最优生产条件查询实现方案

你需要实现的是以目标属性为核心的最优特征组合搜索,在ML.Net下可以通过你已经搭建的聚类方案完成,也可以搭配回归+参数搜索方案实现,具体操作如下:

聚类方案(已完成建模的后续操作)

你已经搭建好聚类模型后,按以下步骤即可得到最优参数组合:

  • 第一步:从全量数据集筛选高目标表现样本:过滤出ResultAccuracy在你预期的高准确率区间(比如≥97%)的所有样本,先把满足目标要求的候选池筛出来。
  • 第二步:批量预测高优样本所属簇:调用你训练好的聚类模型的Transform()方法,给每个高优样本打上所属的簇ID。
  • 第三步:定位最优簇:统计每个簇内样本的平均ResultAccuracy、样本数量,选择平均准确率最高、样本量足够大(避免偶然性)的簇作为最优条件簇。
  • 第四步:提取最优参数组合:对最优簇内的所有非目标属性做统计输出:
    • 数值型特征(Volume、Viscosity、InstrumentTempreture、Concentration)输出中位数、95%置信区间,作为该参数的最优取值范围
    • 类别型特征(SampleType)输出出现频率最高的Top N取值,作为最优类别选项

参考代码片段:

// 高准确率样本筛选
var highAccuracySamples = fullData.Where(s => s.ResultAccuracy >= 97).ToList();
// 预测样本所属簇
var clusterPredictions = clusteringModel.Transform(mlContext.Data.LoadFromEnumerable(highAccuracySamples));
var predictionList = mlContext.Data.CreateEnumerable<ClusterPrediction>(clusterPredictions, reuseRowObject: false).ToList();
// 关联样本与簇ID,统计最优簇
var sampleWithCluster = highAccuracySamples.Zip(predictionList, (sample, pred) => new { sample, pred.PredictedClusterId });
var bestCluster = sampleWithCluster.GroupBy(x => x.PredictedClusterId)
    .Select(g => new { 
        ClusterId = g.Key, 
        AvgAccuracy = g.Average(x => x.sample.ResultAccuracy), 
        SampleCount = g.Count() 
    })
    .OrderByDescending(x => x.AvgAccuracy)
    .First(x => x.SampleCount >= 10); // 过滤样本量过小的偶发簇
// 统计最优簇的参数范围
var bestClusterSamples = sampleWithCluster.Where(x => x.PredictedClusterId == bestCluster.ClusterId).Select(x => x.sample).ToList();
var optimalVolume = new { 
    Min = bestClusterSamples.Min(s => s.Volume), 
    Max = bestClusterSamples.Max(s => s.Volume), 
    Median = bestClusterSamples.Select(s => s.Volume).OrderBy(v => v).ElementAt(bestClusterSamples.Count/2) 
};
// 其余数值型、类别型参数同理统计输出

替代方案:回归模型+参数搜索(适合需要更精准最优值的场景)

如果聚类得到的区间太粗,你可以用回归方案实现更精准的寻优:

  • 第一步:训练回归模型,把ResultAccuracy作为Label,其他所有属性作为特征,训练回归预测模型(可选用ML.Net的FastTreeRegression、LightGbmRegression等算法),模型拟合度达标后就可以通过输入任意参数组合预测对应的准确率。
  • 第二步:参数寻优:基于你业务中各参数的合理取值范围,用网格搜索或者ML.Net AutoML的超参数优化模块,遍历所有合法的参数组合,找到预测ResultAccuracy最接近100%的参数组合即可。

注意事项

  • 提取到的最优参数组合需要和实际生产的验证数据做交叉校验,避免过拟合导致的参数无效
  • 如果参数存在业务约束(比如InstrumentTempreture不能超过60℃),需要在统计或搜索阶段提前过滤不符合约束的样本/参数组合

内容的提问来源于stack exchange,提问作者GarethReid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 01:12:01