算法
文章平均质量分 80
Rnan-prince
知是行之始,行是知之成(1352638748@qq.com)
展开
-
强化学习-理解及应用:解决迷宫问题
强化学习(Reinforcement Learning, RL)是一种机器学习方法,旨在让智能体(agent)通过与环境的交互学习如何做出最优的行动选择以获得最大的累积奖励。原创 2023-07-09 11:47:40 · 2376 阅读 · 0 评论 -
数据科学在Web威胁感知中的应用
写的非常棒,推荐给大家转载 2021-09-08 21:40:55 · 148 阅读 · 0 评论 -
增量计算海量数据均值、标准差
首先复习一下咱们高中数学均值、标准差怎么算。均值方差有两种计算方法: 根据公式2就可以增量计算了,我们只需要存储平方和、均值就可以了,我们测试一下:import numpy as npdef calculate_var(sum_square, sum_value, n): """ Var(x)=E(x^2)-[E(x)]^2 :param sum_square: Sum of squares :param sum_value: Sum .原创 2021-09-08 00:04:14 · 1987 阅读 · 0 评论 -
异常检测基线的上下界判断
最近做异常检测,基于基线进行异常判断,可是用到了好多算法,如,3sigma、箱线图、MAD等,但是显示数据来了,哥哥算法暴露出了缺陷。下限可以做某习惯的基线,以下为异常,以上为正常上限可以做某频率的基线,以下为正常,异常为异常1、3simalower = mean + 3*sigmahigh = mean - 3*sigmadef get_3sigma(samples_list): men = np.mean(samples_list) sigma = np.std原创 2021-07-19 22:02:49 · 1577 阅读 · 0 评论 -
MinHash算法
在数据挖掘中,一个最基本的问题就是比较两个集合的相似度。通常通过遍历这两个集合中的所有元素,统计这两个集合中相同元素的个数,来表示集合的相似度;这一步也可以看成特征向量间相似度的计算(欧氏距离,余弦相似度)。当这两个集合里的元素数量异常大(特征空间维数很大),同时又有很多个集合需要判断两两间的相似度时,传统方法会变得十分耗时,最小哈希(minHash)可以用来解决该问题。Jaccard相似度首先看看Jaccard相似度。假设有两个集合A,B,则 最小哈希(minHash)...原创 2021-05-17 00:44:06 · 6339 阅读 · 3 评论 -
CBLOF算法-异常检测
CBLOF也是一种基于其他机器学习算法的异常检测算法。说到基于,就是CBLOF名字里面的B~Based。而他基于的是其他的聚类算法,所以他就是Cluster-Based。LOF三个字母是Local Outlier Factor,本地异常因子。合起来CBLOF 就是 Cluster-based Local Outlier Factor,基于聚类的本地异常因子。他的一个基本认知是:数据可能会在多个不同的地方聚集,形成簇。当一个点越接近大簇的时候,他是正常点的概率就越高,反之越低。那么,我们只要在CBLOF里原创 2021-05-15 23:41:30 · 3211 阅读 · 0 评论 -
HBOS算法-异常检测
背景在网络安全领域,对异常检测算法的效率要求很高,且输入数据往往非常大,这也是为什么半监督学习的异常检测算法往往采用直方图的原因。如果处理的是高维数据,单维度的直方图很容易计算。大多数直方图相关的算法中,常常固定直方图的宽度或者手动设置宽度。论文提出了一种基于直方图的无监督异常检测算法-HBOS算法,并且提出了动态宽度的算法以适应不均衡的长尾分布。论文《 Histogram-based Outlier Score (HBOS): A fast Unsupervised Anomaly Detecti原创 2021-05-15 22:37:37 · 1732 阅读 · 0 评论 -
异常值检测方法-箱线图(boxplot)
简述: 盒图是在1977年由美国的统计学家约翰·图基(John Tukey)发明的。它由五个数值点组成:最小值(min),下四分位数(Q1),中位数(median),上四分位数(Q3),最大值(max)。也可以往盒图里面加入平均值(mean)。如下图。下四分位数、中位数、上四分位数组成一个“带有隔间的盒子”。上四分位数到最大值之间建立一条延伸线,这个延伸线成为“胡须(whisker)”。 由于现实数据中总是存在各式各样地“脏数据”,也成为“离群点”,于是为了不因这些少数的离群数据导致整体特征原创 2020-08-18 00:17:23 · 21227 阅读 · 1 评论 -
KPI异常检测【三】- 机器学习算法
1、相关概念1.1 异常类型https://zhuanlan.zhihu.com/p/673962191.2 检测方法https://www.cnblogs.com/rnanprince/articles/10790313.html标记(labels):有监督,半监督,无监督 样本类型 困难 有监督 平衡 样本极度不平衡时,训练难;人工标记难 半监督 极度平衡 可能无异常样本 无监督 无标签 有强假设关系,检测存在偏差 .原创 2020-06-17 23:15:44 · 5063 阅读 · 0 评论 -
《南瓜书》PumpkinBook
周志华老师的《机器学习》(西瓜书)是机器学习领域的经典入门教材之一,周老师为了使尽可能多的读者通过西瓜书对机器学习有所了解, 所以在书中对部分公式的推导细节没有详述,但是这对那些想深究公式推导细节的读者来说可能“不太友好”,本书旨在对西瓜书里比较难理解的公式加以解析,以及对部分公式补充具体的推导细节,诚挚欢迎每一位西瓜书读者前来参与完善本书:一个人可以走的很快,但是一群人却可以走的更远。 南瓜书是西瓜书的公式推导版,里面的内容都是以西瓜书的内容为前置知识进行表述,所以 南瓜书的最佳使用方法 是以西..转载 2020-06-08 00:03:44 · 9904 阅读 · 0 评论 -
KPI异常检测【一】- 时间序列分解算法
1、相关概念1.1 异常时序异常检测通常形式化为根据某种标准或正常信号寻找离群数据点。有很多异常类型,但本文只关注那些从商业角度来说最重要的类型,包括意料之外的峰谷、趋势变动、水平变化(level shift)。数学上表示为:|预测值-真实值| > 阈值1.2 时间序列时间序列又称时间数列或动态数列,是按照时问的先后顺序排列的某一现象的一系列观测值。1.2.1 组成(1)现象所属的时间;(2)现象在不同时间上的观测值。现象在不同时间上的观测值的表现形式,有绝对数原创 2020-05-31 21:53:06 · 4928 阅读 · 4 评论 -
卡特兰数&不同的二叉搜索树
什么是卡特兰数?卡特兰数是组合数学中一个常出现在各种计数问题中出现的数列。其公式为 :c(n)=c(2)*c(n-1)+c(3)*c(n-2)+...c(n-1)*c(2)。假设n个节点存在令G(n)的从1到n可以形成二叉排序树个数 令f(i)为以i为根的二叉搜索树的个数即有:G(n) = f(1) + f(2) + f(3) + f(4) + ... + f(n)n为根节点,...原创 2020-04-05 22:24:24 · 2826 阅读 · 0 评论 -
Rabin Karp算法 & 实现 strStr() 函数
实现strStr()函数给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle = "...原创 2020-04-05 20:27:07 · 317 阅读 · 0 评论 -
字典树Trie
字典树又名前缀树(Prefix Tree)根节点不包含字符,除根节点外每一个节点都只包含一个字符; 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串; 每个节点的所有子节点包含的字符都不相同。Trie(前缀树) 的模板:.新建一个 TrieNode 的 class 用于表示 Trie 中的节点,包含 children 和 is_word 两个属性class ...原创 2020-03-24 00:46:33 · 908 阅读 · 0 评论 -
并查集Union Find
并查集:一种用于支持集合快速合并和查找操作的数据结构O(1) 合并两个集合- Union O(1) 查询元素所属集合- FindUnion Find 是一棵多叉树:1、并查集的实现1.1 底层数据结构父亲表示法,用一个数组/哈希表记录每个节点的父亲是谁。father[“Tom”] = “Nlear” father[“Jim”] = “Soox”1.2 查询所在集合...原创 2020-03-23 23:54:03 · 275 阅读 · 0 评论 -
贪心法&跳跃游戏
1、跳跃游戏给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。来源:力扣(LeetCode)链接:https://leetco...原创 2020-03-10 22:13:07 · 353 阅读 · 2 评论 -
Hierholzer算法&重新安排行程
1、Hierholzer算法欧拉迹是指一条包含图中所有边的一条路径,该路径中所有的边会且仅会出现一次。一个无向图中包含欧拉迹,当且仅当下面两条性质同时满足:图是连通的 图中每个顶点的度均为偶数而一个有向图包含欧拉迹,当且仅当下面两条性质同时满足:图是连通的 图中每个顶点入度和出度相同Hierholzer算法用于在连通图寻找欧拉迹,其流程非常简单。从一个可能的起点出发,进...原创 2020-03-10 21:40:57 · 4536 阅读 · 0 评论 -
推荐系统中的矩阵分解总结
最近学习矩阵分解,但是学了好多种类,都乱了,看了这篇文章,系统性的总结了矩阵分解,感觉很棒,故分享如下:前言推荐系统中最为主流与经典的技术之一是协同过滤技术(Collaborative Filtering),它是基于这样的假设:用户如果在过去对某些项目产生过兴趣,那么将来他很可能依然对其保持热忱。其中协同过滤技术又可根据是否采用了机器学习思想建模的不同划分为基于内存的协同过滤(Memory...原创 2018-08-26 12:07:47 · 39725 阅读 · 4 评论 -
集成学习-stacking算法
众所周知,集成学习算法,它将多个弱分类器集成起来,以达到较高的分类准确率。常见的集成学习方法:boosting bagging stacking今天主要讲stacking.Stacking 的基本思想 将个体学习器结合在一起的时候使用的方法叫做结合策略。对于分类问题,我们可以使用投票法来选择输出最多的类。对于回归问题,我们可以将分类器输出的结果求平均值。 ...原创 2020-02-06 21:07:59 · 13369 阅读 · 0 评论 -
常见几个聚类算法原理
聚类算法的思想: 给定N个训练样本(未标记的)x1,x2,...,xN,目标是把比较“接近” 的样本放到一个cluster里, 总共得到K个cluster。聚类算法的目标: 类内紧致,类间分离一、K-means算法1、算法步骤:随机选取k个中心点 遍历所有数据,将每个数据划分到最近的中心点中 计算每个聚类的平均值,并作为新的中心点 重复2-...原创 2020-02-06 20:38:54 · 3589 阅读 · 0 评论 -
AdaBoost 算法
AdaBoost 算法 是一种经典的集成学习算法,它将多个弱分类器集成起来,以达到较高的分类准确率,广泛应用于数据分类、人脸检测等应用中。尤其在人脸检测方面,AdaBoost 是非常经典、成功的一个算法。弱分类器被线性组合成为一个强分类器。一、面临两个问题:在每一轮,如何改变训练数据的概率分布或者权值分布。 如何将弱分类器组合成强分类器。二、AdaBoost 的思路:...原创 2020-02-06 19:30:38 · 4251 阅读 · 0 评论 -
贝叶斯算法的理解
假设基本的概率论只是你已经掌握,OK!一、推导贝叶斯定理假设A和B为两个不相互独立的事件。交集(intersection):并集(union):1、在事件B已经发生的情况下,事件A发生的概率为事件A和事件B的交集除以事件B:同理,在事件A已经发生的情况下,事件B发生的概率为事件A和事件B的交集除以事件A:注:表示 A,B 事件同时发生的概率,如果 A 和 B...原创 2020-02-05 22:51:16 · 2324 阅读 · 0 评论 -
谷歌AI平均每天发表2篇论文!Jeff Dean执笔年度汇总:16大方向
不错的信息,建议看看https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_9557393146694588158%22%7D&n_type=1&p_from=4原创 2020-01-13 16:45:54 · 207 阅读 · 0 评论 -
C4.5(信息增益比)相比于ID3(信息增益)优点?
言外之意,c4.5为什么使用信息增益比来选择特征?不讲那些乱七八糟的公式了,默认大家已经学会了好多公式,只讲思想层面。首先从熵(Entropy)开始说起,熵最初是一个物理学概念,后来在数学中用来描述“一个系统的混乱程度”,因此一个系统的信息熵越高就越无序,信息熵越低就越有序,信息熵越高,使其有序所要消耗的信息量就越大。如果一个决策树分支节点包含的样本都是属于同一个类别的(例如西瓜色泽都...原创 2020-02-04 08:52:20 · 4828 阅读 · 0 评论 -
谈谈SVM和SVR的区别
支持向量机(SVM)本身是针对二分类问题提出的,而SVR(支持向量回归)是SVM(支持向量机)中的一个重要的应用分支。SVR回归与SVM分类的区别在于,SVR的样本点最终只有一类,它所寻求的最优超平面不是SVM那样使两类或多类样本点分的“最开”,而是使所有的样本点离着超平面的总偏差最小。SVM是要使到超平面最近的样本点的“距离”最大;SVR则...原创 2020-02-03 22:56:57 · 24341 阅读 · 0 评论 -
单链表中的环(总结)
关于单链表中的环,一般涉及到的问题:1.给一个单链表,判断其中是否有环的存在;2.如果存在环,找出环的入口点;当fast和slow相遇时,slow还没有走完链表,假设fast已经在环内循环了n(1<= n)圈。假设slow走了s步,则fast走了2s步,又由于fast走过的步数 = s + n*r(s + 在环上多走的n圈),则有下面的等式:2*s = s + n ...原创 2019-11-08 23:12:23 · 2339 阅读 · 0 评论 -
二分查找(倍增法)
上期回顾:超全的二分查找汇总:https://blog.csdn.net/qq_19446965/article/details/82184672其余练习题1:https://www.cnblogs.com/rnanprince/p/11743414.html其余练习题2:https://www.cnblogs.com/rnanprince/p/11761940.html倍增法步骤...原创 2019-10-30 00:23:56 · 949 阅读 · 0 评论 -
BFS广度搜索及应用-单词接龙 II
给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列。解释: endWord "cog" 不在字典中,所以不存在符合要求的转换序列。你可以假设 beginWord 和 endWord 是非空的,且二者不相同。终于过了,,,其实BFS还有好多的记忆搜索的优化,,不再赘述,,,更慢了,,,1分钟跑不完,,,要爆炸了。转换过程中的中间单词必须是字典中的单词。字典中不存在重复的单词。再审审题,,,我去,,,原创 2019-10-25 11:24:26 · 597 阅读 · 0 评论 -
SPFA 算法 & 网络延迟时间
SPFA(Shortest Path Faster Algorithm) 算法是Bellman-Ford算法的队列优化算法的别称,通常用于求含负权边的单源最短路径,以及判负权环。SPFA 最坏情况下复杂度和朴素 Bellman-Ford 相同,为 O(VE)。算法优点: 1.时间复杂度比普通的Dijkstra和Ford低。 2.能够计算有负权的图,...原创 2019-10-24 03:06:40 · 313 阅读 · 0 评论 -
背包问题汇总-01背包、完全背包、多重背包-java
一、01背包内容:有n件物品和容量为m的背包 给出i件物品的重量以及价值 求解让装入背包的物品重量不超过背包容量 且价值最大特点:每个物品只有一件供你选择放还是不放1. 二维解法 设f[i][j]表示前i件物品 总重量不超过j的最大价值 可得出状态转移方程: f[i][j]=max{f[i-1][j-w[i]]+v[i],f[i-1][j...原创 2018-08-01 23:05:41 · 5086 阅读 · 5 评论 -
PCA主成分分析学习总结
看了好多资料,都扯犊子,看不太懂,故总结如下:首先考虑一个问题:对于正交属性空间中的样本点,如何用一个超平面(直线的高维推广)对所有样本进行恰当的表达?可以想到,若存在这样的超平面,那么它大概具有这样的性质:1两大依据最大可分性:样本点在这个超平面上的投影能尽可能的分开最近重构性:样本点到这个超平面的距离足够近目标:希望将这m个数据的维度从n维降到n`维,希望这m...原创 2018-08-26 10:08:03 · 2756 阅读 · 0 评论 -
KKT条件总结
最近学习的时候用到了最优化理论,但是我没有多少这方面的理论基础。于是翻了很多大神的博客把容易理解的内容记载到这篇博客中。因此这是篇汇总博客,不算是全部原创,但是基础理论,应该也都差不多吧。因才疏学浅,有纰漏的地方恳请指出。 KKT条件是解决最优化问题的时用到的一种方法。我们这里提到的最优化问题通常是指对于给定的某一函数,求其在指定作用域上的全局最小值。提到KKT条...转载 2018-08-16 15:33:44 · 10370 阅读 · 0 评论 -
决策树、RF、xgboost如何处理缺失值?判断特征重要性?缺失值不敏感?
1.随机森林模型怎么处理异常值?隨机森:林是已故统计学家Leo Breiman提出的,和gradient boosted tree—样,它的基模型是决策树。在介绍RF时,Breiman就提出两种解决缺失值的方去 (Random forests - classification description):方法1(快速简草但效果差):把数值型变畺(numerical variables)中...原创 2018-08-13 21:47:03 · 22407 阅读 · 10 评论 -
CRF条件随机场与HMM,MEMM比较
CRF简介ConditionalRandomField:条件随机场,一种机器学习技术(模型)CRF由John Lafferty最早用于NLP技术领域,其在NLP技术领域中主要用于文本标注,并有多种应用场景,例如:分词(标注字的词位信息,由字构词) 词性标注(标注分词的词性,例如:名词,动词,助词) 命名实体识别(识别人名,地名,机构名,商品名等具有一定内在规律的实体名词)本文...转载 2018-08-13 17:07:07 · 1411 阅读 · 0 评论 -
汉诺塔的图解递归算法
汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根...原创 2018-08-11 23:06:03 · 100198 阅读 · 9 评论 -
推荐算法种类总结
(一)协同过滤(CF)大致可分为:基于邻域的推荐、基于模型的推荐1.基于邻域的协同过滤有:基于用户的协同过滤:与用户A相似的用户B,推荐用户A喜欢的物品给B 基于物品的协同过滤:推荐与用户A历史上喜欢的物品相近的物品2.基于模型的推荐:使用部分机器学习算法,找出用户与项的相互作用模型,从而找出数据中的特定模式。其中之前研究的NMF模型就是其中的一种,NMF属于基于模型的协同过滤算法...原创 2018-08-11 22:03:19 · 7846 阅读 · 0 评论 -
RF与GBDT之间的区别与联系?
1)相同点:都是由多棵树组成,最终的结果都是由多棵树一起决定。2)不同点:随机森林采用bagging,而GBDT采用boosting 组成随机森林的树可以分类树也可以是回归树,而GBDT只由回归树组成 组成随机森林的树可以并行生成,而GBDT是串行生成 随机森林的结果是多数表决表决的,而GBDT则是多棵树累加之和 随机森林对异常值不敏感,而GBDT对异常值比较敏感 随机森林是减...原创 2018-08-11 22:00:06 · 1614 阅读 · 0 评论 -
EM最大期望算法与jensen不等式
参考资料:https://blog.csdn.net/androidlushangderen/article/details/42921789介绍em算法是一种迭代算法,用于含有隐变量的参数模型的最大似然估计或极大后验概率估计。EM算法,作为一个框架思想,它可以应用在很多领域,比如说数据聚类领域----模糊聚类的处理,待会儿也会给出一个这样的实现例子。EM算法原理EM算法从名称上就...转载 2018-08-06 21:23:14 · 8486 阅读 · 4 评论 -
SVD奇异值分解学习总结
1.原理SVD的基本公式:U和V我们都求出来了,现在就剩下奇异值矩阵∑没有求出了。由于∑除了对角线上是奇异值其他位置都是0,那我们只需要求出每个奇异值σ就可以了。我们注意到:这样我们可以求出我们的每个奇异值,进而求出奇异值矩阵∑。上面还有一个问题没有讲,就是我们说ATA的特征向量组成的就是我们SVD中的V矩阵,而AAT的特征向量组成的就是...原创 2018-08-26 10:18:59 · 2823 阅读 · 0 评论 -
LDA线性判别分析
问题之前我们讨论的 PCA降维,对样本数据来言,可以是没有类别标签 y 的。如果我们做回归时,如果特征太多,那么会产生不相关特征引入、过度拟合等问题。我们可以使用PCA 来降维,但 PCA 没有将类别标签考虑进去,属于无监督的。假设我们对一张 100*100 像素的图片做人脸识别, 每个像素是一个特征,那么会有 10000 个特征,而对应的类别标签y仅仅是 0/1 值, 1 代表是人脸...原创 2018-08-26 10:32:27 · 4311 阅读 · 2 评论