以上两种算法可用于评估变量的重要性. 利用特征向量,我们如何知道哪个特征对分类器的准确性有更大的贡献?二进制决策树可以解决此问题: 每个节点选择最能够拆分数据的变量. 顶部变量是最重要的变量,第二层变量是次重要的,依此类推. 随机森林使用Leo Breiman发明的计数来衡量变量的重要性. 该技术可以用于任何分类器,但是在OpenCV中,只有决策树和随机森林才能实现此计数.

可变重要性的一种用法是减少分类器需要考虑的特征数量. 开始时,有很. 您训练分类器,发现其中一个功能与其他功能相关. 您可以删除一些不重要的功能. 排除不重要功能的功能可能具有极高的速度,可以更快地进行训练和测试. 另外,如果没有足够的数据,则删除不重要的变量可以提高分类器的准确性. 这样也可以使处理速度更快,效果更好.
Breiman可变重要性算法的步骤如下.
1. 使用训练集训练分类器
2. 使用验证集或测试集确定分类器的准确性.
3. 对于每个数据样本和一个选定的特征,请在其他特征数据中随机选择要替换的特征值(替代采样方法). 这样可以确保特征的分布与原始数据集相同,但是特征的结构或含义将被删除(因为其值是从其余数据中随机选择的).
4. 使用更改后的训练集来训练分类器,然后使用更改后的测试集或验证集来评估分类器. 如果完全破坏该功能会降低准确率,则此功能非常重要. 混沌功能不会使准确率降低太多,因此此功能不是很重要,可以考虑将其删除.
5. 将原始数据更改为另一个功能,然后根据3和4进行操作. 在分析完所有功能之前,结果就是每个功能的重要性.
此过程内置于随机森林和决策树中,因此您可以使用它们来确定将哪些变量用作特征,然后使用简化的特征向量来训练分类器.
充分利用机器学习,不仅是技术,而且是艺术. 算法通常“有时”使用,但与要求不完全一致. 这就是艺术所在: 您需要指出存在问题的地方并解决问题. 尽管我不在这里详细说明,但我将列出一些常见问题. 首先介绍一些重要的规则: 大量数据胜于少量数据;好的功能比好的算法更重要. 如果选择功能好,最大化其独立性并最小化它们在不同环境中的变化,那么大多数算法都可以得到更好的结果. 此外,还有两个经常遇到的问题.
拟合不足: 模型假设过于严格,因此无法将模型拟合到实际数据中.
过度拟合: 该算法不仅学习数据,而且还学习噪声作为信号,因此泛化能力较差.

有时,您需要注意是否正在解决要解决的问题. 如果训练和测试结果良好,但是该算法在实际应用中效果不佳,则可以从非真实条件中获取表名称数据集,是的,也许是因为这些条件使得在测试时更容易模拟这些数据采集. 如果该算法无法重现训练集或测试集,则表名存在问题,或者算法从数据中提取的特征无效,或者有用信息不在收集的数据中.
机器学习中遇到的问题和可能的解决方案,采用更好的功能对任何问题都有帮助
欠拟合: 使用更简化拟合,选择学习能力更好的拟合算法
过度拟合: 增加训练数据的数量可以使拟合曲线更平滑,减少特征数量可以减少过度拟合的程度,并使用学习能力较差的算法
培训和测试更好,但实际应用效果不好: 收集更多真实数据;
模型无法学习数据: 重新选择特征以使特征更能表达数据的不变特征;收集更新的,更相关的数据,并选择具有更好学习能力的拟合算法.
最后,介绍一些评估机器学习结果的工具. 在监督学习中svm测试数据集,最基本的问题之一是了解算法的性能: 分类器是否准确?您可能会说“简单,我只需要在集合或验证集合上运行以下测试,然后即可得到结果. ”但是在实际情况下,在使用误差和采样误差之前,我们必须考虑噪声. 测试或验证集可能无法准确反映数据的真实分布. 为了更准确地评估分类器的性能,我们可以使用交叉验证(cross-validation)计数或与之相似的自采样方法.
交叉验证首先将数据分为k个不同的子集. 然后,它使用k-1个子集进行训练,并使用不用于训练的子集进行测试. 这完成了k次(每个子集都有机会执行测试集),然后取平均结果.
自采样方法与交叉验证方法相似,但是验证集是从训练集中随机选择的. 选择的点仅用于测试,不用于训练. 进行N次,每次随机选择一些验证集,最后对获得的结果进行平均. 这意味着一些数据样本将出现在不同的验证集中,并且自取样效果通常要好于交叉验证.
使用这些技术中的任何一种都可以使实际效果评估更加准确,并且可以使用更高的准确性来指导学习系统参数的调整. 重新培训,重新评估,然后进行调整,等等.
在评估和调整分类器的方法中,有两种更有用的方法. 它们是ROC曲线和混淆矩阵. ROC曲线评估了分类器参数转换对分类器性能的影响. 假定此参数为阈值. 更具体地说,如果我们需要在图中识别,则检测器使用阈值来定义. 阈值设置得很高,这意味着我们的分类器的错误识别率是0. 同事的正确识别率也将是0. 另一方面,如果阈值设置得很低,则意味着所有信号被识别为. 分类器的错误识别率为100%,同事的正确识别率为100%. 最佳的ROC曲线是沿着Y轴从原点上升到100%,然后沿着X轴到达折线的右上角. 如果无法做到这一点,则曲线越靠近左上角越好. 我们可以计算出ROC曲线. 下面的面积与整个ROC图表的面积之比接近1,表明分类器更好.
让我们讨论对错误类别进行分类的费用. 假设我们要设计一个分类器来检测有毒蘑菇. 我们希望错误拒绝率(食用蘑菇被认为是有毒的)很大,而错误识别率(认为食用蘑菇(有毒的)非常小. ROC曲线可以处理这种情况: 我们设置ROC参数以使另一种方法是在生成ROC曲线时为错误识别分配更大的权重. 您可以将每个错误的识别权重设置为错误拒绝权重的10倍. 某些OpenCV算法(例如决策树和支持向量机可以通过指定类别的先验概率或单个训练样本的权重来自动平衡“命中率和”. 误报率“
训练分类器的另一个问题是特征向量中特征的方差不一致. 例如,如果某个功能由小写ASCII字母表示,则该功能最多可包含25个值. 这里的区别是显微镜上载玻片上的生物细胞数以亿计. 类似于k-means算法的一类算法将认为第一个特征与第二个特征相比可忽略不计. 解决此问题的方法是预处理每个特征变量,使它们的方差一致. 如果功能不相关,则此步骤很重要;如果功能相关,则可以使用其协方差或平均方差进行归一化. 一类算法(例如决策树)不受方差不一致的影响,因此不会进行事先处理. 如果该算法使用距离度量作为标准,则必须事先对方差进行归一化. 我们可以使用马氏距离来归一化特征方差.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-181569-2.html
中国人所有内脏都吃
肯定是开了没封好
既然是蛆只能是封装时候进去的