Machine learning 在使用某个数据集后,如何证明我的结果?
Machine learning 在使用某个数据集后,如何证明我的结果?,machine-learning,statistics,classification,Machine Learning,Statistics,Classification,在将一些数据挖掘算法应用于一组数据之后,我想知道是否还有其他方法来证明我的结果的正确性。当我说数据挖掘算法时,我说的是如果你有很多例子,一个简单的方法是将可用数据分成三个分区:
培训数据(约50%-60%的可用示例,随机选择)
验证数据(20%-25%)
测试数据(20%-25%)
训练数据用于调整数据挖掘算法的参数
通过验证数据,您可以比较模型/算法/参数并选择赢家
测试数据可以让您预测获胜者在“现实世界”中的表现,因为它们是独立的(在培训/验证阶段,您不会根据测试数据做出任何选择)
无论
在将一些数据挖掘算法应用于一组数据之后,我想知道是否还有其他方法来证明我的结果的正确性。当我说数据挖掘算法时,我说的是如果你有很多例子,一个简单的方法是将可用数据分成三个分区:
- 培训数据(约50%-60%的可用示例,随机选择)李>
- 验证数据(20%-25%)李>
- 测试数据(20%-25%)
训练数据用于调整数据挖掘算法的参数
通过验证数据,您可以比较模型/算法/参数并选择赢家
测试数据可以让您预测获胜者在“现实世界”中的表现,因为它们是独立的(在培训/验证阶段,您不会根据测试数据做出任何选择)
无论如何,有很多方案,也许深入研究这个问题的最好地方是有几种方法可以证明你的结果的正确性。首先,您必须选择性能标准
算法精度
结果的标准偏差
计算时间
基于这两个标准,您必须采用不同的机制来证明算法的正确性
1。算法的准确性
对于这一点,你必须理解,当你说我的算法的准确度是XY.WZ%时,有什么问题
第一个问题,您的算法是否因为过度拟合而提供更好的结果?
为了避免算法过度拟合,可以将数据分为三部分
训练数据
验证数据
测试数据
通过这样做,如果您得到了良好的测试结果,您可以确保您的算法没有过适合。如果训练和测试的准确度之间存在很大差异,那就是过度拟合的迹象
如果你发现你的算法过于合适怎么办
可以使用几种正则化技术来保持权重系数的值较低,并有助于防止过度拟合。你可以在coursra的Andre N.G关于机器学习的讲座中了解更多
第二个问题,您的数据集选择是否公平
假设您有100个数据集,并将其划分为50-30-20组(训练验证测试)。现在的问题是哪50个用于培训,哪30个用于验证等等。因此,对于这些数据集的不同-2选择,您将得到不同的-2精度值。所以,你应该取5-10个不同的-2组,然后提供结果的平均值。这种技术称为交叉验证技术
另一种证明算法正确性的方法是在多类分类的情况下提供混淆矩阵,在二进制分类的情况下提供灵敏度和特异性。你可以看看他们的维基页面
2。结果的标准偏差
如果您的算法基于随机总体生成或基于启发式,那么您很可能在每次运行算法时得到不同的解决方案。在这种情况下,您应该通过算法提供相同数据集和相同参数设置上多次运行的标准偏差
3。算法的计算时间
这可能不是每种情况下都很重要,但如果您要将您的算法与其他算法进行比较,那么您应该提供计算时间的比较,但是这与您的算法的正确性无关,但它确实提供了算法的全面性 经验证的结果有什么好处?
最多您将能够证明您的实现与某些理论数学模型匹配,或者近似算法与该数学模型近似
但在实践中,实际数据无论如何都不会满足您的数学假设
通常,最好的证明是:它有效吗
也就是说,基于真实的、看不见的数据。不是在你用来选择参数的数据上,因为这样你很容易过度拟合。证明有一个非常正式的意义,我怀疑你的意图。你能说得更具体些吗?你想表现出一致性吗?表明该方法的准确度不能低于x?保证运行时间?估计最坏情况下的性能?近似结果永远不会“正确”,但可以“准确”。“高精度”并没有通用的定义,所以你无法在这里证明多少。你能澄清一下你到底想展示什么吗?@BenAllison我想证明(形式意义上)我的结果是正确的,我不知道我能证明metoth的准确度不能低于某个x,我该怎么做?看看为你关心的任何性能统计构建一个置信区间。小心统计假设!