机器学习
文章平均质量分 74
机器学习相关算法和工具
xieyan0811
算法工程师,终生学习者,《Python大数据与机器学习实战》作者
展开
-
敏感性和特异性
敏感性和特异性是医学常用的评价指标。最近找到一个很好的例子来解释它。原创 2022-12-17 23:11:53 · 1160 阅读 · 0 评论 -
常用线性回归模型
多元线性回归是最常用的预测数值型目标的建模方法,也常用于数据分析中的多因素分析。原创 2022-09-25 10:13:02 · 890 阅读 · 0 评论 -
SHAP解释模型(二)
本文续 "SHAP解析模型" 之后,又尝试了一些SHAP新版本的进阶用法,整理并与大家分享.原创 2022-08-21 11:14:49 · 6320 阅读 · 3 评论 -
条件随机场CRF
CRF可用于解决序列问题(前后状态存在相关性),当CRF与神经网络共同工作时,神经网络负责提取词义,CRF将词义与上下文结合,以实现更准确地判断。原创 2022-01-16 12:02:40 · 303 阅读 · 0 评论 -
SHAP解释模型
环境配置:以下实验使用当前最新版本shap:0.39.0$ pip install shap注意xgboost也需要使用对应的较新版本,如:$ pip install xgboost==0.82为使用交互界面,notebook环境下,加载用于可视化的JS代码import shapshap.initjs()SHAP实验SHAP的可解释性,基于对每一个训练数据的解析。比如:解析第一个实例每个特征对最终预测结果的贡献。shap.plots.force(shap_原创 2021-09-20 17:13:26 · 26209 阅读 · 4 评论 -
特征筛选工具
做模型时常常是特征越多模型准确率越高(至少在训练集上)。但过多的特征又增加了数据收集、处理、存储的工作量,以及模型的复杂度。在保证模型质量的前提下,我们希望尽量少地使用特征,这样也间接地加强了模型的可解释性。一般来说,为避免过拟合,特征尽量控制在实例个数的1/20以下,比如有3000个实例,则特征最好控制在150以下。除了特征的具体个数,特征工程中也经常遇到某些特征严重缺失,特征相关性强,一些特征不但无法给模型带来贡献,反而带来噪声等问题。本篇介绍特征筛选工具feature-selector,在原创 2021-01-24 16:28:32 · 384 阅读 · 0 评论 -
机器学习_自动建模工具PyCaret
机器学习涉及数据分析、清洗、建模、评价、对比模型……无论是初学者,还是有经验的开发者在面对新的项目时,都想要简化这些工作,最好能用简单的代码、较短时间,就能得出初步验证结果,之后再进一步优化。希望能用一个简单的数据文件,几行通用的Python语句,就能实现分析、建模和部署。PyCaret就是这样的工具:虽然没有太多创新算法,但极大地简化了工作流程。这也让机器学习的门槛越来越低。PyCaret是Python开发的机器学习库,它封装了Sklearn,XGBoost,LightGBM,Spacy,Shap原创 2020-09-12 20:49:25 · 1377 阅读 · 2 评论 -
论文阅读_ 解释黑盒模型方法综述
论文:《A Survey of Methods for Explaining Black Box Models》论文地址:https://arxiv.org/abs/1802.01933v3(本文为论文核心内容提炼,并非逐段翻译)《A Survey of Methods for Explaining Black Box Models》是2018年发表在ACM Computing Surveys上的一篇综述性论文,正文37页,介绍了七十多种模型解释相关论文,参数文献144篇。它列出了每种方法的相关论文原创 2020-08-16 10:32:47 · 1585 阅读 · 0 评论 -
分类模型的可解释性
论文题目:《Why Should I Trust You? Explaining the Predictions of Any Classifier》论文地址:https://chu-data-lab.github.io/CS8803Fall2018/CS8803-Fall2018-DML-Papers/lime.pdf模型可解释性论文列表:https://github.com/oneTaken/awesome_deep_learning_interpretability《Why Should I原创 2020-07-26 15:27:50 · 1309 阅读 · 0 评论 -
序列对抗网络SeqGAN
SeqGAN源自2016年的论文《SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient》,论文地址:https://arxiv.org/pdf/1609.05473.pdf。其核心是用生成对抗网络处理离散的序列数据。之前介绍了使用GAN生成图像的方法,由于图像是连续数据,可以使用调整梯度的方法逐步生成图像,而离散数据...原创 2020-03-12 15:50:09 · 9664 阅读 · 4 评论 -
自然语言处理——使用词向量(腾讯词向量)
向量化是使用一套统一的标准打分,比如填写表格:年龄、性别、性格、学历、经验、资产列表,并逐项打分,分数范围[-1,1],用一套分值代表一个人,就叫作向量化,虽然不能代表全部,但至少是个量度。因此,可以说,万物皆可向量化。词向量同理,词也可以向量化word2vec(word to vector),可以从词性、感情色彩、程度等等方面量度,用一套分值代表一个词,从而词之间可以替换,比较。词与向量...原创 2020-03-08 17:49:14 · 5547 阅读 · 1 评论 -
算法之_欧拉公式
1. 引子看傅立叶变换的时候,一直奇怪,幂指数是怎么映射成三角函数的?学习了一下欧拉公式,果然很神奇,用到了自然常数e,圆周率π,虚数i,三角函数sin/cos,指数,还有泰勒展开.倒不是算法有多难,只是涉及基础太多,经常被卡住,总结如下.2. 泰勒展开泰勒展开是用多项式逼近原函数,这么做是因为像sin(x)这样的函数,如果代入x=4很难算出结果,但是将x的值代入形如f(x)=a0原创 2017-06-01 17:59:40 · 12796 阅读 · 2 评论 -
机器学习之_逻辑回归
逻辑回归又称logistic回归,逻辑斯谛回归,是一种广义的线性回归分析模型。1. Sigmod函数 Sigmoid函数也是神经网络中常用的函数,用于把x从负无穷到正无穷压缩到y从0到1之间。画出来就是一条S型曲线,如下图中的蓝色曲线: 它以0点为中心对称,公式如下: 当x值接近负无穷时,分母很大,S(x)接近0,当x接近正无穷时,分母接近1,S(x)接近1,当x为0时,S...原创 2018-10-13 13:09:53 · 727 阅读 · 0 评论 -
Xgboost之增量学习
1. 说明 当我们的训练数据非常多,并且还在不断增加时,每次都用全量训练,数据过多,时间过长,此时就可以使用增量训练:用新增的数据微调校正模型。2. 全量与增量的差异 在使用增量训练时,最关心的问题是:全量和增量的差别,从而确定增量训练的使用场景。 假设有200条数据,第一次训练150条,第二次训练50条,和直接用200条训练的差异在于:在第二次训练50条时,前150条数据已经不存...原创 2018-10-06 10:02:08 · 14975 阅读 · 8 评论 -
Xgboost调试方法
1. 调试test目录下的测试用例 在测试程序后面加入以下代码,即可启动调试程序if __name__ == "__main__": unittest.main()2. 显示树结构import matplotlib.pyplot as plt fig,ax = plt.subplots()xgb.plot_tree(gbdt_03a, ax = ax, num_t...原创 2018-10-06 10:01:07 · 1080 阅读 · 0 评论 -
XGBoost_原理
1. 说明: 难了不会,会了不难,你明白了,觉得这还用说?不明白,跳步之后,似懂非懂。本篇是我对论文《XGBoost: A Scalable Tree Boosting System》的阅读笔记,用大白话解释xgboost原理,学霸请跳过,懒得看公式的也请跳过。2. 第一步:整体误差(重点:整体视角) 整体误差指的是XGBoost模型训练完成之后,将训练集中所有实例代入模型,用以下函数...原创 2018-09-22 11:22:04 · 404 阅读 · 1 评论 -
机器学习_规则与关联规则模型Apriori、FP-Growth
规则模型和决策树同属逻辑模型,不同的是决策树对正例反例同样重视,而规则只重视正例/反例其中一项。原创 2017-11-29 19:47:26 · 3371 阅读 · 0 评论 -
机器学习_基于距离的算法KNN与K-Means
线性回归,logistic回归,支持向量机,KNN,K-Means都属于基于距离的模型。下面以分类问题为例,看看它们之间的关系。原创 2017-11-28 19:43:30 · 3456 阅读 · 0 评论 -
机器学习_用树回归方法画股票趋势线
本篇的主题是分段线性拟合,也叫回归树,是一种集成算法,它同时使用了决策和线性回归的原理,其中有两点不太容易理解,一个是决策树中熵的概念,一个是线性拟合时求参数的公式为什么是由矩阵乘法实现的。原创 2017-11-20 14:33:03 · 5874 阅读 · 0 评论 -
机器学习_最小二乘法,线性回归与逻辑回归
线性回归,直观地说,在二维情况下,已知一些点的X,Y坐标,统计条件X与结果Y的关系,画一条直线,让直线离所有点都尽量地近(距离之和最小),用直线抽象地表达这些点,然后对新的X预测新的Y。具体实现一般使用最小二乘法。原创 2017-11-17 16:14:41 · 6738 阅读 · 1 评论 -
机器学习_决策树与信息熵
意外越大,越不可能发生,概率就越小,信息量也就越大,也就是信息越多。原创 2017-11-16 22:56:54 · 4135 阅读 · 0 评论 -
自动机器学习框架之三_Auto-Keras
对于训练深度学习,设计神经网络结构是其中技术含高最高的任务,优秀的网络架构往往依赖建构模型的经验,专业领域知识,以及大量的算力试错。实际应用中往往基于类似功能的神经网络微调生成新的网络结构。 Auto-Keras是一个离线使用的开源库,用于构建神经网络结构和搜索超参数,支持RNN,CNN神经网络,它使用了高效神经网络搜索ENAS,利用迁移学习的原理将在前面任务中学到的权值应用于后期的模型中,...原创 2019-04-14 14:36:30 · 2561 阅读 · 0 评论 -
自动机器学习框架之一_Auto-Sklearn
当我们做完了特征工程之后,就可以代入模型训练和预测,对于模型的选择及调参,主要根据分析者的经验。在具体使用时,经常遇到同一批数据,同一种模型,不同的分析者得出的结果相差很多。 前面学习了几种常用的机器学习方法原理以及适用场景,对于完全没有经验的开发者,只要有足够时间,尝试足够多的算法和参数组合,理论上也能达到最优的训练结果,同理程序也能实现该功能,并通过算法优化该过程,自动寻找最优的模型解决...原创 2019-03-30 14:11:48 · 2810 阅读 · 0 评论 -
机器学习_总结篇_十大经典算法与算法选择
数据挖掘是人工智能的一个分枝,基本覆盖了大部分机器学习算法。原创 2017-11-30 19:47:31 · 753 阅读 · 0 评论 -
机器学习_隐马尔可夫模型HMM
最大期望EM,隐马尔可夫模型HMM与循环神经网络RN原创 2017-11-15 18:11:35 · 1151 阅读 · 0 评论 -
机器学习_集成算法
本文介绍了何时使用集成算法,使用哪个集成算法,以及流行的集成算法GBDT原创 2017-11-14 20:09:26 · 779 阅读 · 0 评论 -
机器学习_用SVD奇异值分解给数据降维
若将矩阵看做一个变换,那么任何这样的变换可以看做是两个旋转和一个缩放变换的复合,这点和特征值分解基本一样。它也可以通过对Sigma的调整实现降维,通过U和VT在高维和低维间转换。原创 2017-11-22 15:04:18 · 11092 阅读 · 0 评论 -
机器学习_用PCA主成分分析给数据降维
本篇将介绍PCA主成分分析的原理,Python实现及应用场景。原创 2017-11-21 22:40:26 · 11450 阅读 · 0 评论 -
自动机器学习框架之二_AutoML
Auto ML(Auto Machine Learning)自动机器学习是个宽泛的概念,有不只一个软件以此命名,本篇介绍的Auto-ML并非谷歌基于云平台的 AUTOML。本篇介绍的Auto-ML也是一款开源的离线工具,它的优势在于简单快速,且输出信息比较丰富。它默认支持Keras、TensorFlow、XGBoost、LightGBM 、CatBoost和 Sklearn等机器学习模型,整体使...原创 2019-04-06 20:21:02 · 943 阅读 · 1 评论 -
机器学习_统计模型之(三)朴素贝叶斯
简单地说朴素贝叶斯就是按概率求和,然后比一下是正例的概率大还是反例的概率大。原创 2017-11-24 15:19:57 · 930 阅读 · 0 评论 -
机器学习_统计模型之(二)贝叶斯网络
贝叶斯网络(Bayesian network)用网络结构代表领域的基本因果知识。贝叶斯网络中的节点表示命题(或随机变量),认为有依赖关系(或非条件独立)的命题用箭头来连接。原创 2017-11-24 15:14:04 · 1248 阅读 · 0 评论 -
机器学习_统计模型之(一)贝叶斯公式
统计模型的优势在于,用概率代替硬规则,如果两种可能性:0.51:0.49和0.99:0.01,如果用于预测,都会选前面的那种可能性,但是概率能展示出更多的信息。原创 2017-11-24 15:10:04 · 1178 阅读 · 0 评论 -
XGBoost_源码初探
1. 说明 本篇来读读Xgboost源码。其核心代码基本在src目录下,由C++实现,40几个cc文件,代码11000多行,虽然不算太多,但想把核心代码都读明白,也需要很长时间。 我觉得阅读的目的主要是:了解基本原理,流程,核心代码的位置,修改从哪儿入手,而得以快速入门。因此,需要跟踪代码执行过程,同时查看在某一步骤其内部环境的取值情况。具体方法是:单步调试或在代码中加入一些打印信息,因此选择...原创 2018-09-09 22:21:07 · 2123 阅读 · 0 评论 -
特征工程之_筛选
1. 说明 本文并非介绍某个成熟算法或者工具,只是个人的一点感悟,写得可能不正确,不全面,希望能给大家带来一些启发,也欢迎各位回复讨论。2. 特征工程 大数据相关的工作可简要地归纳为:模型部分和数据部分,在模型部分,目前大家的做法主要是拿现成的模型来用,对其做内部修改或重写的很少,主要工作在选型和调参。 相对来说,对数据部分做的工作更多,在比赛中数据都是固定的,且很多时候数据已脱敏,...原创 2018-08-19 22:39:21 · 642 阅读 · 0 评论 -
数据挖掘之_后处理
常常听说数据预处理,后处理相对少见,本篇来说说何时需要后处理,以及后处理的一些简单方法。 数据挖掘的流程一般是:输入数据->特征工程->模型训练/预测->导出结果。后处理是将模型预测的结果进一步处理后,再导出。 先看一个例子:比如我们网购小包装的咖啡,一般的购买习惯是,在少量购买时,需要多少买多少:一包,两包,三包;买的较多的时候,可...原创 2018-06-02 16:17:56 · 3678 阅读 · 1 评论 -
机器学习_SVM支持向量机
在没有领域相关的先验知识的情况下,SVM差不多是最好的不用修改就能很好工作的分类器了。原创 2017-11-27 22:03:01 · 473 阅读 · 0 评论 -
时序预测之四_Prophet时序模型
1. 说明 Prophet是FaceBook开源的时序框架。非常简单实用,你不需要理解复杂的公式,看图,调参,调用十几行代码即可完成从数据输入到分析的全部工作,可谓懒人之利器。 在效果方面,我在同一项目中尝试了ARIMA,将星期和节假日作为特征代入GBDT,Prophet,相对来说,Prophet效果最好,当然这与数据有关,也不能一概而论。总之,Prophet效果挺好的,训练速度也挺快。 Prop...原创 2018-05-20 14:05:37 · 5521 阅读 · 1 评论 -
时序预测之三_傅立叶和小波变换
1. 说明 用傅立叶变换预测时序数据,原理是把时域数据转换到频域,再转换回来.python的numpy和scipy里面都有现成的转换工具fft()和ifft(),但使用时会遇到一个问题:比如25天的数据转到频域再转回时域,还是25天,虽然拟合了数据,但没法直接预测未来,本篇介绍用它实现预测的方法.2. 傅立叶变换(1) 相关知识 之前写过关于傅立叶变换原...原创 2018-03-28 19:34:40 · 8349 阅读 · 5 评论 -
时序预测之二_ARIMA
1. 说明 ARMA回归滑动平均模型(Autoregressive Moving Average Model,简记ARIMA),是研究时间序列的重要方法,由自回归模型(简称AR模型)与滑动平均模型(简称MA模型)为基础“混合”构成。常用于具有季节变动特征的销售量、市场规模的预测等。ARIMA模型相对ARMA模型,仅多了差分操作。2. 相关概念(1) 自回...原创 2018-03-23 15:58:38 · 10772 阅读 · 0 评论 -
时序预测之一_概述
1. 说明 前一段参加了天池的“盐城汽车上牌量预测“比赛。第一次面对大规模的时序问题,从比赛的过程,到赛后各位大佬的算法分享,收获很多。也将解决该类问题的套路在此总结一下。 本篇是总述,其中提到的具体算法,如:加窗,ARIMA,傅里叶/小波变换,LSTM等等将在本系列的后续文章中一一详述。2. 问题描述 上牌量预测是一个典型的时序问题,且数据简单清晰,以复赛A榜数据为例,它提供了前3年...原创 2018-03-15 11:42:47 · 4359 阅读 · 1 评论