在数据科学领域,机器学习和统计学经常被提及,但它们之间的关系和区别常常令人困惑。本文将探讨五个关于机器学习的常见误区,并试图澄清这些概念。
许多人认为机器学习模型与统计模型是截然不同的。然而,这种观点并不完全正确,甚至可能具有误导性。实际上,广泛使用的统计模型与机器学习模型在很多情况下并没有本质区别。例如,线性回归或分类算法在机器学习中使用的模型与SAS、SPSS等统计软件包中使用的模型并没有不同。它们都基于相同的统计模型,并需要相同的假设。
例如,使用scikit-learn库进行简单线性回归,使用的是与统计软件包相同的最小二乘优化方法,基于相同的假设,如特征的独立性。
值得注意的是,机器学习模型中也包括了一些在大数据集上表现良好的数值方法,如随机梯度下降算法,这是与传统统计软件包的一个主要区别。如果想使用随机梯度下降方法进行线性回归,那么应该使用scikit-learn库中的SGDRegressor或SGDClassifier类。
此外,认为机器学习模型必须使用大数据集,因此必须使用与统计模型不同的求解器,这是一种误解。实际上,机器学习模型如线性回归完全可以使用样本数据集进行训练,并且效果良好。
在统计学中,使用样本数据来推断总体特征,这是基于中心极限定理的。评估使用样本数据构建的模型的“统计有效性”。
对于机器学习模型,同样需要评估模型结果的“统计有效性”。例如,使用机器学习分析两个变量之间的关系时,最终得到的是一些系数和截距。需要使用测试数据集来测试模型,并得到与训练数据集相同的输出。但是,这些值的相关性如何?仅仅因为使用了整个数据集,并不意味着不需要对模型的有效性进行推断。
统计量如决定系数、p值等是理解模型有效性所必需的,这并不随着训练数据集的大小而改变,因为它们依赖于变量的性质、概率分布、相互依赖等。这些特征无论训练数据集的大小如何,都是相同的。
这是一个常见的误区。实际上,数据科学家需要具备统计学、线性代数、高等数学和微积分、机器学习库、Python或等效语言、SQL、ETL工具和基于云的ML管道知识等多方面的专业知识。
例如,如果处理的是一个具有许多特征的数据集,并且发现独立变量之间存在高度的多重共线性,即使使用了整个数据集,回归模型也会失败。换句话说,即使在机器学习中使用了整个总体数据集,也不能解决多重共线性等问题。
可能需要使用主成分分析来进行降维。需要知道PCA是否可以使用,如果使用,应该选择多少个成分。这需要了解Bartlett球形度检验。可能从Python中得到卡方检验的p值,但如何评估这个数字?如果检验表明可以使用PCA,需要一个碎石图、Kaiser规则等,这不仅需要了解统计推断方法,还需要了解SVD(从SVD派生的条件指数可以建议PCA的需求)和特征向量等线性代数概念。
在数据科学领域,这通常不是真的——这只对一些涉及认知领域的算法(如图像、语音、音频、视觉等)是正确的。在回归等定量模型的情况下,一旦模型构建完成,结果就基于模型获得。除非重新训练模型,否则模型将保持不变。
由于假设模型是使用总体数据集构建的,任何新数据都只应该模仿训练数据集(即测试数据集和生产数据),并且应该具有与训练数据集相同的特征。因此,不能根据生产数据改变模型。因此,机器学习模型没有演变,因此实际上没有涉及学习。说机器学习模型允许机器随时间学习是一种误称。
然而,这种说法在AI相关算法的情况下是适用和正确的,其中模型的性能随着训练数据集的大小而提高。
机器学习作为一个独立的领域,多年来发展迅速,以促进现实世界的问题解决和决策。对于那些在机器学习和统计模型中算法或方法相同的问题,机器学习库相对于统计软件包的主要优势在于将这些模型应用于现实世界的问题。