机器学习函数库Scikit-learn 1.0,加入关键字参数和线上OneClass SVM算法

从2007年发展至今的Python机器学习函数库Scikit-learn,终于发布1.0版本,这代表该版本已经拥有足够的稳定性,用户已经可用于生产环境中。的确,官方在第一个主要版本,把更新重点摆在稳定性,使多项用户常用功能更加强健,并让Scikit-learn可以应对更多复杂使用场景。

而在功能更新上,第一项scikit-learn的重要更新便是关键字参数,官方解释,scikit-learn API提供许多需要输入大量参数的函数和方法,但是过多的参数常会造成混淆,阅读程序代码的人需要搞懂每个参数的位置和意义。

而官方为了提高scikit-learn程序代码的可读性,现在用户需要提供大多数参数的名称,作为关键字参数,而非原本以位置作为识别方法的位置参数。这样的改动更具可读性,位置参数从0.23版本已经被弃用,现在则会出现类型错误。

另外,官方在新类别SGDOneClassSVM,加入了使用随机梯度下降方法,实例的One-Class SVM线上线性版本OneClassSVM。One-Class SVM是用来检测异常资料的算法,而结合核心逼近技术,SGDOneClassSVM可用来逼近在OneClassSVM中,实例的核心化One-Class SVM的解,其运算时间的复杂度和样本数量呈线性关系。

官方提到,由于核心化One-Class SVM的复杂度,最好为样本的二次方,所以SGDOneClassSVM适合用于样本数大于一万的大量训练资料集,其中的SGD变体能够快上几个数量级。