KernelML——一种广义机器学习算法

简介: 通过阅读本文,我们可以了解一个名为KernelML的Python软件包,该软件包旨在为分析师和数据科学家提供针对于复杂损失函数和非线性系数的广义机器学习算法。

最近,我创造了一个自定义的“粒子优化算法”,并制作了一个叫做KernelML的Python包。创造这种算法是为了给数据分析师和数据科学家提供一个针对复杂损失函数和非线性系数的广义机器学习算法。优化算法通过简单机器学习和概率模拟的组合,使用损失函数、输入和输出矩阵以及随机采样器(可选)来寻找最优参数。目前,我在研究更多功能,希望项目最终能够开源。

使用示例:

以经纬度坐标的聚类问题作为范例,K均值的聚类方法使用欧氏距离来区别观测值。但是,经纬度坐标间的欧氏距离并不能直接映射为Haversine距离。这意味着,如果将0和1之间的坐标进行归一化,则距离无法精确的在聚类模型中得以表示。最好的解决方案就是找到坐标投影,使该点质心的Haversine距离等于欧式空间中的投影距离。

9d0839c160c74420aa9d276474941b3ef02e8d94

以上坐标变换在聚类解决方案中的缩放和使用,将相对于中心的Haversine距离转化为欧式距离。

另一个更简单的问题是找到非线性系数的最优值,即最小二乘线性模型中的幂变换。这样做的原因很简单,整数的幂变换不容易得到最佳拟合变换。通过将幂变换转换成为任意实数,准确性大大提升,模型也能更好地验证数据。

fc5964c46cc01261088b650cb207972e4916e394

为了更好地解释幂变换的含义,上图提供了该模型的公式。

算法:

KernelML的核心思想很简单。在模型中使用参数更新历史记录来决定如何更新下一个参数集。在末端使用模型导致偏差变化问题,具体地说,参数偏差在每次迭代更新中变大。这个问题可以在每次迭代后解决,需要在最佳参数集周围进行蒙特卡洛模拟。

收敛问题:

该模型在每次迭代后保存最佳参数和用户定义的损失,同时还记录了所有参数的历史更新记录。但问题是如何使用这些数据来定义收敛。一个可能的解决方案的代码如下

convergence = (best_parameter-np.mean(param_by_iter[-10:,:],axis=0))/(np.std(param_by_iter[-10:,:],axis=0))
if np.all(np.abs(convergence)<1):
print('converged')
break

该公式使用最后10个参数和最佳参数创建Z分数。如果所有参数的Z分数小于1,那么该算法可以说已经收敛。当存在理论上最好的参数集时,这种收敛解决方案效果非常好。下面的例子是在使用该算法进行聚类时所遇到的问题

8b8e34dccc4c7e9555cac05e104527e1f6e91566

图1:使用KernelML,2-D多变量正态分布(蓝色),聚类解决方案(其他颜色)

我们不会深究聚类方案的质量,因为显然它不代表数据。聚类解决方案使多维直方图与6个正态分布的平均概率之间的差异达到最小,每个轴都是3。在这里,分布可以很容易地“交换”坐标点,这可能会增加收敛时间。也许有人会问,为什么不采用3-多元正态分布?模拟分布参数存在问题,因为一些参数具有约束条件。协方差矩阵需要是正的、半确定的,并且需要存在逆矩阵。正态分布中的标准差必须为正。该模型中使用的解决方案通过对每个单独参数进行自定义模拟来整合对参数的约束。

为什么采用KernelML而不是最大期望?

非正态分布(如泊松)可能不适合多元正态聚类解决方案中的其他维度。另外,随着维数的增加,一个聚类是具有非零值特征的唯一聚类的概率也增加。这对EM算法提出了一个问题,因为它试图更新协方差矩阵。唯一特征和其他维度之间的协方差将为零,或者另一个聚类接受具有此非零值的观察值的概率为零。

概率优化算法的优点:

参数的概率模拟与完全参数化的模型相比具有一些很大的好处。首先,正则化包含在先前的随机模拟中。例如,如果先前对参数的随机模拟在-1和1之间,则可以推论参数将以同样重要的方式更新。此外,在算法收敛的同时,每次迭代都会产生一组参数,以全局或局部最小损耗为样本进行采样。这有两个主要的好处:1)可以为每个参数建立置信区间;2)每个参数集的预测输出可以是统一模型中的有用特征。


数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!

本文由北邮@爱可可-爱生活老师推荐,阿里云云栖社区组织翻译。

文章原标题《Kernel Machine Learning (KernelML) - Generalized Machine Learning Algorithm》,译者:Anchor C.,审校:虎说八道。

文章为简译,更为详细的内容,请查看原文


相关文章
|
10天前
|
机器学习/深度学习 存储 Kubernetes
【重磅发布】AllData数据中台核心功能:机器学习算法平台
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
5月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
289 6
|
20天前
|
机器学习/深度学习 人工智能 自然语言处理
AI训练师入行指南(三):机器学习算法和模型架构选择
从淘金到雕琢,将原始数据炼成智能珠宝!本文带您走进数字珠宝工坊,用算法工具打磨数据金砂。从基础的经典算法到精密的深度学习模型,结合电商、医疗、金融等场景实战,手把手教您选择合适工具,打造价值连城的智能应用。掌握AutoML改装套件与模型蒸馏术,让复杂问题迎刃而解。握紧算法刻刀,为数字世界雕刻文明!
62 6
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于机器学习的人脸识别算法matlab仿真,对比GRNN,PNN,DNN以及BP四种网络
本项目展示了人脸识别算法的运行效果(无水印),基于MATLAB2022A开发。核心程序包含详细中文注释及操作视频。理论部分介绍了广义回归神经网络(GRNN)、概率神经网络(PNN)、深度神经网络(DNN)和反向传播(BP)神经网络在人脸识别中的应用,涵盖各算法的结构特点与性能比较。
|
3月前
|
机器学习/深度学习 人工智能 算法
机器学习算法的优化与改进:提升模型性能的策略与方法
机器学习算法的优化与改进:提升模型性能的策略与方法
605 13
机器学习算法的优化与改进:提升模型性能的策略与方法
|
2月前
|
人工智能 编解码 算法
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
|
3月前
|
机器学习/深度学习 算法 网络安全
CCS 2024:如何严格衡量机器学习算法的隐私泄露? ETH有了新发现
在2024年CCS会议上,苏黎世联邦理工学院的研究人员提出,当前对机器学习隐私保护措施的评估可能存在严重误导。研究通过LiRA攻击评估了五种经验性隐私保护措施(HAMP、RelaxLoss、SELENA、DFKD和SSL),发现现有方法忽视最脆弱数据点、使用较弱攻击且未与实际差分隐私基线比较。结果表明这些措施在更强攻击下表现不佳,而强大的差分隐私基线则提供了更好的隐私-效用权衡。
90 14
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
解锁机器学习的新维度:元学习的算法与应用探秘
元学习作为一个重要的研究领域,正逐渐在多个应用领域展现其潜力。通过理解和应用元学习的基本算法,研究者可以更好地解决在样本不足或任务快速变化的情况下的学习问题。随着研究的深入,元学习有望在人工智能的未来发展中发挥更大的作用。
|
4月前
|
算法
PAI下面的gbdt、xgboost、ps-smart 算法如何优化?
设置gbdt 、xgboost等算法的样本和特征的采样率
150 2
|
5月前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
116 1

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等