avatar
Articles
794
Tags
222
Categories
158

Yan 的杂物志_个人主页分享
Search
几种常见的数学分布
Created2018-11-03|2_Note0_Technic2_算法3_数据分布
几种常见的数学分布 #数学 1. 什么是数学期望   举个例子:某城市有 10 万个家庭,没有孩子的家庭有 1000 个,有一个孩子的家庭有 9 万个,有两个孩子的家庭有 6000 个,有 3 个孩子的家庭有 3000 个 (0 * 1000 + 1 * 90000 + 2 * 6000 + 3 * 3000) / 100000 = 1.11   数学期望 (mean)(或均值,亦简称期望)是试验中每次可能结果的概率乘以其结果的总和 0 * 0.01 + 1 * 0.9 + 2 * 0.06 + 3 * 0.03 = 1.11 2. 概率密度与累积分布   概率密度一般的写法是:P(X=a) = …,即 X 等于某个值 a 的可能性   累积分布一般的写法是:P(X<=a) = …,即 X 小于等于某个值 a 的所有可能性累加之和   这二者千万别弄混,否则就会被各种公式绕晕。下图是增量分布的概率密度图(橙色)和累积分布图(蓝色)。 3. 常见的分布 (1) 离散分布: 伯努利分布(零一分布,两点分布),二项分布,几何分布,泊松分布(Poisson 分布) (2) 连续分布: ...
调度工具Airflow
Created2018-10-27|2_Note0_Technic3_编程其它编程
调度工具 Airflow 1. 什么是 Airflow  Airflow 是 Airbnb 开源的 data pipeline 调度和监控工作流的平台,用于用来创建、监控和调整 data pipeline(ETL)。 2. 简单的定时任务 cron   假设我们想要定时调用一个程序,比如说:每天定时从 Web 抓数据,我们可以使用 cron。cron 是一个 Linux 下的后台服务,用来定期的执行一些任务,在/etc/crontab 中设置后即可,基本写法如下: 12# 分钟 小时 日 月 周 用户 命令 17 * * * * root date >> /tmp/time.log   它的意思是每个小时的第 18 分钟,将当前时间写入 log 文件,注意各值的取值范围(分钟 0 - 59,小时 0 - 23,天 1 - 31,月 1 - 12,星期 0 - 6,0 表示星期天)修改/etc/crontab 后,还需要用 $ sudo service cron restart 命令重启 crontab 任务,才能生效。 3. 为什么要用 Airflow   有了 cro ...
机器学习之_逻辑回归
Created2018-10-13|2_Note0_Technic2_算法4_机器学习经典算法
机器学习之 _ 逻辑回归 逻辑回归又称 logistic 回归,逻辑斯谛回归,是一种广义的线性回归分析模型。 1. Sigmod 函数  Sigmoid 函数也是神经网络中常用的函数,用于把 x 从负无穷到正无穷压缩到 y 从 0 到 1 之间。画出来就是一条 S 型曲线,如下图中的蓝色曲线:   它以 0 点为中心对称,公式如下:   当 x 值接近负无穷时,分母很大,S(x) 接近 0,当 x 接近正无穷时,分母接近 1,S(x) 接近 1,当 x 为 0 时,S(x) 为 1/2 在正中间。S 曲线的弯曲程度由 e 决定。它的导数是上图中的橙色曲线:   导数的意义是变化率,当 x 很大时或很小时,S’(x) 接近 0,而在 x 接近 0 时,S’(x) 值最大,即 S 曲线在 0 点处变化剧烈,它勾勒出了 y 在 0 与 1 之间模棱两可的区域。 2. 逻辑斯谛分布   必须满足逻辑斯谛分布,才能用逻辑回归。那么什么是逻辑斯谛分布? 逻辑斯谛分布即增长分布,增长分布的分布函数是“增长函数”,公式如下:   可以看到,它把 (x-μ)/γ代入 Sigmoid 函数。其中μ ...
XGboost_增量学习
Created2018-10-06|2_Note0_Technic2_算法4_机器学习XGBoost
Xgboost 之增量学习 1. 说明 当我们的训练数据非常多,并且还在不断增加时,每次都用全量训练,数据过多,时间过长,此时就可以使用增量训练:用新增的数据微调校正模型。 2. 全量与增量的差异 在使用增量训练时,最关心的问题是:全量和增量的差别,从而确定增量训练的使用场景。 假设有 200 条数据,第一次训练 150 条,第二次训练 50 条,和直接用 200 条训练的差异在于:在第二次训练 50 条时,前 150 条数据已经不存在了,模型更拟合于后面的数据。如果我们定期增量训练,那么离当前时间越近的数据对模型影响越大,这也是我们想要的结果。但如果最后一批数据质量非常差,就可能覆盖之前的正确实例的训练结果,把模型带偏。 同理,如果我们按时间把数据分成几部分,然后按从早到晚的顺序多次训练模型,每个模型在上一个模型基础上训练,也间接地参加了后期实例的权重。 Xgboost 提供两种增量训练的方式,一种是在当前迭代树的基础上增加新树,原树不变;另一种是当前迭代树结构不变,重新计算叶节点权重,同时也可增加新树。 对于已存在的决策树,早期训练的实例决定了模型的结构(选择哪些特征及分裂点),后 ...
XGboost_调试方法
Created2018-10-06|2_Note0_Technic2_算法4_机器学习XGBoost
Xgboost 调试方法 1. 调试 test 目录下的测试用例   在测试程序后面加入以下代码,即可启动调试程序 12if __name__ == "__main__": unittest.main() 2. 显示树结构 1234import matplotlib.pyplot as plt fig,ax = plt.subplots()xgb.plot_tree(gbdt_03a, ax = ax, num_trees=0) # 显示模型中的第一棵树plt.show() 3. 打印详细调试信息   在 xgb 的 params 中设置: 12'silent': 0,'debug_verbose': 5 4. 修改源码   修改 c++ 源码后如果运行 c++ 程序,在 xgboost 目录下执行编译命令 make,重新生成二进制程序 xgboost,运行即可。   修改 c++ 源码后如果运行 Python 程序,需要将 xgboost/lib/libxgboost.so,复制到 python 对应的库目录下(如:/ ...
Python的Debug工具
Created2018-10-04|2_Note0_Technic3_编程Python工具
Python 的 Debug 工具 1. 命令行使用 pdb (1) 我们先写个简单的 python 程序 a.py 如下: 1234for i in range(0,3): print(i) print("@@@@") print("###") (2) 用 pdb 调试 1$ pdb a.py # 此后看到 > 提示符,即可以输入命令调试 2. 常用 pdb 命令 pdb 命令和 gdb 差不多,最常用的命令如下: 单步调试(进入函数):s(tep) 单步调试(不进入函数):n(ext) 继续往后执行,直到下个断点:c(ont(inue)) 运行到函数结束:r(eturn) 运行到当前循环结束:unt(il) 设置断点:b(reak) 文件名: 行号(或行号,或函数名) 显示当前调用关系:w(here) 显示当前代码段:l(ist) 显示变量:p(rint) 变量名 显示当前函数的参数:a(rgs) 显示帮助信息:h(elp) 退出:q(uit) 3. Notebook 使用 pdb (1) 单步调试   用 No ...
XGBoost_原理
Created2018-09-22|2_Note0_Technic2_算法4_机器学习XGBoost
XGBoost_ 原理 1. 说明: 难了不会,会了不难,你明白了,觉得这还用说?不明白,跳步之后,似懂非懂。本篇是我对论文《XGBoost: A Scalable Tree Boosting System》的阅读笔记,用大白话解释 xgboost 原理,学霸请跳过,懒得看公式的也请跳过。 2. 第一步:整体误差(重点:整体视角) 整体误差指的是 XGBoost 模型训练完成之后,将训练集中所有实例代入模型,用以下函数(总误差 L())衡量模型的好坏: 左边是训练集所有实例的误差之和,i 指每个实例,y^是预测值,y 是实际值,而 l() 是衡量 y’与 y 差异的方法,比如 RMSE。左边比较好理解,就是说训练一个模型,最好能对于所有的实例都做出与真实值相似的预测。 右边是正则项,它的用途就是防止模型过拟合,比如说一个模型,一共 400 个实例,模型做了 400 个叶节点,与实例一一对应,它的泛化就很差,所以应该尽量简化模型,正则项在第四步详述。 3. 第二步:计算 t 棵树时的误差(重点:从第 t-1 棵到第 t 棵) 梯度下降决策树是由多棵树组成的模型。假设它由 t 棵树组成, ...
XGBoost_源码初探
Created2018-09-09|2_Note0_Technic2_算法4_机器学习XGBoost
XGBoost_ 源码初探 ##1. 说明   本篇来读读 Xgboost 源码。其核心代码基本在 src 目录下,由 C++ 实现,40 几个 cc 文件,代码 11000 多行,虽然不算太多,但想把核心代码都读明白,也需要很长时间。我觉得阅读的目的主要是:了解基本原理,流程,核心代码的位置,修改从哪儿入手,而得以快速入门。因此,需要跟踪代码执行过程,同时查看在某一步骤其内部环境的取值情况。具体方法是:单步调试或在代码中加入一些打印信息,因此选择了安装编译源码的方式。 ##2. 下载编译   用参数 --recursive 可以下载它的支持包 rabit 和 cur,否则编不过 123$ git clone --recursive https://github.com/dmlc/xgboost$ cd xgboost$ make -j4 ##3. 运行   测试程序 demo 目录中有多分类,二分类,回归等各种示例,这里从二分类入手。 1234$ cd demo #运行一个测试程序 $ cd binary_classification$ ./runexp.sh # 可以通过修改cfg ...
知识图谱之WordNet
Created2018-09-02|2_Note0_Technic2_算法6_自然语言机器学习
知识图谱之 WordNet #自然语言处理 1. 说明   今天讨论的是自然语言中的知识抽取和知识表示,换言之,就是如何从大量的书籍文献中剥离出我们关心的所谓“知识”,并将起组织保存成简单可用的描述。   不同的知识类型需要采用不同的知识表示方式,温有奎教授总结了 10 种知识类型(具体见参考部分)。对于静态概念及概念之间关系用面向对象形式来表示,对命题型问题用一阶逻辑来表示,对于系统流程和实验流程等过程性知识用脚本表示法。   静态概念是思维最基本的组成单元(以下简称基元),无论是命题还是流程,都离不开基元。我们应该把基元看作一种语义,而非一个单词。因为很多单词不具唯一性,常有一词多义,和一义多词的问题。   再来看看基元之间的关系,比如:水果,苹果,红富士,它们可能指向同一物体,又可能不同;它们在一定程度上拥有共同属性,又拥有各自特征;基元相互之间又可能有类别的包含,近义,反义,整体与局部等各种关系……   中文中的单词至少有几万个,这还不包括简单词组成的短语,如果有一个命题是“苹果是圆的”,那么是否也需要同时加入“红富士是圆的”,如果这样描述属性,恐怕是举不胜举了。而人类一般可以 ...
特征工程之_筛选
Created2018-08-19|2_Note0_Technic2_算法3_数据数据分析
特征工程之 _ 筛选 1. 说明   本文并非介绍某个成熟算法或者工具,只是个人的一点感悟,写得可能不正确,不全面,希望能给大家带来一些启发,也欢迎各位回复讨论。 2. 特征工程   大数据相关的工作可简要地归纳为:模型部分和数据部分,在模型部分,目前大家的做法主要是拿现成的模型来用,对其做内部修改或重写的很少,主要工作在选型和调参。   相对来说,对数据部分做的工作更多,在比赛中数据都是固定的,且很多时候数据已脱敏,特征工程能做的不太多,而真实场景中,往往能从复杂数据中提取更多信息,因此如期何提取以及筛选信息就变得尤为重要。 3. 筛选   筛选分为筛选实例和筛选特征,如果把整体数据看成一张表,就是删行或者删列。   在实际应用时,常遇到的一个难题是:怎么把人的经验和算法结合起来,特征工程是一个重要的入口,一方面我们可以用经验构造更多特征,另一方面,也可以通过经验选择合理的实例代入模型,以及分配权重。 4. 特征筛选 (1) 为什么筛选   对特征的筛选主要是去掉无关特征,无关特征一般有两种影响:在数据量大的情况下,影响训练速度,在数据量少的情况下,带来更多误差。像天池的汽车上牌赛和 ...
1…545556…80
avatar
Yan.xie
顺流而下还是逆流而上?
Articles
794
Tags
222
Categories
158
Follow Me
Announcement
This is my Blog
Recent Post
对谈_250427_舞台与社交的自我察觉2025-05-07
对谈_250424_开源进化2025-05-07
对谈_25042x_剃头技巧2025-05-07
对谈_250326_强迫症和不甘心2025-05-07
对谈_250401_高敏感是武器2025-05-07
Categories
  • 0_IMO49
    • 工作1
    • 说给一个人听48
      • 01_自我建构20
        • 思考与觉悟11
        • 行动与进化9
      • 02_情绪心理12
      • 03_关系互动5
Tags
后端测试 数据库 世界观 程序员 阅读/育儿 Ubuntu 音频处理 开源社区 生物医学 代码模型 Android 成瘾 android 语音识别 自然语言处理/工具 主题笔记 阅读哲学 阅读/哲学 版本管理 无代码开发 编程语言/JNI 关系规则 Docker 自信 模型增强 用户验证 佛教 思考 阅读/电影 笔记 #论文阅读 社交 操作系统 情感 价值观 Linux 效率 移动开发 后端 Django
Archives
  • May 202550
  • April 202517
  • March 202512
  • February 20253
  • January 20256
  • December 20243
  • November 20246
  • October 20244
Info
Article :
794
Total Count :
1073.3k
UV :
PV :
Last Push :
©2020 - 2025 By Yan.xie
Framework Hexo|Theme Butterfly
京公网安备11010802043346号
京ICP备2023029600号-1
Search
Loading the Database