机器学习
文章平均质量分 63
a flying bird
永远飞翔的鸟
展开
-
布隆过滤器(Bloom Filter)的原理和实现
转载:https://www.cnblogs.com/cpselvis/p/6265825.html转载 2021-07-04 09:58:10 · 190 阅读 · 0 评论 -
矩阵乘法的5种视角
我们学习线性代数时,只学了一种矩阵乘法的方法,实际上矩阵乘法的计算方法其实有很多种,每一种都代表着一种不同的视角:1、Normal:2、Row,行向量的线性组合,参考Uno Whoiam:MIT 线性代数笔记(1):如何看待矩阵?3、Column,列向量的线性组合,参考Uno Whoiam:MIT 线性代数笔记(1):如何看待矩阵?4、Row&Column,其中是的第列,是的第行,最后进行 pixel-wise 相加。5...转载 2021-07-04 09:46:14 · 589 阅读 · 0 评论 -
GBDT实现详解
转载:https://www.cnblogs.com/silence-gtx/p/12346196.html转载 2021-02-13 22:22:12 · 183 阅读 · 0 评论 -
scikit-learn源码编译
参考:https://scikit-learn.org/dev/developers/advanced_installation.html#install-bleeding-edge按照如上说明编译完毕代码后后,既可以使用sklean了。要点1:NoteYou will have to run thepipinstall--no-build-isolation--editable.command every time the source code of a Cython f...原创 2020-10-24 22:25:51 · 914 阅读 · 0 评论 -
决策树中的类别特征问题(关于label encode还是one-hot的讨论)
就决策树来说,算法本身是(为数不多的)天然支持categorical feature的机器学习算法,但是如果是high cardinality,那么理论上最优的split要遍历所有二分组合,是指数级的复杂度,Python的implementation只解决数值型feature,把这个难题丢给用户了,xgboost也是一样,作者的解释是为了给用户更多自主权决定如何处理categorical feat...转载 2020-02-28 10:56:41 · 7789 阅读 · 4 评论 -
XGBoost之类别特征的处理
目录Label encoding与 One-Hot encodingLabel encodingone-hot encoding利用神经网络的Embedding层处理类别特征Embedding简介Network Embedding算法分类Embedding实战转载:https://www.biaodianfu.com/categor...转载 2020-02-28 09:30:30 · 23394 阅读 · 1 评论 -
xgboost原理分析以及实践
摘要本文在写完GBDT的三篇文章后本来就想写的,但一直没有时间,终于刚好碰上需要,有空来写这篇关于xgboost原理以及一些实践的东西(这里实践不是指给出代码然后跑结果,而是我们来手动算一算整个xgboost流程)由于网上已经许多优秀的文章对xgboost原理进行了详细的介绍,特别是xgboost作者陈天奇的论文以及slide已经非常完整阐述了整个xgboost的来龙去脉,现有的文章基本也是...转载 2020-02-27 16:59:21 · 467 阅读 · 1 评论 -
近似最近邻搜索ANN(Approximate Nearest Neighbor)
目录一、随机投影森林-一种近似最近邻方法(ANN)1.随机投影森林介绍2、LSHForest/sklearn二、Kd-Tree的最近邻查找原创 2020-02-26 16:11:07 · 9649 阅读 · 0 评论 -
直方图均衡化算法原理与实现
参考1:https://blog.csdn.net/qianqing13579/article/details/52422364直方图均衡化算法实现(针对离散行数据的处理)根据上面的推导,算法实现如下://不支持OpenCV的ROIvoid GetHistogram(const Mat &image, int *histogram){ mems...原创 2020-02-08 21:18:32 · 893 阅读 · 0 评论 -
机器学习之平滑技术
拉普拉斯平滑(Laplace smoothing)也就是参数为1时的贝叶斯估计,当某个分量在总样本某个分类中(观察样本库/训练集)从没出现过,会导致整个实例的计算结果为0。为了解决这个问题,使用拉普拉斯平滑/加1平滑进行处理。它的思想非常简单,就是对先验概率的分子(划分的计数)加1,分母加上类别数;对条件概率分子加1,分母加上对应特征的可能取值数量。...原创 2020-02-07 20:59:58 · 2577 阅读 · 0 评论 -
机器学习之Logloss计算和指标评估
由logloss定义,计算正样本的概率如下:注:logloss是有其定义计算的具体数值。 r表示正样本的概率。推到,直接另logloss=其定义公式,然后可以推到出y=r=如下公式。...原创 2019-11-19 19:14:02 · 2609 阅读 · 0 评论 -
LR,gbdt,libfm三个模型的使用场景
一、高维稀疏特征的时候,lr 的效果会比 gbdt 好,为什么?这个问题我也是思考了好久,在平时的项目中也遇到了不少 case,确实高维稀疏特征的时候,使用 gbdt 很容易过拟合。 但是还是不知道为啥,后来深入思考了一下模型的特点,发现了一些有趣的地方。 假设有1w 个样本, y类别0和1,100维特征,其中10个样本都是类别1,而特征 f1的值为0,1,且刚好这10个样本的 f1特征值...原创 2019-09-23 17:16:22 · 922 阅读 · 0 评论 -
机器学习中距离和相似性度量方法
在机器学习和数据挖掘中,我们经常需要知道个体间差异的大小,进而评价个体的相似性和类别。最常见的是数据分析中的相关分析,数据挖掘中的分类和聚类算法,如 K 最近邻(KNN)和 K 均值(K-Means)等等。根据数据特性的不同,可以采用不同的度量方法。一般而言,定义一个距离函数 d(x,y), 需要满足下面几个准则:1) d(x,x) = 0 // 到自己的...原创 2019-08-24 14:46:38 · 4589 阅读 · 0 评论 -
机器学习之数据处理威尔逊置信区间
一、正态分布标准正态分布标准正态分布就是均值为0,标准差为1的分布,如下图一般正态分布一般正态分布n,假设其均值是 μ,标准差为σ ,即服从 n~N(μ,σ)经过变换可以转换成标准正态分布:另X = (N - μ)/ σ,则X就是服从标准的正态分布了X~N(0,1)二、置信区间上图中的面积就是标准正态分布的概率,而置信区间就是变量的区间估计,例如图中的-1到1就是一个置信......原创 2019-08-12 15:27:50 · 10674 阅读 · 0 评论 -
特征工程文章收集
特征工程文章收集原创 2019-08-05 19:44:56 · 2090 阅读 · 0 评论 -
欠采样(undersampling)和过采样(oversampling)
当二分类数据不均衡时会影响模型的输出,此时需要对数据进行处理。1:为什么类别不平横会影响模型的输出:许多模型的输出类别是基于阈值的,例如逻辑回归中小于0.5的为反例,大于则为正例。在数据不平衡时,默认的阈值会导致模型输出倾向与类别数据多的类别。因此可以在实际应用中,解决办法包括:1)调整分类阈值,使得更倾向与类别少的数据。2)选择合适的评估标准,比如ROC或者F1,而不是...原创 2018-08-10 15:36:27 · 16507 阅读 · 0 评论 -
机器学习之数据预处理方式(去均值、归一化、PCA降维)
目录一、在介绍去均值和归一化之前,先介绍几个概念1.1 平均值1.2 方差、标准差1.3 贝赛尔修正1.4 平均值与标准差的适用范围及误用1.5 为什么正态分布非常常见二、常用数据预处理方法2.1 去均值2.2 .两种归一化的适用范围2.3 PCA/白化一、在介绍去均值和归一化之前,先介绍几个概念1.1 平均值平均值的概念很简单:所有数据之和除以...原创 2018-08-06 17:11:31 · 13415 阅读 · 6 评论 -
机器学习常见面试题
1、L1范式和L2方式的区别(1)L1范式是对应参数向量绝对值之和(2)L1范式具有稀疏性(3)L1范式可以用来作为特征选择,并且可解释性较强(这里的原理是在实际Loss function中都需要求最小值,根据L1的定义可知L1最小值只有0,故可以通过这种方式来进行特征选择)(4)L2范式是对应参数向量的平方和,再求平方根(5)L2范式是为了防止机器学习的过拟合,提升模型的泛化...原创 2018-07-11 19:01:04 · 429 阅读 · 1 评论 -
L0、L1、L2正则项的理解和适用范围
目录L0范数L1范数L2范数L1 和L2区别总结:数学公式解释几何空间解释从偏差和方差角度理解正则L1正则化使得模型更加稀疏,L2使得模型参数更趋近于0,提高泛化能力(这里是另外一个解释:https://www.zhihu.com/question/38081976/answer/74895039机器学习中的范数规则化之(一)L0、L1与L2范数:https:/...原创 2018-06-05 16:36:59 · 2461 阅读 · 0 评论 -
机器学习之OneHotEncoder独热编码和 LabelEncoder标签编码及实战
学习sklearn和kagggle时遇到的问题,什么是独热编码?为什么要用独热编码?什么情况下可以用独热编码?以及和其他几种编码方式的区别。首先了解机器学习中的特征类别:连续型特征和离散型特征 拿到获取的原始特征,必须对每一特征分别进行归一化,比如,特征A的取值范围是[-1000,1000],特征B的取值范围是[-1,1].如果使用logistic回归,w1*x1+w...原创 2018-06-04 08:28:15 · 1827 阅读 · 0 评论 -
机器学习之使用plt绘制评价指标
1绘制点状图import numpy as np # linear algebraimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)%matplotlib inlineimport matplotlib.pyplot as plt # Matlab-style plottingimport s...原创 2018-06-03 22:39:26 · 2640 阅读 · 0 评论 -
机器学习之学习曲线learning curve和过拟合、欠拟合
一、学习曲线学习曲线是什么?学习曲线就是通过画出不同训练集大小时训练集和交叉验证的准确率,可以看到模型在新数据上的表现,进而来判断模型是否方差偏高或偏差过高,以及增大训练集是否可以减小过拟合。怎么解读?当训练集和测试集的误差收敛但却很高时,为高偏差。左上角的偏差很高,训练集和验证集的准确率都很低,很可能是欠拟合。我们可以增加模型参数,比如,构建更多的特征,减小正则项。...原创 2018-04-03 22:47:15 · 15663 阅读 · 0 评论 -
机器学习之梯度下降的三种方式(BGD+SGD+MSGD)以及三种调优方法
1.梯度下降算法梯度下降算法的核心思路和公式推导,可以详见前面的文章:梯度下降算法的核心思路和公式推导如果代价函数是凸函数,用梯度下降算法一定可以求得最优解。2.梯度下降的三种方式在ML中,梯度下降有三种方式:1)批量梯度下降(Batch GradientDescent,BGD)2)随机梯度下降(Stochastic Gradient Descent,SGD)3)小...原创 2018-04-02 08:15:04 · 2295 阅读 · 0 评论 -
深度学习中的五大正则化方法和七大优化策略
深度学习中,卷积神经网络和循环神经网络等深度模型在各种复杂的任务中表现十分优秀。例如卷积神经网络(CNN)这种由生物启发而诞生的网络,它基于数学的卷积运算而能检测大量的图像特征,因此可用于解决多种图像视觉应用、目标分类和语音识别等问题。但是,深层网络架构的学习要求大量数据,对计算能力的要求很高。神经元和参数之间的大量连接需要通过梯度下降及其变体以迭代的方式不断调整。此外,有些架构可能因为强大的表征...转载 2018-04-01 21:08:51 · 6874 阅读 · 0 评论 -
机器学习之决策树算法(ID3、C4.5、CART)
一、引言决策树学习采用的是自顶向下的递归方法,其基本思想是以信息熵为度量构造一颗熵值下降最快的树,到叶子节点处,熵值为0。其具有可读性、分类速度快的优点,是一种有监督学习。最早提及决策树思想的是Quinlan在1986年提出的ID3算法和1993年提出的C4.5算法,以及Breiman等人在1984年提出的CART算法。本篇文章主要介绍决策树的基本概念,以及上面这3种常见决策树算法(ID3、C...原创 2018-01-17 23:34:42 · 847 阅读 · 1 评论 -
机器学习之朴素贝叶斯方法(Naive Bayes)原理和实现
目录一、贝叶斯理论二、实战朴素贝叶斯实战朴素贝叶斯1实战朴素贝叶斯3三、scikit-learn中朴素贝叶斯的分类算法的适用四、贝叶斯算法的优缺点一、贝叶斯理论贝叶斯模型现在我们来看一下怎么操作。假设我有m个样本数据:这大大的简化了n维条件概率分布的难度,虽然很粗暴,但是很给力。二、实战朴素贝叶斯实战朴素贝叶斯1......原创 2018-01-14 16:03:47 · 6261 阅读 · 2 评论 -
机器学习之SVM
Support vector machines (SVMs)是一系列的有监督的学习方法,主要用于分类、回归和异常点检测。1. SVM的主要优点如下:在高维空间有效; 当样本空间的维度比样本数高时任然有效; 使用训练样本的子集构建决策函数(这些样本点被称之为支持向量),因此它的内存效率很高; SVM是一个全能型的机器学习算法:可以指定不同的核函数的决策函数,提供了常见的核函数,但...原创 2018-01-11 17:22:11 · 1577 阅读 · 0 评论 -
机器学习之逻辑回归(LR)
LR是一个传统的二分类模型,它也可以用于多分类任务,其基本思想是:将多分类任务拆分成若干个二分类任务,然后对每个二分类任务训练一个模型,最后将多个模型的结果进行集成以获得最终的分类结果。一般来说,可以采取的拆分策略有:one vs one策略 假设我们有N个类别,该策略基本思想就是不同类别两两之间训练一个分类器,这时我们一共会训练出种不同的分类器。在预测时,我们将样本提交给所有的分类...原创 2018-01-10 19:29:21 · 532 阅读 · 0 评论 -
scikit-learn学习之特征提取,常用模型,交叉验证
目录一、scikit-learn中fit_transform()与transform()的区别二、sklearn中predict_proba用法(注意和predict的区别)三、scikit-learn使用总结1 scikit-learn基础介绍1.1 估计器(Estimator)1.2 转换器(Transformer)1.3 流水线(Pipeline)1.4...原创 2018-01-07 15:05:20 · 3573 阅读 · 0 评论 -
机器学习之线性回归
一、线性回归、ridge、lasso和ElasticNet的关系为了防止过拟合的现象出现,学者对线性回归进行了优化,于是产生了ridge、lasso还有ElasticNet回归,首先让我们了解一下ridge回归。我们定义了线性回归的损失函数为,经过推导最终得到。为了防止过拟合的出现,我们在原损失函数的基础上增加一个正则项,则有 (1)接下来求解,写成向量形式有...原创 2018-01-06 23:15:42 · 662 阅读 · 0 评论 -
机器学习实战(Python)总结
机器学习实战总结正在整理中……你看完这本书了么,一起复习一下吧整本书建议结合中英文、源代码一起看机器学习实战总结 正在整理中 1KNN 2决策树decision treesID3 1创立决策树字典 2绘制注解决策树 3测试和储存 3朴素贝叶斯 Naive Bayes 4logistic 回归 逻辑回归 5支持向量机 SVM ...原创 2017-12-28 00:11:21 · 520 阅读 · 0 评论