
数据挖掘
文章平均质量分 95
数据挖掘
迷雾总会解
我来,我见,我征服!
展开
-
Viterbi-Algorithm(维特比算法)
维特比算法是一个特殊但应用最广的动态规划算法。利用动态规划,可以解决任何一个图中的最短路径问题。而维特比算法是针对一个特殊的图-篱笆网了(Lattice)的有向图最短路径问题而提出来的。它之所以重要,是因为凡是使用隐马尔科夫模型描述的问题都可以用它解码,包括当前的数字通信、语音识别、机器翻译、拼音转汉字、分词等。原创 2021-01-28 18:41:27 · 9000 阅读 · 2 评论 -
HMM(隐马尔科夫模型)
隐马尔科夫模型(Hidden Markov Model,以下简称HMM)是比较经典的机器学习模型了,它在语言识别,自然语言处理,模式识别等领域得到广泛的应用。当然,随着目前深度学习的崛起,尤其是RNN,LSTM等神经网络序列模型的火热,HMM的地位有所下降。但是作为一个经典的模型,学习HMM的模型和对应算法,对我们解决问题建模的能力提高以及算法思路的拓展还是很好的。本文是HMM系列的第一篇,关注于HMM模型的基础。原创 2020-12-16 18:40:12 · 8822 阅读 · 0 评论 -
SVD原理和案例(奇异值分解)
奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域。是很多机器学习算法的基石。本文就对SVD的原理做一个总结,并讨论在在PCA降维算法中是如何运用运用SVD的。原创 2020-12-14 21:59:04 · 1705 阅读 · 0 评论 -
多层感知机(MultiLayer Perceptron)以及反向传播算法(Backpropagation)
多层感知机:MLP多层感知机由感知机推广而来,最主要的特点是有多个神经元层,因此也叫深度神经网络(DNN: Deep Neural Networks)。感知机:PLA为了理解神经网络,我们应该先理解神经网络的组成单元——神经元,神经元也叫做感知机。感知器算法在上个世纪50-70年代很流行,也成功解决了很多问题,并且感知机算法也是非常简单的感知机有如下组成部分:输入权值:一个感知器可以接受多个输入(x1,x2,...xn)(x_1,x_2,...x_n)(x1,x2,...xn),每个输原创 2020-11-23 20:11:48 · 7225 阅读 · 1 评论 -
感知机,梯度下降,批量梯度下降法的详细介绍和案例分析
神经网络的组成单元——神经元,神经元也叫做感知机。在机器学习算法中,有时候需要对原始的模型构建损失函数,然后通过优化算法对损失函数进行优化,以便寻找到最优的参数,使得损失函数的值最小。而在求解机器学习参数的优化算法中,使用较多的就是基于梯度下降的优化算法(Gradient Descent, GD)。原创 2020-11-21 21:05:12 · 2447 阅读 · 0 评论 -
熵,信息增益,信息增益率,基尼指数(附案例)
熵(Entropy) 是度量样本集合纯度最常用的一种指标。ID3决策树算法就是利用信息增益作为划分数据集的一种方法。ID3的后继C4.5使用一种称为增益率(Gain Ratio) 的信息增益扩充。CART中采用基尼指数来进行特征选择。原创 2020-11-21 19:42:30 · 3072 阅读 · 5 评论 -
条件概率,贝叶斯,朴素贝叶斯详解(吸毒者案例,吸烟者案列,抛硬币问题,文本喜好问题)
贝叶斯定理是统计学中非常重要的一个定理,以贝叶斯定理为基础的统计学派在统计学世界里占据着重要的地位,和概率学派从事件的随机性出发不同,贝叶斯统计学更多地是从观察者的角度出发,事件的随机性不过是观察者掌握信息不完备所造成的,观察者所掌握的信息多寡将影响观察者对于事件的认知。原创 2020-11-21 17:09:41 · 2450 阅读 · 0 评论 -
不独立 ≠ 不相关 (Independent ≠ Uncorrelated)
独立一定不相关,不相关不一定独立原创 2020-11-21 15:32:35 · 14926 阅读 · 4 评论 -
LDA(Linear Discriminant Analysis)的原理详解
1. LDA的介绍2. 瑞利商(Rayleigh quotient)与广义瑞利商(genralized Rayleigh quotient) 3. 二类LDA原理4. 算法的流程5. 二类LDA例子(与PCA进行对比)6. 多类LDA原理7. 二类和多类公式的关系8. LDA vs PCA9. LDA的弊端10. LDA算法小结原创 2020-11-21 15:14:42 · 21151 阅读 · 3 评论 -
PCA(主成分分析)原理详解
PCA概念PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法。PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。其中,第一个新坐标轴选择是原始数据中方差最大的方向,第二个新坐标轴选取是与第一个坐标轴正交的平面中使得方差最大的,第三个轴是与第1,2个轴正交的平面中方差原创 2020-11-18 15:19:45 · 3837 阅读 · 0 评论 -
PCA的数学原理(真的强烈推荐)
这篇文章写得真的真的实在是太好了,真的受益匪浅,让我这个大三考研狗认识到了数学的美,也是初入数据挖掘,希望以后能好好学。各位有时间的话一定要看一下!!!原创 2020-11-18 09:34:03 · 734 阅读 · 1 评论 -
不平衡数据的介绍和处理(Imbalanced Datasets)
不平衡数据(Imbalanced Datasets)分类的例子对不平衡数据的处理朴素随机过采样(上采样,over-sampling)朴素随机欠采样(下采样,under-sampling)随机采样的优缺点过采样的改进:SMOTE与ADASYNSMOTESMOTE的改进:Borderline-SMOTEADASYN基于聚类的过采样方法欠采样的改进:EasyEnsemble、BalanceCascade与NearMissEasyEnsemble,利用模型融合的方法(Ensemble)BalanceCascade.原创 2020-11-14 12:20:34 · 27445 阅读 · 0 评论 -
幸存者偏差(survivorship bias)
介绍幸存者偏差(英语:survivorship bias),另译为“生存者偏差”,是一种认知偏差。其逻辑谬误表现为过分关注于目前人或物“幸存了某些经历”然而往往忽略了不在视界内或无法幸存这些事件的人或物。幸存者偏差最早来源于第二次世界大战期间,美国哥伦比亚大学统计学亚伯拉罕·沃德教授接受美国海军要求,运用他在统计方面的专业知识给出关于“飞机应该如何加强防护,才能降低被炮火击落的几率”的建议。通过统计发现主要受损部位集中在机翼,所以结论是应当减少机腹的装甲加强机翼的装甲?这个结论显然是可笑的,造成这种原创 2020-11-14 11:39:51 · 6799 阅读 · 0 评论 -
LOF(局部异常因子)算法-异常点/离群点检测
为什么需要LOF 在数据挖掘方面,经常需要在做特征工程和模型训练之前对数据进行清洗,剔除无效数据和异常数据。异常检测也是数据挖掘的一个方向,用于反作弊、伪基站、金融诈骗等领域。 异常检测方法,针对不同的数据形式,有不同的实现方法。常用的有基于分布的方法,在上、下α分位点之外的值认为是异常值(例如图1),对于属性值常用此类方法。基于距离的方法,适用于二维或高维坐标体系内异常点的判别,例如二维平面坐标或经纬度空间坐标下异常点识别,可用此类方法。 这次要介绍一下一种基于距离的异常检测算法,局部异常因子LO原创 2020-11-14 11:21:34 · 5886 阅读 · 1 评论 -
混淆矩阵介绍以及评价指标(准确率,精确率,召回率,特异度,假警报率,G-mean,F1_score,KS值)
混淆矩阵混淆矩阵(Confusion Matrix),可以理解为就是一张表格。混淆这个名字还是很有内涵的,咳咳。混淆矩阵是判断分类好坏程度的一种方法。另外还有ROC曲线和AUC曲线。以分类模型中最简单的二分类为例,对于这种问题,我们的模型最终需要判断样本的结果是0还是1,或者说是positive还是negative。我们通过样本的采集,能够直接知道真实情况下,哪些数据结果是positive,哪些结果是negative。同时,我们通过用样本数据跑出分类型模型的结果,也可以知道模型认为这些数据哪些是p原创 2020-11-14 10:28:30 · 14166 阅读 · 2 评论 -
Pandas的介绍和使用
介绍Pandas 是 Python 的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。Pandas 的目标是成为 Python 数据分析实践与实战的必备高级工具,其长远目标是成为最强大、最灵活、可以支持任何语言的开源数据分析工具。经过多年不懈的努力,Pandas 离这个目标已经越来越近了。Pandas 适用于处理以下类型的数据:与 SQL 或 Excel 表类似的,含异构列的表格数据;有序和无序(非固定频率)的时间序列数据;带行列标签的矩阵数据,原创 2020-08-22 23:25:57 · 1238 阅读 · 0 评论 -
Numpy的介绍和使用
介绍NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant 在 Numeric 中结合了另一个同性质的程序库 Numarray 的特色,并加入了其它扩展而开发了 NumPy。NumPy 为开放源代码并且由许多协作者共同维护开发。NumPy 是一个运行速度非常快的数原创 2020-08-22 23:24:16 · 1198 阅读 · 0 评论 -
Matplotlib的介绍和使用
介绍Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形 [1] 。通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等案例from matplotlib import pyplotpyplot.figure()pyplot.plot([1, 0, 9], [4, 5, 6])pyplot.show()三层结构容器层: 主要由Canvas、Figure、A原创 2020-08-22 23:23:00 · 461 阅读 · 0 评论 -
Jupyter Notebook的介绍,使用以及常用快捷键
介绍Jupyter Notebook是一个开源的Web应用程序,允许用户创建和共享包含代码、方程式、可视化和文本的文档。它的用途包括:数据清理和转换、数值模拟、统计建模、数据可视化、机器学习等等。名字源于Julia,Python,和R(数据科学的三种开源语言)是一款程序员和工作者的编程/文档/展示软件.ipynb文件格式是用于计算型叙述的JSON文档格式的正式规范优势可选择语言:支持超过40种编程语言,包括Python、R、Julia、Scala等。分享笔记本:可以使用电子邮件、Dropbox原创 2020-08-22 23:19:58 · 579 阅读 · 0 评论