大前端

scikit-learn实现近邻算法分类的示例

算法

scikit-learn实现近邻算法分类的示例

scikit-learn库 scikit-learn已经封装好很多数据挖掘的算法 现介绍数据挖掘框架的搭建方法 * 转换器(Transformer)用于数据预处理,数据转换 * 流水线(Pipeline)组合数据挖掘流程,方便再次使用(封装) * 估计器(Estimator)用于分类,聚类,回归分析(各种算法对象) * 所有的估计器都有下面2个函数 * fit() 训练 * 用法:estimator.fit(X_train, y_train), * estimator = KNeighborsClassifier() 是scikit-learn算法对象 * X_train = dataset.data 是numpy数组 * y_train = dataset.target 是numpy数组 * predict() 预测 * 用法:estimator.predict(X_test) * estimator = KNeighborsClassifier(

By Ne0inhk
二分查找-排序-递归-算法实现

算法

二分查找-排序-递归-算法实现

# 查找元素在列表中的位置 def binary_search(lst, item): low = 0 # low和high用于跟踪要在其中查找的列表部分 high = len(lst)-1 while low <= high: #←-------------只要范围没有缩小到只包含一个元素, mid = (low + high) // 2 #←-------------就检查中间的元素 guess = lst[mid] if guess == item: #←-------------找到了元素 return mid if guess > item: #←-------------猜的数字大了 high = mid - 1 else: #←---------------------------猜的数字小了 low = mid + 1 return None #←-------------------

By Ne0inhk
豆瓣高分!万人期待的《算法图解(第2版)》终于来了!

算法

豆瓣高分!万人期待的《算法图解(第2版)》终于来了!

著名计算机科学家 Niklaus Wirth 曾说过:程序=数据结构+算法。数据结构是程序的骨架,而算法则是程序的灵魂。二者缺一不可,相辅相成。 数据结构提供了存储和组织数据的框架。算法则定义了在这个框架内如何操作数据以实现特定的功能。没有良好的数据结构,算法可能无法高效运行;而没有算法,数据结构也无法发挥其应有的作用。因此,程序设计不仅仅是编写代码,更重要的是设计合适的数据结构和算法来解决实际问题。 算法涉及的知识复杂、抽象且内容庞大,这也难怪有些算法名著动不动都是几百页起的大部头。内容有难度,而且坚持学习下去也需要一定的勇气。 如果有一本书可以将算法里的重点难点拆解并用图的方式展示给你,内容就像小说一样,让你看完一页还想继续往下看,这样的书,是不是所有算法学习困难者的心之所想。 《算法图解》就是这样一本书,它用最朴实的语言讲明白了数组、栈、图、基础数据结构等算法基础知识。算法部分更是图示步骤、原理解析超级详细。很多算法例子都是根据示例场景进行的,比如地图最短路径,大数据分析,AI 等。举例的同时还会为大家分析算法的执行效率。 这本不可多得,深受读者喜爱的好书如今销量已经

By Ne0inhk
机器学习中的CatBoost算法

python

机器学习中的CatBoost算法

我们经常遇到包含分类特征的数据集,为了将这些数据集拟合到Boosting模型中,我们对数据集应用各种编码技术,例如One-Hot编码或标签编码。但是应用One-Hot编码会创建一个稀疏矩阵,这有时可能导致模型的过拟合,我们使用CatBoost来处理这个问题。CatBoost可以自动处理分类特征。 什么是CatBoost CatBoost或Categorical Boosting是由Yandex开发的开源boosting库。它被设计用于具有大量独立特征的回归和分类等问题。 Catboost是梯度提升的一种变体,可以处理分类和数值特征。它不需要任何特征编码技术,如One-Hot Encoder或Label Encoder将分类特征转换为数值特征。它还使用了一种称为对称加权分位数草图(SWQS)的算法,该算法自动处理数据集中的缺失值,以减少过拟合并提高数据集的整体性能。 CatBoost的特点 * 用于处理分类特征的内置方法 - CatBoost可以处理分类特征,而无需任何特征编码 * 处理缺失值的内置方法 -与其他模型不同,CatBoost可以轻松处理数据集中的任何缺失值 *

By Ne0inhk
YYDS!哈工大博士的大数据算法笔记火了!!

算法

YYDS!哈工大博士的大数据算法笔记火了!!

目前算法领域的创新机会依然比较多,随着算法领域的“轮子”越来越丰富,算法的行业场景创新将迎来爆发期。 算法的精妙在于它可以凭借对海量数据特征的高效抽取,实现“媲美人类水平”的建模。 无论搞前后端开发或者数据开发的人来说,算法是迟早要接触的,也是一定要了解的。 作为一名知识区的up主,经常会收到很多小伙伴们的问题之一就是「有没有关于算法方面学习资料?」 最近我们团队花费了几个月,给大家整理了两份非常权威的学习资源,帮助小伙伴夯实算法工程师基本功! 资源一:《算法工程师必知必会的框架从0到1》(视频\代码\PPT) 本资料出品人:毕业于985博士--徐风,算法专家,现BAT大厂算法组leader与校招、社招核心面试官。能有一位这样的学术届与工业届双开花的大佬教程陪伴,完成从学校到职场的过渡。 这份资料就不一一展开,截取框架学习部分目录大家感受下。 如何领取电子版pdf + 配套源代码? 👇扫码下方二维码 如果你决心要在IT、算法领域深耕,那么算法底层方面的知识坚决不可跨越的,欲速则不达。通过实战让你掌握各种算法开源框架。 资源二:一本口碑极佳的数据算法中文版书籍——

By Ne0inhk
python数据分析从入门到进阶:分类算法:下(含详细代码)

算法

python数据分析从入门到进阶:分类算法:下(含详细代码)

🍁1.前言 在上一篇文章中,我们介绍了如何对mnist数据集建立一个二分类模型,我们当时解决的问题是给我一张图片,判断是否是数字7,但是我们不仅仅对数字7感兴趣,我们希望给我一张任意的图片,计算机能告诉我这张图片是数字几。这是一个多分类问题。一些算法(如SGD分类器、 随机森林分类器和朴素贝叶斯分类器)能处理多个类。其他(如logistic回归)是严格的二元分类器。但是我们可以通过一些策略来实现使用二分类器进行多分类 * OvR:一种方法是对于0-9十个类别,我们对每个类建立一个二分类器。判断是否属于该类,具体实现方法是,给我一张图片,分别使用这十个分类器预测属于该类的概率。选择概率最大的那一类作为预测结果 * OvO:另一种方法是对于0-9十个类别,每一次选两个类别进行比较,比较属于哪一类的概率更大。对于minist数据集,则必须在所有45个分类器进行比较,看看哪个类赢的最多。OvO的主要优点是,每个分类器只需要在训练集的一部分进行训练,即选择需要区分的两个类的数据集。然而,对于大多数二进制分类算法,OvR是首选。 当我们使用二分类器来处理多分类任务时,sklearn会自

By Ne0inhk
详解线性回归算法的纯Python实现

算法

详解线性回归算法的纯Python实现

↑↑↑关注后"星标"简说Python人人都可以简单入门Python、爬虫、数据分析 简说Python推荐  来源|天池大数据科研平台作者|黄佳 零基础学机器学习——一文详解线性回归算法的纯Python实现 本文作者:黄佳,新加坡埃森哲公司高级顾问,人工智能专家,机器学习和云计算高级工程师,参与过公共事业、医疗、金融等多领域大型项目。著有《零基础学机器学习》,《SAP程序设计》,《SAP高级应用开发》,《SAP业务数据传输指南》。 写在前面 大家好,说到牛年春晚,最吸引眼球的并不是哪一位明星,而是这个超级酷炫的“AI拓荒牛”。 看起来如此高大上,如此梦幻的机器“牛”,它们的“智能”是怎么实现的,其实背后的核心算法离不开机器学习。 说到机器学习,大家可能会马上联想到艰深的算法,复杂的公式和高等数学。的确,算法和高等数学确实是机器学习时的基础知识储备。不过,我们也可以用比较浅显易懂的方法介绍一些机器学习相关的入门内容和基础算法。你会惊奇的发现入门机器学习并没有想象中那么高的门槛。 那么何为机器学习? 机器学习的关键内涵之一在于「利用计算机的运算能力从大量的数据中发

By Ne0inhk
scikit-learn决策树算法笔记总结

算法

scikit-learn决策树算法笔记总结

1. scikit-learn决策树算法类库介绍 scikit-learn决策树算法类库内部实现是使用了调优过的CART树算法,既可以做分类,又可以做回归。分类决策树的类对应的是DecisionTreeClassifier,而回归决策树的类对应的是DecisionTreeRegressor。两者的参数定义几乎完全相同,但是意义不全相同。下面就对DecisionTreeClassifier和DecisionTreeRegressor的重要参数做一个总结,重点比较两者参数使用的不同点和调参的注意点。 2. DecisionTreeClassifier和DecisionTreeRegressor重要参数调参注意点 为了便于比较,这里我们用表格的形式对DecisionTreeClassifier和DecisionTreeRegressor重要参数要点做一个比较。 参数DecisionTreeClassifierDecisionTreeRegressor特征选择标准criterion可以使用"gini"或者"entropy",前者代表基尼系数,后者代表信息增益。一般说使用默认的基尼系数"

By Ne0inhk
机器学习第三篇:详解朴素贝叶斯算法

算法

机器学习第三篇:详解朴素贝叶斯算法

简说Python推荐来源:俊红的数据分析之路 作者:张俊红 我的2020总结,戳图片,留言抽大奖 大家好,我是老表~ 一、统计知识 01|随机事件: 1、概念 随机事件是在随机试验中,可能出现也可能不出现,而在大量重复试验中具有某种规律性的事件叫做随机事件(简称事件)。随机事件通常用大写英文字母A、B、C等表示。随机试验中的每一个可能出现的试验结果称为这个试验的一个样本点,记作ωi。全体样本点组成的集合称为这个试验的样本空间,记作Ω.即Ω={ω1,ω2,…,ωn,…} 随机事件中的事件形式可能由各种形式,比如{"正面","反面"},{"优","良","差"}。 2、条件概率 P(

By Ne0inhk
算法学习二,红黑树查找算法

算法学习二,红黑树查找算法

在红黑树的实现中,处理删除操作是一个复杂的过程,特别是当涉及到删除黑色节点时。红黑树的删除操作需要保持树的平衡和性质(即每条路径上的黑色节点数量相同)。以下是对红黑树删除操作的详细解释,特别是针对删除黑色节点的情况。 删除操作概述 删除节点:首先找到并删除目标节点。 重新平衡:如果删除的节点是红色,则不需要调整树的结构。但如果删除的是黑色节点,则需要进行重新平衡,以保持红黑树的性质。 重新平衡步骤 当删除一个黑色节点时,可能会导致树失去平衡,因为删除黑色节点会减少一条路径上的黑色节点数量。红黑树的重新平衡操作包括以下几种情况: 兄弟节点是红色: 将父节点和兄弟节点颜色互换。 对父节点进行左旋或右旋。 更新旋转后的新兄弟节点为黑色。 兄弟节点是黑色,且两个子节点都是黑色: 将兄弟节点设为红色。 如果父节点也是黑色,则继续向上调整。 如果父节点是红色,则将父节点设为黑色并结束调整。 兄弟节点是黑色,且有一个红色的左(右)子节点: 将父节点和兄弟节点颜色互换。 对兄弟节点进行右旋或左旋。 将旋转后的新兄弟节点设为黑色,并对新兄弟节点的另一个子节点进行左旋或右旋。

By Ne0inhk