泳鱼
泳鱼
## 1 时间序列 时间序列是指将某种现象某一个统计指标在不同时间上的各个数值,按时间先后顺序排列而形成的序列。典型的时间序列问题,例如股价预测、制造业中的电力预测、传统消费品行业的销售预测、客户日活跃量预测等等,本文以客户日活跃量预测为例。  ## 2 预测方法 时间序列的预测方法可以归纳为三类: 1、时间序列基本规则法-周期因子法; 2、传统序列预测方法,如均值回归、ARIMA等线性模型; 3、机器学习方法,将序列预测转为有监督建模预测,如XGBOOST集成学习方法,LSTM长短期记忆神经网络模型。 ### 2.1 周期因子法 当序列存在周期性时,通过加工出数据的周期性特征预测。这种比较麻烦,简述下流程不做展开。 1、计算周期的[因子 。](https://www.jianshu.com/p/31e20f00c26f?spm=5176.12282029.0.0.36241491UUhnZE) 2、计算base 3、预测结果=周期因子*base ### 2.2 Ariama ARIMA模型,差分整合移动平均自回归模型,又称整合移动平均自回归模型 (移动也可称作滑动),时间序列预测分析方法之一。ARIMA(p,d,q)中, AR是"自回归",p为自回归项数;MA为"滑动平均",q为滑动平均项数, d为使之成为平稳序列所做的差分次数(阶数)。 建模的主要步骤是: 1、数据需要先做平稳法处理:采用(对数变换或差分)平稳化后,并检验符合平稳非白噪声序列; 2、观察PACF和ACF截尾/信息准则定阶确定(p,...
## 1 欺诈定义 欺诈是用户主观、以非法占有为目的,采用虚构事实或隐瞒事实真相的方法,骗取他人财物或金融机构信用,破坏金融管理秩序的行为。 - 按照欺诈的人数来分可分为:个体欺诈和团伙欺诈; - 按照欺诈的主体来可分为第一、第二、第三方欺诈; - 按照欺诈的行为可分为:金融信贷欺诈、互联网业务欺诈和信用卡欺诈三大类。按照欺诈的行为,大的方向上可分为:金融信贷欺诈、互联网业务欺诈和信用卡欺诈三大类,如果进一步 细分落到具体的场景上有:盗刷、薅羊毛、骗贷、套现、刷单、 刷好评等行为,根据不同的欺诈场景的应对方法是有所不同的。  ## 2 项目背景 营销欺诈是互联网业务欺诈大类的一种,指的是羊毛党通过虚假身份参加营销活动大量获利的行为。据统计,存在1000万+被滥用身份信息、 200万+网络黑产从业者、超千亿黑产市场规模。“羊毛党”也逐渐从分散个体向组团集聚发展,形成了有组织、有规模、有分工的职业“羊毛党”。  在此背景下,为避免营销资源浪费,在加强活动规则设计的同时,亟需运用技术手段搭建营销反欺诈系统,以保护良好营销环境,提升营销效果。 ## 3 方案设计 模型层面主要应用的技术有:有监督分类模型、知识图谱无监督模型、业务策略。由于欺诈形式大都是未知、复杂多样的,本方案通过数据分析及无监督检测的方式对有监督模型做补充。  ## 4 欺诈分析: 在复杂的欺诈任务上,无法仅凭仅有的少数欺诈标签建立一个良好的欺诈模型(更何况标签质量参差不齐的),知己知彼百战不殆,这需要去了解业务知识、欺诈链,并采用更合适的技术手段来识别欺诈。 ###...
## 项目背景 根据中国信息通信研究院发布的《中小企业“上云上平台” 应用场景及实施路径白皮书(2019)》统计,中小企业是国民经济和社会发展的生力军,贡献了50%以上的税收,60%以上的国内生产总值,70%以上的技术创新,80%以上的城镇劳动就业,90%以上的企业数量。中央多次强调“六稳”,其中稳就业是“六稳”的基石,稳住了中小企业就稳住了经济的基本面。  然而相对于大中型企业而言,小微企业在市场竞争中仍处于弱势地位,特别是在非常时期,融资问题导致其很难保证经营的稳定性与持续性。小微企业的融资问题,反应的是金融行业的根本问题,**解决金融流通效率间的信任问题**。而金融科技旨在利用数字科技优势,利用科技去解决金融实体间的信任问题。本文介绍的小微贷款评分卡即是一种重要的科技手段。 ## 1 项目方案 小微贷款评分卡模型是利用小微快贷业务申请信息、产品信息、账户信息、实控人信息,结合央行征信数据、行外数据(工商、税务、司法等),运用机器学习方法构建人工智能风险评价模型,完善现有的小微快贷业务风险评价体系。  ## 2 模型设计  ### 2.1 好坏用户定义 通过滚动比率Roll Rate分析某个逾期状态向其它逾期状态转移的概率(M1即逾期1~30天,以此类推),从而确定坏客户(大概率保持逾期状态的用户);没有逾期的客户为好客户;介于好坏客户之间定义为灰客户。如下图可以明显看到逾期M2客户就已经有90%概率会继续逾期。  即可以滚动率的拐点(如逾期M2及以上)作为坏客户的定义。  ### 2.2 表现期、观察期、观察点定义  表现期:采用Vintage分析账户彻底成熟度坏需要的时间作为表现期。即是账户从应还款日开始,多久可充分暴露出是“坏”情况,按照上面坏的定义(如M2+),观察坏客户的暴露周期,如下图(本图无区分不同期数客户)发现14个月可以暴露大部分的坏客户。 ...
## XGBOOST 简介 **XGBOOST:简单来说是集成了很多个基学习器(如Cart决策树)的模型**。它是集成学习的串行方式(boosting)的一种经典实现,是广泛应用在工业、竞赛上的一大神器。 > **集成学习**是结合一些的基学习器来改进其泛化能力和鲁棒性的方法,主流的有两种集成思想: > 1. 并行方式(bagging):独立的训练一些基学习器,然后(加权)平均它们的预测结果。如:Random Forests; > 2. 串行方式(boosting):一个接一个的(串行)训练基学习器,每一个基学习器主要用来修正前面学习器的偏差。如:AdaBoost、GBDT及XGBOOST; > `(注:此外还有stacking方法,但stacking更多被看做是融合的策略;)` ## 一、基学习器--决策树 决策树有非线性、拟合能力强且可以通过剪枝快速调整的特性,集成学习通常选择决策树作为基学习器。 `(注:XGBOOST中的基学习器可以是CART回归树-gbtree, 也可以是线性分类器-gblinear。本文着重从树模型介绍。)` 决策树是一种简单的机器学习回归/分类方法,它是由(if-then)决策结构以树形组合起来,叶子节点代表最终的预测值或类别。典型的决策树模型有:ID3、C4.5和CART。 决策树算法可以概括为两个阶段: - **树的生长**:思想是自顶向下递归分治构建树,是依靠(信息增益、信息增益比、gini、平方误差)等某个指标做特征选择、划分的过程。  - **树的剪枝**:决策树容易对数据产生过拟合,即生长出结构过于复杂的树模型。通过剪枝算法可以降低复杂度,减少过拟合的风险。 决策树剪枝算法的根本目的是极小化损失函数(经验损失+结构损失),基本策略有”预剪枝“和”后剪枝“两种策略: **①预剪枝**:是在决策树生成过程中,限制划分的最大深度、叶子节点数和最小样本数目等,以减少不必要的模型复杂度; **②后剪枝**:是先从训练集生成一棵完整的决策树,然后用用验证集自底向上地对非叶结点进行考察,若将该节点对应的子树替换为叶子结点(剪枝)能带来决策树的泛化性能提升(即目标函数损失更小,常用目标函数如:loss...
## 前言 **机器学习**中,模型的拟合效果意味着对新数据的预测能力的强弱(泛化能力)。而程序员评价模型拟合效果时,常说“过拟合”及“欠拟合”,那究竟什么是过/欠拟合呢?什么指标可以判断拟合效果?以及如何优化? ## 欠拟合&过拟合的概念 `注:在机器学习或人工神经网络中,过拟合与欠拟合有时也被称为“过训练”和“欠训练”,本文不做术语差异上的专业区分。` **欠拟合**是指相较于数据而言,模型参数过少或者模型结构过于简单,以至于无法学习到数据中的规律。 **过拟合**是指模型只过分地匹配特定数据集,以至于对其他数据无良好地拟合及预测。其本质是模型从训练数据中学习到了统计噪声,由此分析影响因素有: 1. 训练数据过于局部片面,模型学习到与真实数据不相符的噪音; 2. 训练数据的噪音数据干扰过大,大到模型过分记住了噪音特征,反而忽略了真实的输入输出间的关系; 3. 过于复杂的参数或结构模型(相较于数据而言),在可以“完美地”适应数据的同时,也学习更多的噪声;  如上图以虚线的区分效果来形象表示模型的拟合效果。Underfitting代表欠拟合模型,Overfitting代表过拟合模型,Good代表拟合良好的模型。 ## 拟合效果的评估方式  现实中通常由训练误差及测试误差(泛化误差)评估模型的学习程度及泛化能力。 **欠拟合**时训练误差和测试误差在均较高,随着训练时间及模型复杂度的增加而下降。在到达一个**拟合最优**的临界点之后,训练误差下降,测试误差上升,这个时候就进入了**过拟合**区域。它们的误差情况差异如下表所示:  ## 拟合效果的深入分析 对于拟合效果除了通过训练、测试的误差估计其泛化误差及判断拟合程度之外,我们往往还希望了解它为什么具有这样的泛化性能。统计学常用“偏差-方差分解”(bias-variance decomposition)来分析模型的泛化性能:其泛化误差为偏差、方差与噪声之和。  **噪声(ε)** 表达了在当前任务上任何学习算法所能达到的泛化误差的下界,即刻画了学习问题本身(客观存在)的难度。 **偏差(Bias)**...
# 前言 互联网的原始目的,就是为了传输文本(文本对话)。那我们使用浏览器发送请求后页面是如何呈现在我们面前的呢? 接下来由图片介绍下URL到呈现页面的过程。 # 一、文本对话--从请求到响应  我们在浏览器中输入一个 URL,回车之后便会在浏览器中观察到页面内容。实际上这个过程是: (1)浏览器向网站所在的服务器发送了一个 Request(请求) (2)网站服务器接收到这个Request之后进行处理和解析 (3)然后返回对应的一个Response(响应)给浏览器,Response里面就包含了页面的源代码等内容 (4)浏览器再对其进行解析便将网页呈现了出来。 这个文本对话的过程是建立在怎样的规则上面呢?简单说,**这个通信的过程是基于TCP/IP通信协议族规范上实现的**,完成从客户端到服务器端等一系列信息交换的流程。 # 二、TCP/IP 协议族介绍 ## 1、TCP/IP协议族是什么呢? TCP/IP协议族的目的就是通过建立规则使计算机之间可以进行信息交换。 相互通信的双方就必须基于相同的方法,比如由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定,我们就把这种规则称为协议(protocol)。通常我们说的TCP/IP协议族是互联网相关的各类协议族的总称。  TCP/IP协议族由那么多的协议组成,那功能上如何划分的呢? 这里就说到TCP/IP重要的层次化划分,按层次可以分为4层:**应用层、传输层、网络层和链路层**。(层次化的好处在于每个层次内部的设计可以自由改动,并通过各层的接口关联起来,而如果只有一个协议统筹就需要对所有涉及到的部分都重新设计。)  ## 2、TCP/IP各功能层的作用 (1) **应用层**:决定了向用户提供应用服务时候的通信活动。应用层负责传送各种最终形态的数据,是直接与用户打交道的层,典型协议是HTTP、FTP等。...
>本文示例沿用之前文章的数据:[一文梳理金融风控建模全流程(Python)](https://mp.weixin.qq.com/s?__biz=MzI4MDE1NjExMQ==&mid=2247489574&idx=1&sn=98ca40dd2775428963b50a05e3a1f06c&chksm=ebbd9a86dcca1390c85fe18b330db1f8c0458a783a8d327c65a74fbcb38f2b72390dc64c4fe2&scene=178&cur_album_id=1986073923821551618#rd)) ## 一、树模型的解释性 集成学习树模型因为其强大的非线性能力及解释性,在表格类数据挖掘等任务中应用频繁且表现优异。 模型解释性对于某些领域(如金融风控)是极为看重的,对于树模型的解释性,我们常常可以通过输出树模型的结构或使用shap等解释性框架的方法 ### graphviz 输出树结构 ``` # 需要先安装https://graphviz.org/download/ import os os.environ["PATH"] += os.pathsep + 'D:/Program Files/Graphviz/bin/' # 安装路径 for k in range(n_estimators): #遍历n_estimators棵树的结构 ax = lightgbm.plot_tree(lgb, tree_index=k,...
如github下载较慢,也可以百度网盘自行下载整个仓库资源。 链接:https://pan.baidu.com/s/1wrtNSxGm7tfO5T4LwyrLSw 提取码:aipy
在并不算漫长的人工智能发展史,各种行业背景的专家助力了AI极大的发展,也带来了很多专业术语、概念。术语对于专业研究者是比较清晰及严谨,但对于初学者可能就有理解层面的困扰。 特别的,很多概念、术语说来说去可能基本上就是一个意思,很多复杂的概念背后的思想也可以很朴素的! **在此本文致力于对AI的核心概念的系统地祛魅,简化理解。** ### 一、基本概念 人工智能算法,现如今基本上指的就是【机器学习】,而机器学习基本也就是【归纳学习(也就是小学三年级学的归纳法)】或【统计学习】。 >注:补充一句,机器学习与统计学习并不等同,但两者是很相似的。如Rob Tibshirani 教授曾总结统计学习、机器学习对应的“术语表”。 两者主要区别就是机器学习应用目的在于预测,而统计学习的主要目的在于分析及解释。 把机器学习不严谨地替换成归纳学习,想必大家对这个概念就清晰了很多——机器学习也就是学习归纳出数据规律,并加以应用规律预测的过程。 比如,收入的回归预测。如下图我们可以发现收入与教育程度的情况存在着某种线性规律,根据初中数学的基础,我们大概瞄一下,两者关系可能是 收入 约等于 3倍的受教育的年限(Y = 3X ),依据这条不严谨的规律我们可以预估不同教育程度的人相应的收入状况。  比如,好西瓜的分类预测。如下一大堆西瓜特征的数据中,我们稍加观察可能会发现西瓜纹理如果清晰,则它大概率是一个好瓜。  如上看似简单的归纳判断,其实就已经完成了一项“人工”智能的预测! 可见,人工智能的基本概念其实并不复杂, 人工智能、机器学习的核心就在于,**如何从数据中发现足够正确及适用的客观统计规律,并应用于实际工程中,对未知情况做出预判。** 这里,也给想从事人工智能的爱好者先提个醒,使用人工智能技术(即 调包--见文末)也挺容易的,但人工智能技术原理、工程实现确实 难 !实际场景中还需结合业务提供更准确及效率预测有各种考量,如教育程度-收入回归预测简单的例子中: - 如何选择合适的回归模型?(线性回归、神经网络回归、树回归模型...)...
对于深度学习开发者,操作系统的选择、到深度学习相关依赖包安装、环境配置上,这些步骤看似简单基础,但其实也经常是有不少麻烦的。本文简要梳理了,从环境配置到深度学习建模的完整的流程,有所帮助的话,可以文末点个赞。 ## 一、操作系统的选择 ### 1.1 Linux 如果是深度学习的重度用户,首选的操作系统是Linux,虽然操作门槛搞一些(如命令行操作),但linux的开发环境很友好,可以减少很多依赖包不兼容的问题,可以大大提高效率。linux的发行版很多,比较常用的的可以安装个包含图形界面及命令行的Ubuntu。  ### 1.2、 Windows 如果要兼顾生活及开发,就笔记本上面看看视频、写写博客、跑跑代码(像我平时就是ctrl c ,再跑跑代码的),windows就够了,操作简单而且上面的各种依赖包也很齐全。(下文主要以Windows系统为例展开介绍,其他系统也是大同小异,有不清楚地方可以找相应教程)。 ### 1.3、 双系统的方案 如果即想要linux做开发、windows兼顾生活,可以借助安装双系统或者虚拟机,那么有几种选择: 1、 安装双系统 硬件资源够的话,安装双个系统是比较直接的,能够比较纯粹地使用windows或者Linux,但是最麻烦的点在于切换间比较麻烦,需要开关机地切换。 2、 虚拟机 通过在虚拟机(如vmware)上面再安装另一个操作系统,这样打开虚拟机就可以很方便使用另一个系统了,但是缺点是虚拟机的硬件资源消耗也很高,而且有性能问题及各种bug。按我之前的尝试,这里更推荐linux作为主系统+虚拟机的windows,能更好发挥出Linux开发的效能。  3、 WSL 适用于 Linux 的...