imba

常见机器学习算法背后的数学

三世轮回 提交于 2021-02-14 12:13:45
不同的机器学习算法是如何从数据中学习并预测未见数据的呢? 机器学习算法是这样设计的,它们从经验中学习,当它们获取越来越多的数据时,性能就会提高。每种算法都有自己学习和预测数据的方法。在本文中,我们将介绍一些机器学习算法的功能,以及在这些算法中实现的有助于学习过程的一些数学方程。 机器学习算法的类型 机器学习算法大致可以分为以下四类: 监督学习:预测的目标或输出变量是已知的。这些算法生成一个函数,该函数将输入映射到输出变量。回归和分类算法属于这一类。在回归中,输出变量是连续的,而在分类中,输出变量包含两个或更多的离散值。一些监督学习算法包括线性回归,逻辑回归,随机森林,支持向量机,决策树,朴素贝叶斯,神经网络。 无监督学习:目标或输出变量是未知的。这些算法通常对数据进行分析并生成数据簇。关联、聚类和维数约简算法属于这一类。K-means聚类、PCA(主成分分析)、Apriori算法等是非监督学习算法。 半监督学习:它是监督和非监督学习方法的结合。它使用已知数据来训练自己,然后标记未知数据。 强化学习:机器或代理被训练从“试错”过程中学习。机器从过去的决策经验中学习,并利用它的学习来预测未来决策的结果。强化学习算法的例子有Q-Learning, Temporal Difference等。 线性回归 线性回归是通过拟合数据点上的最佳直线来预测连续变量的结果

NLP任务中的文本预处理步骤、工具和示例

佐手、 提交于 2021-02-12 19:34:34
数据是新的石油,文本是我们需要更深入钻探的油井。 文本数据无处不在, 在实际使用之前,我们必须对其进行预处理,以使其适合我们的需求。对于数据也是如此,我们必须清理和预处理数据以符合我们的目的。这篇文章将包括一些简单的方法来清洗和预处理文本数据以进行文本分析任务。 我们将在Covid-19 Twitter数据集上对该方法进行建模。这种方法有3个主要组成部分: 首先,我们要清理和过滤所有非英语的推文/文本,因为我们希望数据保持一致。 其次,我们为复杂的文本数据创建一个简化的版本。 最后,我们将文本向量化并保存其嵌入以供将来分析。 第1部分:清理和过滤文本 首先,为了简化文本,我们要将文本标准化为仅为英文字符。此函数将删除所有非英语字符。 def clean_non_english(txt): txt = re.sub(r'\W+', ' ', txt) txt = txt.lower() txt = txt.replace("[^a-zA-Z]", " ") word_tokens = word_tokenize(txt) filtered_word = [w for w in word_tokens if all(ord(c) < 128 for c in w)] filtered_word = [w + " " for w in filtered_word] return ""

NLP任务中的文本预处理步骤、工具和示例

南楼画角 提交于 2020-10-29 17:32:18
作者 | Viet Hoang Tran Duong 来源 | DeepHub IMBA 头图 | CSDN付费下载于视觉中国 数据是新的石油,文本是我们需要更深入钻探的油井。文本数据无处不在,在实际使用之前,我们必须对其进行预处理,以使其适合我们的需求。对于数据也是如此,我们必须清理和预处理数据以符合我们的目的。这篇文章将包括一些简单的方法来清洗和预处理文本数据以进行文本分析任务。 我们将在Covid-19 Twitter数据集上对该方法进行建模。这种方法有3个主要组成部分: 首先,我们要清理和过滤所有非英语的推文/文本,因为我们希望数据保持一致。 其次,我们为复杂的文本数据创建一个简化的版本。 最后,我们将文本向量化并保存其嵌入以供将来分析。 清理和过滤文本 首先,为了简化文本,我们要将文本标准化为仅为英文字符。此函数将删除所有非英语字符。 def clean_non_english(txt): txt = re.sub(r'\W+', ' ', txt) txt = txt.lower() txt = txt.replace("[^a-zA-Z]", " ") word_tokens = word_tokenize(txt) filtered_word = [w for w in word_tokens if all(ord(c) < 128 for c in w)]

二分查找会更快吗?Python中的二分查找与线性查找性能测试

大兔子大兔子 提交于 2020-10-22 06:14:35
当您要检查某个元素是否在列表中时,有很多方法可以解决相同的问题。可以通过线性查找和二分查找来完成,但是要猜测哪个更快。 为什么? 如果你最近参加过面试,你就会知道二分查找是面试官的最爱。 您为什么要花时间学习二分查找?C ++编程朋友可能已经告诉过您。Python很慢。您想确保自己的程序不会比所需的速度慢。 学习Python时,您将学习进行线性查找以检查元素是否在列表中。当您学习编码时很好,但是如果列表中有60.000.000个元素会发生什么呢? 如果在包含11个元素的列表中进行线性查找,则必须遍历所有11个元素。如果您使用二分查找,最终可能要进行2次迭代,具体取决于您要查找的内容。请参见下面的图形。 显而易见,哪种方法更快。 开始学习Python时,您很可能已经使用了一百次列表。检查列表中是否有一个值是一项正常的任务,您之前已经看到过: my_list = [1,2,3,3,5,11,12] if 11 in my_list: return Truereturn False 或者 my_list = [1,2,3,3,5,11,12] for each in list: if each==11: return Truereturn False 让我们开始看看如何实现二分查找。 怎么做? 让我们看看二分查找是如何工作的。 首先,我们需要确保列表是有序的。您可以使用.sort(

用 Python 详解《英雄联盟》游戏取胜的重要因素!

烂漫一生 提交于 2020-10-03 06:37:12
作者 | DeepHub IMBA 责编 | 王晓曼 介绍 在过去的几年里,电子竞技社区发展迅速,曾经只是休闲娱乐的电子竞技产业,到2022年有望创造18亿美元的收入。 虽然在这个生态系统中有很多电子游戏,但很少有游戏像《英雄联盟》那样成为社区的主要元素,该游戏在2019年世界锦标赛期间吸引了超过1亿的独立观众。 《英雄联盟》于2009年底发行,是一款免费的多人在线战斗竞技场(MOBA)视频游戏,由 Riot Games 公司开发,这款游戏在早期就产生了广泛的竞争场景,2011年的第一届世界冠军创造了约160万观众。 随着 Riot 开始了解如何改变才能使游戏更具竞争性和趣味性,这款游戏在受欢迎程度和可玩性方面都有所提高。 在《英雄联盟》的比赛中,两队各有五名玩家,每一队都控制着一个独特的角色或“冠军”,当其中一队位于其基地深处的 Nexus 被摧毁时,比赛就会结束。 在这个过程中,一个团队可以实现很多目标,比如摧毁炮塔,杀死中立的怪物,比如龙和男爵,以获得整个团队的增益,等等。 有些目标,如摧毁至少五个炮塔和一个兵营,是赢得游戏所必需的,而其他目标,如获得第一滴血,是有益的,但不是必须的。 通过这个项目,我想更好的了解这些目标中哪一个是赢得英雄联盟游戏最重要的。就此而言,我提出的问题如下: 英雄联盟最重要的获胜条件是什么? 收集数据 我首先申请了一个使用 Riot

2020排行榜!Realworld前端框架的比较

被刻印的时光 ゝ 提交于 2020-07-28 18:30:29
全文共1500字,预计学习时长6分钟 图源:unsplash 过去的三年我们都探讨了这个话题,那么今年的情况会是怎样呢? 首先声明,此文并不是关于未来前端选择的比较,而是从三个方面(性能,大小,相似应用下的代码行数)来进行小范围的简单比较。 读者需要注意: · 本文是在比较Realworld软件——而不是正在研发中的软件,这些软件通常缺乏足够的知识和想法,因此难以实现。 · 由专家撰写或评审过——理想情况下,该技术领域的专家会评估此项目。 · 以某种方式标准化—— 一个符合特定规则的项目存在一种规范,提供后端API,静态标记和样式。 正在比较哪些库/框架? 撰写此文时,Realworld存储库中有24种conduit实现As,它们之间的从属地位并不重要,唯一的判定标准是看它是否出现在RealWorld repo page上。 关注的是什么指标? 性能—此应用程序需要多长时间才能显示内容并可用? 大小—该应用程序有多大?我们将只比较已编译的JavaScript文件的大小。HTML和CSS对所有变体都是通用的,并且是从CDN(内容交付网络)下载的。所有技术都可以编译或转换为JavaScript,因此仅调整该文件的大小。 代码行数—需要多少行代码才能基于规范创建RealWorld应用程序?某些应用程序很麻烦,但应该不会产生重大影响。我们量化的唯一文件夹是每个应用程序中的src /