大前端

用Python算法预测客户行为案例!

算法

用Python算法预测客户行为案例!

这是一份kaggle上的银行的数据集,研究该数据集可以预测客户是否认购定期存款y。这里包含20个特征。 1. 分析框架 2. 数据读取,数据清洗 # 导入相关包 import numpy as np import pandas as pd # 读取数据 data = pd.read_csv('./1bank-additional-full.csv') # 查看表的行列数 data.shape 输出: 这里只有nr.employed这列有丢失数据,查看下: data['nr.employed'].value_counts() 这里只有5191.0这个值,没有其他的,且只有7763条数据,这里直接将这列当做异常值,直接将这列直接删除了。 # data.drop('nr.

By Ne0inhk
用于数据挖掘的分类算法有哪些,各有何优劣?

算法

用于数据挖掘的分类算法有哪些,各有何优劣?

作者:Jason Gu 链接:https://www.zhihu.com/question/24169940/answer/26952728 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 训练集有多大? 如果你的训练集很小,高偏差/低方差的分类器(如朴素贝叶斯)比低偏差/高方差的分类器(如K近邻或Logistic回归)更有优势,因为后者容易过拟合。但是随着训练集的增大,高偏差的分类器并不能训练出非常准确的模型,所以低偏差/高方差的分类器会胜出(它们有更小的渐近误差)。你也可以从生成模型与鉴别模型的区别来考虑它们。 某些分类器的优势 **朴素贝叶斯(Naive Bayes, NB)** 超级简单,就像做一些数数的工作。如果条件独立假设成立的话,NB将比鉴别模型(如Logistic回归)收敛的更快,所以你只需要少量的训练数据。即使条件独立假设不成立,NB在实际中仍然表现出惊人的好。如果你想做类似半监督学习,或者是既要模型简单又要性能好,NB值得尝试。

By Ne0inhk
算法,永远的神!

面试

算法,永远的神!

推荐三份算法/计算机进阶指南 1. Github霸榜的算法模板 第一份资料是70K Star的labuladong 的算法小抄(作者 labuladong)。先来给你们看看里面具体都有哪些内容: 你可以点击下载这本 PDF。 2. 谷歌师兄的算法小册 第二份资料是谷歌师兄的算法小册(作者「高畅师兄」)。本书分为算法和数据结构两大部分,又细分了十五个章节,详细讲解了刷题时常用的技巧。我把题目精简到了101道。 你可以点击下载这本 PDF。 3. 清华大佬的LeetCode刷题笔记 第三份是清华大佬的LeetCode刷题笔记。作者把LeetCode一千多道题进行了系统性地整理,弄成了一个算法专题,十几个算法类别目录: 你可以点击下载这本 PDF。

By Ne0inhk
springboot毕设 协同过滤算法的就业推荐系统 程序+论文

算法

springboot毕设 协同过滤算法的就业推荐系统 程序+论文

本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。 系统程序文件列表 开题报告内容 研究背景 随着信息技术的飞速发展和互联网的广泛普及,就业市场逐渐呈现出信息爆炸的趋势。传统的就业推荐方式,如招聘会、报纸招聘广告等,已难以满足当前求职者和招聘方的需求。一方面,求职者面临着海量招聘信息的筛选难题,难以快速找到符合自己期望的岗位;另一方面,企业也面临着如何从众多求职者中挑选出最合适的人才的挑战。协同过滤算法作为一种有效的个性化推荐技术,在电商、视频、音乐等领域取得了显著成效。因此,将协同过滤算法应用于就业推荐系统中,旨在通过挖掘用户的历史行为数据,为求职者提供个性化的岗位推荐,同时帮助企业快速锁定潜在人才,具有重要的研究价值和现实意义。 研究意义 本研究的意义在于,通过构建基于协同过滤算法的就业推荐系统,不仅能够提高求职者的求职效率和满意度,还能够优化企业的招聘流程,降低招聘成本。此外,该系统还能在一定程度上缓解就业市场的信息不对称问题,促进人力资源的合理配置。对于求职者而言,个性化的岗位推荐能够减少其筛选信息的时间成本,提高求职成功率

By Ne0inhk
机器学习第二篇:详解KNN算法

算法

机器学习第二篇:详解KNN算法

简说Python推荐来源:俊红的数据分析之路 作者:张俊红 我的2020总结,戳图片,留言抽大奖 大家好,我是老表~ 本篇介绍机器学习众多算法里面最基础也是最“懒惰”的算法——KNN(k-nearest neighbor)。你知道为什么是最懒的吗? 01|算法简介: KNN是英文k-nearest neighbor的缩写,表示K个最接近的点。该算法常用来解决分类问题,具体的算法原理就是先找到与待分类值A距离最近的K个值,然后判断这K个值中大部分都属于哪一类,那么待分类值A就属于哪一类。 这其实和我们生活中对人的评价方式一致,你想知道一个人是什么样的人,你只需要找到跟他关系最近(好)的K个人,然后看这K个人都是什么人,就可以判断出他是什么样的人了。 02|算法三要素: 通过该算法的原理,我们可以把该算法分解为3部分,第一部分就是要决定K值,也就是要找他周围的几个值;第二部分是距离的计算,即找出距离他最近的K个值;第三部分是分类规则的确定,就是以哪种标准去评判他是哪一类。 1、K值的选取 K值的选取将会对KNN算法的结果产生重大的影响,下面通过一个简单

By Ne0inhk
【算法分析】常用算法详解,小白必看!冒泡排序|希尔排序|插入排序|选择排序|归并排序|算法思想

算法

【算法分析】常用算法详解,小白必看!冒泡排序|希尔排序|插入排序|选择排序|归并排序|算法思想

算法分析 算法基础 算法的五个重要特性: 1. 2. 有穷性:对于合法输入,在执行有穷步后结束,且每一步都可在有穷时间内完成 3. 4. 确定性:每一条指令必须有确切的含义,对于相同的输入只能得出相同的输出 5. 6. 可行性:算法中描述的操作都可以通过有限的基本运算实现 7. 8. 输入:0或多个输入 9. 10. 输出:1或多个输出 排序算法 各排序算法 img 插入排序 通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。类似于扑克牌中给牌排序,从未排序的牌中选择一张对比已排序的牌,在比它小的牌后面插入。 插入排序 希尔排序(Shell排序) 先将整个带排序序列分割成若干子序列,然后分别进行插入排序,待整个序列记录基本有序时,再进行一次完整的插入排序。 希尔排序 冒泡排序 重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。每一轮比较结束后,

By Ne0inhk
Spark-mllib特征提取算法

算法

Spark-mllib特征提取算法

Spark MLlib 提供三种文本特征提取方法,分别为TF-IDF、Word2Vec以及CountVectorizer,其原理与调用代码整理如下: ## TF-IDF ### 算法介绍: 词频-逆向文件频率(TF-IDF)是一种在文本挖掘中广泛使用的特征向量化技术。它将文本中的每个词转换为一个数字,该数字表示该词在文档集合中的重要性。 ### 调用: ```scala import org.apache.spark.ml.feature.{CountVectorizer, CountVectorizerModel} val df = spark.createDataFrame(Seq( (0, Array("a", "b", "c")), (1, Array("a", "b", "b&

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

AI

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

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

By Ne0inhk
算法学习集合之一:字符串匹配算法

算法学习集合之一:字符串匹配算法

KMP算法详解 1. 概述 KMP(Knuth-Morris-Pratt)算法是一种改进的字符串匹配算法,由Donald Knuth、Vernon Morris和John Pratt于1977年提出。它通过利用已经匹配的信息来减少模式串与主串的匹配次数,从而提高匹配效率。 2. 基本思想 KMP算法的核心在于getNext()函数,该函数用于计算模式串的局部匹配信息。具体来说,getNext()函数会生成一个数组nums[],其中每个元素表示在当前位置之前的最长相同前缀和后缀的长度。 3. getNext()函数 输入 模式串 ps 输出 长度为模式串长度的数组 nums[] 实现步骤 初始化 next[0] = -1,表示第一个字符之前没有相同前缀和后缀。 使用两个指针 j 和 k,分别表示当前处理的位置和上一个匹配失败的位置。 遍历模式串,对于每个位置: 如果 k == -1 或者 ps[j]

By Ne0inhk
Python 学习路线:介绍、基础语法、数据结构、算法、高级主题、框架及异步编程详解

算法

Python 学习路线:介绍、基础语法、数据结构、算法、高级主题、框架及异步编程详解

Python 介绍 Python 是一种 高级 的、解释型 的、通用 的编程语言。其设计哲学强调代码的可读性,使用显著的缩进。Python 是 动态类型 和 垃圾收集 的。 基本语法 设置 Python 环境并开始基础知识。 变量 变量用于存储在计算机程序中引用和操作的信息。它们还提供了一种使用描述性名称标记数据的方式,以便读者和我们自己更清晰地理解我们的程序。将变量视为包含信息的容器很有帮助。它们的唯一目的是在内存中标记和存储数据。然后可以在整个程序中使用这些数据。 文章链接: 示例 x = 5 y = 6 sum_result = x + y print(sum_result) # 打印 x + y 的和 条件语句 Python 中的条件语句根据特定条件是否为真或为假执行不同的操作。条件语句由

By Ne0inhk
基本的编程概念 ——算法(Algorithm)详解

大前端

基本的编程概念 ——算法(Algorithm)详解

基本的编程概念 ——算法(Algorithm)详解 算法是编程和计算机科学中的一个核心概念,它定义了解决特定问题的一系列步骤。以下是对算法的详细解释: 定义 * 算法:是解决特定问题的明确和有限的步骤集合,这些步骤遵循一定的顺序,以实现特定的计算任务。 特性 1. 输入:一个算法有0个或多个输入。 2. 输出:一个算法至少产生一个输出。 3. 明确性:算法的每个步骤都必须清晰、明确,没有歧义。 4. 有限性:算法必须在执行有限步骤后终止。 5. 可行性:算法描述的操作必须可以通过已经实现的基本运算执行。 类型 * 排序算法:如快速排序、归并排序,用于将一系列元素按特定顺序排列。 * 搜索算法:如二分搜索、线性搜索,用于在数据结构中查找特定元素。 * 图算法:如Dijkstra算法、A*搜索算法,用于在图结构中找到路径或解决问题。 * 动态规划算法:通过将复杂问题分解为更简单的子问题来解决优化问题。 * 递归算法:通过函数自己调用自己来解决问题。 复杂度 * 时间复杂度:

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

算法

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

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

By Ne0inhk