原文:
towardsdatascience.com/deep-learning-vs-data-science-who-will-win-103bfbad0a65
来源:作者图片
两位对手走进拳击场,每个人都声称自己处于上风。数据科学家拿出了一把银尺,深度学习开发者拿出了一把闪亮的锤子——谁会构建出最好的模型?
在我之前的工作中,我既担任过数据科学家,也担任过深度学习算法开发者。如果你问我两者之间的区别是什么,我得说这并不明显。
两者都处理数据和机器学习模型,并且两者使用类似的成功指标和工作原理。
那么,是什么让他们有所不同?
我认为这是态度问题。
我会大胆地概括,根据我的经验,深度学习开发者(尤其是初级开发者)往往更关注模型,而数据科学家则相反——他们分析和操作数据,使得几乎任何模型都能奏效。
或者,我应该进一步简化并说:
深度学习 = 模型导向
数据科学 = 数据导向
话虽如此,这些区别在近年来终于开始融合了。然而,在我看来,还不够快,因为各种方法可以并且应该相互受益。
话虽如此,一种方法肯定比另一种方法更重要——我可以证明这一点!
在这篇文章中,我将带你了解一个经典的机器学习项目的故事,这个故事说明了这些不同的方法(模型导向和数据导向),并突出了哪个方法占据主导地位。
当然,我会向你展示如何“解决”这个机器学习问题并构建一个强大且准确的模式。
问题设置
你是一名机器学习工程师,正在为一个知名银行的项目工作——“火星国际银行”。他们希望开发一个算法来区分两种类型的客户:普通客户和罪犯。
这些罪犯在他们的银行账户中做着各种可疑的活动,所以银行认为那里有一些有用的信息可以揭露他们。
简单到不能再简单了,对吧?
你告诉他们:“这只是一个简单的二分类问题——给我数据,我下午就能解决!”“你为什么不自己来做呢?”
他们告诉你,他们不知道如何大规模训练和推理模型,这就是为什么他们来找你。
好的。
那么,数据是什么样的呢?
他们给你提供了不同客户账户的快照。具体来说,是支票账户和储蓄账户的快照,以及最常使用的两张信用卡——总共4个账户。
简单得很。
但是,等等,还有个条件。
火星国际银行不能直接给你数据**。如果有人拦截并复制它,这将是一场可怕的数据泄露!
因此,他们采取了几步来“匿名化”数据:
-
没有标识符:他们不会为账户快照提供任何标识符——你不知道这些是不同的账户还是同一账户的不同快照。
-
转换后的数据:他们不会给你原始数据,因为这可能与攻击者可能获得的某些部分数据交叉引用,从而恢复更多关于他们其他账户的信息。相反,他们使用可逆的线性和非线性变换来转换数据。
将银行的转换数据想象成一个秘密代码——没有钥匙,攻击者将试图用缺少的碎片来解决一个谜题。幸运的是,他们给了你钥匙来帮助你完成这个项目。
银行提供了“撤销”他们应用的转换所需的信息。此外,他们说,由于转换是可逆的,“不应丢失任何信息。因此,这不应损害你的模型。”
在我们进入技术细节之前,我挑战你停下来思考一下:
你会如何处理这个问题?
在我们开始之前
我想确保你拥有完成这项工作所需的所有信息和代码,以便在本文中重现我的结果。因此,你需要安装一些包,设置一些导入,并在过程中定义一些常量和辅助函数。
我的目的是给你一些代码,你可以直接抓取、运行并随意玩弄。
好吧,回到项目上来。
1. 安装
你将使用一些很酷的库,所以你可能需要安装以下包:
[Fast KAN](https://github.com/ZiyaoLi/fast-kan/raw/master)– 这篇论文展示了一个非常强大的神经网络,它是Kolmogorov Arnold Networks (KAN)的一个变体,使用了径向基函数 (RBF)。它已知收敛非常快——因此得名。
git clone https://github.com/ZiyaoLi/fast-kan
cd fast-kan
pip install .
cd ..
-
[Umap](http://UMAP)– 这是一个很棒的降维技术!当你想要可视化高维数据时,强烈推荐使用。你的数据只有4个维度,但这种方法应该仍然有帮助。 -
[tqdm](https://tqdm.github.io/)– 这是一个我在训练神经网络时喜欢使用的库,它可以帮助我保持理智。它提供了一个进度条,这是极其重要的。
当然,你还需要许多常规库:[torch](https://pytorch.org/get-started/locally/)、[scikit-learn](https://scikit-learn.org/1.5/install.html)、[matplotlib](https://matplotlib.org/stable/install/index.html)、[numpy](https://numpy.org/install/)等。
2. 导入、常量和种子
你想要以有组织的方式进行工作,所以你从一些导入、常量和种子开始,以确保可重复性。
628

被折叠的 条评论
为什么被折叠?



