智慧物流配送模式有哪些类型
Prediction is all you NeedLesson-24学习方法Thinking:behind the theory,original from the real problemAction:solve problems by tools,present the results 今天的学习目标ProjectsProject:基于评分卡的风控模型开发Project:物资分类生成模拟数据逻辑回归超参数调优(贝叶斯优化)绘制BCG矩阵四象限Prediction is all you needPredict Wheel Review(矩阵分解,因子分解机,树模型,Attention机制,Embedding与Graph Embedding,时间序列)基于内容的推荐系统大数据PySpark使用模型可解释性1/2 ProjectsProject:基于评分卡的风控模型开发Project:基于评分卡的风控模型开发数据集GiveMeSomeCredit,15万样本数据https:/ 基本属性:包括了借款人当时的年龄 偿债能力:包括了借款人的月收入、负债比率 信用往来:两年内35-59天逾期次数、两年内60-89天逾期次数、两年内90天或高于90天逾期的次数 财产状况:包括了开放式信贷和贷款数量、不动产贷款或额度数量。其他因素:包括了借款人的家属数量 时间窗口:自变量的观察窗口为过去两年,因变量表现窗口为未来两年字段说明类型SeriousDlqin2yrs90天以上逾期或更差Y/NAge年龄整数RevolvingUtilizationOfUnsecuredLines除房地产和汽车贷款等无分期付款债务外,信用卡和个人信用额度的总余额除以信贷限额百分比DebtRatio债务比(每月偿还的债务,赡养费,生活费除以每月的总收入)百分比MonthlyIncome每月收入实数NumberOfOpenCreditLinesAndLoans公开贷款(如汽车贷款或抵押贷款)和信用额度(如信用卡)的数量整数NumberRealEstateLoansOrLines抵押贷款和房地产贷款的额度(包括房屋净值信贷)整数NumberOfTime30-59DaysPastDueNotWorse借款人逾期30-59天的次数,但在过去两年没有更糟整数NumberOfTime60-89DaysPastDueNotWorse借款人逾期60-89天的次数,但在过去两年没有更糟整数NumberOfTimes90DaysLate借款人逾期90天(或以上)的次数整数NumberOfDependents除自己(配偶、子女等)以外的家庭受养人人数整数Project:基于评分卡的风控模型开发Project 基于评分卡的风控模型开发:Step1,数据探索性分析违约率分析缺失值分析对于某个字段的统计分析(比如RevolvingUtilizationOfUnsecuredLines)Step2,数据缺失值填充,采用简单规则,如使用中位数进行填充Step3,变量分箱1)对于age字段,分成6段-math.inf,25,40,50,60,70,math.inf2)对于NumberOfDependents(家属人数)字段,分成6段-math.inf,2,4,6,8,10,math.inf3)对于3种逾期次数,即NumberOfTime30-59DaysPastDueNotWorse,NumberOfTime60-89DaysPastDueNotWorse,NumberOfTimes90DaysLate,分成10段-math.inf,1,2,3,4,5,6,7,8,9,math.inf4)对于其余字段,即RevolvingUtilizationOfUnsecuredLines,DebtRatio,MonthlyIncome,NumberOfOpenCreditLinesAndLoans,NumberRealEstateLoansOrLines 分成5段Project:基于评分卡的风控模型开发Project 基于评分卡的风控模型开发:Step4,特征筛选使用IV值衡量自变量的预测能力,筛选IV值0.1的特征字段Step5,对于筛选出来的特征,计算每个bin的WOE值Step6,使用逻辑回归进行建模训练集、测试集切分计算LR的准确率featuresbinwoeRevolvingUtilizationOfUnsecuredLines(0.699,50708.03.463412RevolvingUtilizationOfUnsecuredLines(0.271,0.6991.054603RevolvingUtilizationOfUnsecuredLines(0.0832,0.2710.420420RevolvingUtilizationOfUnsecuredLines(-0.001,0.01920.276204RevolvingUtilizationOfUnsecuredLines(0.0192,0.08320.235185NumberOfTime30-59DaysPastDueNotWorse(1.0,2.05.036574NumberOfTime30-59DaysPastDueNotWorse(-inf,1.00.772730NumberOfTime30-59DaysPastDueNotWorse(2.0,3.07.595036Project:基于评分卡的风控模型开发Step7,评分卡模型转换设p为客户违约的概率,那么正常的概率为1-p客户违约概率p可以表示评分卡的分值计算,可以通过 分值表示为比率对数的 线性表达式来定义,即Score计算公式类似 y=kx+b,A和B是常数,A称为“补偿”,B称为“刻度”,公式中的负号可以使得违约概率越低,得分越高=ln()常数A、B可以通过将两个假设的分值带入计算得到:1)基准分,即给某个特定的比率 时,预期的分值为通常,业内的基准分为500/600/6502)PDO(point of double odds),即比率翻倍的分数比如,odds翻倍时,分值减少50比率为 的点的分值应该为代入式中,可以得到:求解得:Project:基于评分卡的风控模型开发Step7,评分卡模型转换假设odds=1的时候,特定的分数为650分Thinking A 和 B=?Step7,评分卡模型转换逻辑回归:将公式变化下,可得 ,即所以,Odds可以和逻辑回归无缝结合评分卡的逻辑是Odds的变动与评分变动的映射,即把Odds映射为评分因为所以 Project:基于评分卡的风控模型开发qcut使用使用qcut可以对一组数据分成几个区间比如,我们有11家公司,他们的年销售额分别为:1000,856,123,523,33,71,223,699,103,456,923请你对这11家公司的年销售额进行分箱1)按照 高/低,两个等级2)按照 first 10%,second 10%,third 10%以及 last 70%四个等级#随机销售额sales=pd.Series(1000,856,123,523,33,71,223,699,103,456,923)print(len(sales)#将销售额分成 低/高 两个等级print(pd.qcut(sales,0,0.5,1,labels=small sales,large sales)#将销售额分成 first 10%,second 10%,third 10%以及 后70%四种等级print(pd.qcut(sales,0,0.7,0.8,0.9,1,labels=last 70%,third 10%,second 10%,first 10%)Project:基于评分卡的风控模型开发qcut使用比如,我们有11家公司,他们的年销售额分别为:1000,856,123,523,33,71,223,699,103,456,923Thinking:自动将这11家公司的销售额按照5组进行划分print(pd.qcut(sales,q=5)这里q为参数,表示要分组的个数qcut与cut的区别#根据数值的频率来选择分箱,使得区间内的频率是均匀的print(pd.qcut(sales,q=5)#根据数值本身来选择分箱,使得区间是均匀的间隔print(pd.cut(sales,5)0 (806.6,1000.01 (806.6,1000.02 (32.033,226.43 (419.8,613.24 (32.033,226.45 (32.033,226.46 (32.033,226.47 (613.2,806.68 (32.033,226.49 (419.8,613.210 (806.6,1000.00 (856.0,1000.01 (523.0,856.02 (103.0,223.03 (223.0,523.04 (32.999,103.05 (32.999,103.06 (103.0,223.07 (523.0,856.08 (32.999,103.09 (223.0,523.010 (856.0,1000.0Project:基于评分卡的风控模型开发delimiter.join(seq)通过指定字符连接序列中元素,生成新字符串a=abcdprint(,.join(a)#结果a,b,c,da=abcdprint(.join(a)#结果a b c dProject:基于评分卡的风控模型开发Thinking:特征分箱(离散)后的优势?变量分箱是对连续变量进行离散化,分箱后的特征对异常数据有很强的鲁棒性比如 age30 为1,否则0,如果特征没有离散化,杜宇异常数据“年龄300岁”会给模型造成很大的干扰逻辑回归属于广义线性模型,表达能力受限,单变量离散化为N个后,相当于为模型引入了非线性,能够提升模型表达能力离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力可以将缺失作为独立的一类带入模型将所有变量变换到相似的尺度上缺失值处理针对字段X,存在缺失值的处理:直接删除含有缺失值的样本如果缺失的样本占总数很大,可以直接舍弃字段X(如果将X作为特征加入,噪音会很大)采用简单规则进行补全删除:删除数据缺失的记录;均值:使用当前列的均值;高频:使用当前列出现频率最高的数据。采用预测进行补全:根据样本之间的相似性填补缺失值根据变量之间的相关关系填补缺失值To Do:采用随机森林对Titanic乘客生存预测中的Embarked,Age进行补全1)通过Survived,Pclass,Sex,SibSp,Parch,Fare字段预测Embarked字段中的缺失值2)通过Survived,Pclass,Sex,SibSp,Parch,Fare,Embarked字段,预测Age字段中的缺失值评估指标KS评估指标KS(Kolmogorov-Smirnov):由两位苏联数学家A.N.Kolmogorov和N.V.Smirnov提出在风控中,KS常用于评估模型区分度。区分度越大,说明模型的风险排序能力(ranking ability)越强计算每个分箱区间累计坏账户占比与累计好账户占比差的绝对值,得到KS曲线在这些绝对值中取最大值,得到此变量最终的KS值评估指标KS评估指标KS(Kolmogorov-Smirnov):KS统计量是好坏距离或区分度的上限KS越大,表明正负样本区分程度越好KS(%)好坏区分能力20以下不建议采用20-40较好41-50良好51-60很强61-75非常强75以上不可思议,需要checkKS评价标准Summary评分卡模型的流程:数据获取金融机构自身,第三方机构EDA(探索性数据分析)统计每个字段的缺失值情况、异常值情况、平均值、中位数、最大值、最小值、分布情况等为后续的数据处理制定方案数据清洗对数据中脏数据,缺失值,异常值进行处理异常点检测,可以通过聚类检测异常值,先把数据聚成不同的类,选择不属于任何类的数据作为异常值1)DBSCAN算法,将与数据稠密区域紧密相连的数据对象划分为一个类,因此分离的数据就会作为异常值2)KMeans算法,把数据聚成k类,计算每个样本和对应的簇中心的距离,找到距离最大的的点作为异常值变量分箱等频分箱,把自变量从小到大排序,根据自变量的个数等分为k部分,每部分作为一个分箱等距分箱,把自变量从小到大排序,将自变量的取值范围分为k个等距的区间,每个区间作为一个分箱聚类分箱,用k-means聚类法将自变量聚为k类,但在聚类过程中需要保证分箱的有序性SummaryWOE编码特征离散化,是将数值型特征(一般是连续型的)转变为离散特征,比如woe转化,将特征进行分箱,再将每个分箱映射到woe值上,即转换为离散特征采用woe编码的好处:1)简化模型,使模型变得更稳定,降低了过拟合的风险2)对异常数据有很强的鲁棒性,实际工作中的那些很难解释的异常数据一般不会做删除处理,如果特征不做离散化,这个异常数据带入模型,会给模型带来很大的干扰逻辑回归是一种广义线性模型,虽然它引入了Sigmod函数,是非线性模型,但本质上还是一个线性回归模型(除去Sigmod函数映射,是线性回归的)如果逻辑回归发过拟合,如何解决?1)减少特征数量,比如基于IV值的大小进行筛选2)正则化,L1正则或L2正则Project:物资分类战略物资(Strategic Items)对产品生产流程至关重要的采购项目,往往由于供给稀缺或运输困难而具有较高的供应风险买卖双方地位:力量均衡,相互依赖性较高采购战略推荐:战略联盟,紧密联系,供应商尽早介入,共同创造,并充分考虑垂直整合,关注长期价值瓶颈物资(Bottleneck Items)只能由某一特定供应商提供、运输不便、财务影响较低的采购项目买卖双方地位:卖方主动,相互依赖性一般。采购战略推荐:数量保险合同,供应商管理库存,确保额外库存,寻找潜在供应商利润潜力:采购对可盈利性所做贡献的潜力,供应物品对利润的影响供应风险:采购物品获得的难易程度,如果供应商没能准时供货,客户将遭受的损失程度瓶颈物资供应商比较强势产品价格影响小可以多备些库存战略物资价格占据主要因素通常是单一供应商保持长期战略关系一般物资易获取的原料简化采购流程自动竞标系统杠杆物资供应风险较低有多家供应商存在降价空间大大小小大大战略重要性(利润潜力)战略重要性(利润潜力)供供应应风风险险Kraljic采购定位模型Project:物资分类杠杆物资(Strategic Items)可选供应商较多、能够为买家带来较高利润的采购项目,替换供应商较为容易,具有标准化的产品质量标准买卖双方地位:买方主动,相互依赖性一般采购战略推荐:采购招标,供应商选择,目标订价,与首选供应商达成一揽子协议,最后按正常供应程序执行、处理分订单一般物资(Non-Critical Items)供给丰富、采购容易、财务影响较低的采购项目。具有标准化的产品质量标准买卖双方地位:力量均衡,相互依赖性较低采购战略推荐:通过提高产品标准和改进生产流程,减少对此类项目的采购投入利润潜力:采购对可盈利性所做贡献的潜力,供应物品对利润的影响供应风险:采购物品获得的难易程度,如果供应商没能准时供货,客户将遭受的损失程度瓶颈物资供应商比较强势产品价格影响小可以多备些库存战略物资价格占据主要因素通常是单一供应商保持长期战略关系一般物资易获取的原料简化采购流程自动竞标系统杠杆物资供应风险较低有多家供应商存在降价空间大大小小大大战略重要性(利润潜力)战略重要性(利润潜力)供供应应风风险险Kraljic采购定位模型Project:物资分类Project 物资分类:Step1,生成模拟数据=material_group.csv和风险相关的24个指标和重要性相关的9个指标Step2,使用逻辑回归进行建模四种分类:战略、瓶颈、一般、杠杆Thinking:如何使用逻辑回归进行建模?可以分别对风险、重要性进行LR建模超参数调优(贝叶斯优化)针对逻辑回归模型中的C和max_iter进行超参数优化绘制BCG矩阵四象限Project:物资分类贝叶斯优化(Bayesian Optimization):假设一组超参数组合是X=x1,x2,.,xn(xn表示某一个超参数的值),不同超参数会得到不同效果,贝叶斯优化假设超参数与需要优化的损失函数存在一个函数关系假设我们有一个函数f:xR,我们需要在xX内找到这里,x表示的是超参数,而不是输入数据贝叶斯优化工具使用:引用工具包pip install bayesian-optimizationfrom bayes_opt import BayesianOptimization定义贝叶斯优化 gbdt_op=BayesianOptimization()运行工具 gbdt_op.maximize()找到最佳超参数 gbdt_op.maxTo Do:随机生成1000个样本(二分类)使用GBDT进行分类使用BayesianOptimization进行超参数优化(n_estimators,min_samples_split,max_features,max_depth)2/2 Prediction is all you needThinking:什么是人工智能?Using data to solve problems机器学习Model数据需求Predict Wheel(模型)分类算法:LR,Decision Tree,Naive Bayes,SVM,KNN矩阵分解:ALS-WR,FunkSVD,BiasSVD,SVD+FM模型:FM,FFM,DeepFM,NFM,AFM,xDeepFM树模型:GBDT,XGBoost,LightGBM,CatBoost,NGBoostAttention模型:DIN,DIEN,DSIN,Transformer,BERTEmbedding:Word2vec,DeepWalk,Node2Vec,GCN时间序列:AR,MA,ARMA,ARIMA,LSTM强化学习:Policy-Based,Value-Based,Actor-Critic大数据分析:PySparksklearn中的分类与预测从我们最早接触的sklearn中的分类算法:lr=LogisticRegression()lr.fit(train_x,train_y)predict_y=lr.predict(test_x)算法算法工具工具决策决策树from sklearn.tree import DecisionTreeClassifier朴素朴素贝叶斯叶斯from sklearn.naive_bayes import MultinomialNBSVMfrom sklearn.svm import SVCKNNfrom sklearn.neighbors import KNeighborsClassifierAdaboostfrom sklearn.ensemble import AdaBoostClassifierK-Meansfrom sklearn.cluster import KMeansEMfrom sklearn.mixture import GMMApriorifrom efficient_apriori import aprioriPageRankimport networkx as nx矩阵分解中的预测矩阵分解就像是在做数独游戏:根据我们已知的数值=推断矩阵中位置的内容红海行动红海行动战狼战狼2湄公河行动湄公河行动2汪汪队立大汪汪队立大功功小猪佩奇小猪佩奇超级飞侠超级飞侠小时代小时代4致青春致青春同桌的你同桌的你user 111user 211user 311user 411user 511user 611user 711user 811user 911user 1011user 1111user 1211FM中的预测因子分解机FM利用了MF的矩阵补全能力,将FM泛化到了一般性预测问题FM家族:FM,FFM,DeepFM,NFM,AFM,xDeepFM在推荐系统、预测中有广泛应用User-Item矩阵树模型中的预测GBDT家族:XGBoost,LightGBM,CatBoost,NGBoost出色的特征自动组合能力和高效的运算树模型进行特征构造使用决策树/GBDT进行新特征构造:当GBDT训练好做预测的时候,输出的并不是最终的二分类概率值,而是要把模型中的每棵树计算得到的预测概率值所属的叶子结点位置记为1=构造新的训练数据右图有2棵决策树,一共有5个叶子节点如果一个实例,选择了第一棵决策树的第2个叶子节点。同时,选择第2棵子树的第1个叶子节点。那么前3个叶子节点中,第 2位 设 置 为 1,后 2个 叶 子 节 点 中,第 1位 设 置 为 1。concatenate所有特征向量,得到0,1,0,1,0GBDT是一堆树的组合,假设有k棵树(T1,T2.Tk),每棵树的节点数分别为 ,GBDT会输出一个 维的向量向量由0,1构成,输出给LRAttention机制Attention is all you need用于计算相关程度,在RS,CV,NLP中都有广泛应用深度推荐Base ModelBase Model(传统的DNN模型):embedding+MLPStep1,将不同的特征转换为对应的embedding表示Step2,将所有特征的embedding做拼接Step3,输入到多层感知机MLP(DNN),计算结果特征表示:user profile、user behavior、ad 以及 context 每个特征类别包括多个feature fieldfeature field是单值特征=one-hot编码feature field是多值特征=multi-hot编码Attention机制(DIN)Attention机制:在对用户行为的embedding计算上引入了attention network(也称为Activation Unit)把用户历史行为特征进行embedding操作,视为对用户兴趣的表示,之后通过Attention Unit,对每个兴趣表示赋予不同的权值Attention Weight是由用户历史行为和候选广告进行匹配计算得到的,对应着洞察(用户兴趣的Diversity,以及Local Activation)Attention机制(DIEN)DIEN结构:通过引入序列模型 AUGRU 模拟了用户兴趣进化的过程在 Embedding layer 和 Concatenate layer 之间加入了生成兴趣的 Interest Extractor Layer 和模拟兴趣演化的 Interest Evolving layerInterest Extractor Layer 使用了GRU的结构抽取了每一个时间片内用户的兴趣Interest Evolving layer 利用序列模型 AUGRU 的结构将不同时间的用户兴趣串联起来,形成兴趣进化的链条最终把当前时刻的“兴趣向量”输入上层的多层全连接网络,与其他特征一起进行最终的 CTR 预估Attention机制(DSIN)DSIN在全连接层之前,分成了两部分:左边部分,将用户特征和物品特征转换对应的向量表示,主要是embedding层右边部分,是对用户行为序列进行处理,从下到上分为四层:session division layer,序列切分层session interest extractor layer,会话兴趣抽取层session interest interacting layer,会话间兴趣交互层session interest activating layer,会话兴趣激活层EmbeddingEmbedding is all you need万物皆可EmbeddingWord EmbeddingWord2Vec:通过Embedding,把原先词所在空间映射到一个新的空间中去,使得语义上相似的单词在该空间内距离相近。Word Embeddi
收藏
- 资源描述:
-
Prediction is all you NeedLesson-24学习方法Thinking:behind the theory,original from the real problemAction:solve problems by tools,present the results 今天的学习目标ProjectsProject:基于评分卡的风控模型开发Project:物资分类生成模拟数据逻辑回归超参数调优(贝叶斯优化)绘制BCG矩阵四象限Prediction is all you needPredict Wheel Review(矩阵分解,因子分解机,树模型,Attention机制,Embedding与Graph Embedding,时间序列)基于内容的推荐系统大数据PySpark使用模型可解释性1/2 ProjectsProject:基于评分卡的风控模型开发Project:基于评分卡的风控模型开发数据集GiveMeSomeCredit,15万样本数据https:/ 基本属性:包括了借款人当时的年龄 偿债能力:包括了借款人的月收入、负债比率 信用往来:两年内35-59天逾期次数、两年内60-89天逾期次数、两年内90天或高于90天逾期的次数 财产状况:包括了开放式信贷和贷款数量、不动产贷款或额度数量。其他因素:包括了借款人的家属数量 时间窗口:自变量的观察窗口为过去两年,因变量表现窗口为未来两年字段说明类型SeriousDlqin2yrs90天以上逾期或更差Y/NAge年龄整数RevolvingUtilizationOfUnsecuredLines除房地产和汽车贷款等无分期付款债务外,信用卡和个人信用额度的总余额除以信贷限额百分比DebtRatio债务比(每月偿还的债务,赡养费,生活费除以每月的总收入)百分比MonthlyIncome每月收入实数NumberOfOpenCreditLinesAndLoans公开贷款(如汽车贷款或抵押贷款)和信用额度(如信用卡)的数量整数NumberRealEstateLoansOrLines抵押贷款和房地产贷款的额度(包括房屋净值信贷)整数NumberOfTime30-59DaysPastDueNotWorse借款人逾期30-59天的次数,但在过去两年没有更糟整数NumberOfTime60-89DaysPastDueNotWorse借款人逾期60-89天的次数,但在过去两年没有更糟整数NumberOfTimes90DaysLate借款人逾期90天(或以上)的次数整数NumberOfDependents除自己(配偶、子女等)以外的家庭受养人人数整数Project:基于评分卡的风控模型开发Project 基于评分卡的风控模型开发:Step1,数据探索性分析违约率分析缺失值分析对于某个字段的统计分析(比如RevolvingUtilizationOfUnsecuredLines)Step2,数据缺失值填充,采用简单规则,如使用中位数进行填充Step3,变量分箱1)对于age字段,分成6段-math.inf,25,40,50,60,70,math.inf2)对于NumberOfDependents(家属人数)字段,分成6段-math.inf,2,4,6,8,10,math.inf3)对于3种逾期次数,即NumberOfTime30-59DaysPastDueNotWorse,NumberOfTime60-89DaysPastDueNotWorse,NumberOfTimes90DaysLate,分成10段-math.inf,1,2,3,4,5,6,7,8,9,math.inf4)对于其余字段,即RevolvingUtilizationOfUnsecuredLines,DebtRatio,MonthlyIncome,NumberOfOpenCreditLinesAndLoans,NumberRealEstateLoansOrLines 分成5段Project:基于评分卡的风控模型开发Project 基于评分卡的风控模型开发:Step4,特征筛选使用IV值衡量自变量的预测能力,筛选IV值0.1的特征字段Step5,对于筛选出来的特征,计算每个bin的WOE值Step6,使用逻辑回归进行建模训练集、测试集切分计算LR的准确率featuresbinwoeRevolvingUtilizationOfUnsecuredLines(0.699,50708.03.463412RevolvingUtilizationOfUnsecuredLines(0.271,0.6991.054603RevolvingUtilizationOfUnsecuredLines(0.0832,0.2710.420420RevolvingUtilizationOfUnsecuredLines(-0.001,0.01920.276204RevolvingUtilizationOfUnsecuredLines(0.0192,0.08320.235185NumberOfTime30-59DaysPastDueNotWorse(1.0,2.05.036574NumberOfTime30-59DaysPastDueNotWorse(-inf,1.00.772730NumberOfTime30-59DaysPastDueNotWorse(2.0,3.07.595036Project:基于评分卡的风控模型开发Step7,评分卡模型转换设p为客户违约的概率,那么正常的概率为1-p客户违约概率p可以表示评分卡的分值计算,可以通过 分值表示为比率对数的 线性表达式来定义,即Score计算公式类似 y=kx+b,A和B是常数,A称为“补偿”,B称为“刻度”,公式中的负号可以使得违约概率越低,得分越高=ln()常数A、B可以通过将两个假设的分值带入计算得到:1)基准分,即给某个特定的比率 时,预期的分值为通常,业内的基准分为500/600/6502)PDO(point of double odds),即比率翻倍的分数比如,odds翻倍时,分值减少50比率为 的点的分值应该为代入式中,可以得到:求解得:Project:基于评分卡的风控模型开发Step7,评分卡模型转换假设odds=1的时候,特定的分数为650分Thinking A 和 B=?Step7,评分卡模型转换逻辑回归:将公式变化下,可得 ,即所以,Odds可以和逻辑回归无缝结合评分卡的逻辑是Odds的变动与评分变动的映射,即把Odds映射为评分因为所以 Project:基于评分卡的风控模型开发qcut使用使用qcut可以对一组数据分成几个区间比如,我们有11家公司,他们的年销售额分别为:1000,856,123,523,33,71,223,699,103,456,923请你对这11家公司的年销售额进行分箱1)按照 高/低,两个等级2)按照 first 10%,second 10%,third 10%以及 last 70%四个等级#随机销售额sales=pd.Series(1000,856,123,523,33,71,223,699,103,456,923)print(len(sales)#将销售额分成 低/高 两个等级print(pd.qcut(sales,0,0.5,1,labels=small sales,large sales)#将销售额分成 first 10%,second 10%,third 10%以及 后70%四种等级print(pd.qcut(sales,0,0.7,0.8,0.9,1,labels=last 70%,third 10%,second 10%,first 10%)Project:基于评分卡的风控模型开发qcut使用比如,我们有11家公司,他们的年销售额分别为:1000,856,123,523,33,71,223,699,103,456,923Thinking:自动将这11家公司的销售额按照5组进行划分print(pd.qcut(sales,q=5)这里q为参数,表示要分组的个数qcut与cut的区别#根据数值的频率来选择分箱,使得区间内的频率是均匀的print(pd.qcut(sales,q=5)#根据数值本身来选择分箱,使得区间是均匀的间隔print(pd.cut(sales,5)0 (806.6,1000.01 (806.6,1000.02 (32.033,226.43 (419.8,613.24 (32.033,226.45 (32.033,226.46 (32.033,226.47 (613.2,806.68 (32.033,226.49 (419.8,613.210 (806.6,1000.00 (856.0,1000.01 (523.0,856.02 (103.0,223.03 (223.0,523.04 (32.999,103.05 (32.999,103.06 (103.0,223.07 (523.0,856.08 (32.999,103.09 (223.0,523.010 (856.0,1000.0Project:基于评分卡的风控模型开发delimiter.join(seq)通过指定字符连接序列中元素,生成新字符串a=abcdprint(,.join(a)#结果a,b,c,da=abcdprint(.join(a)#结果a b c dProject:基于评分卡的风控模型开发Thinking:特征分箱(离散)后的优势?变量分箱是对连续变量进行离散化,分箱后的特征对异常数据有很强的鲁棒性比如 age30 为1,否则0,如果特征没有离散化,杜宇异常数据“年龄300岁”会给模型造成很大的干扰逻辑回归属于广义线性模型,表达能力受限,单变量离散化为N个后,相当于为模型引入了非线性,能够提升模型表达能力离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力可以将缺失作为独立的一类带入模型将所有变量变换到相似的尺度上缺失值处理针对字段X,存在缺失值的处理:直接删除含有缺失值的样本如果缺失的样本占总数很大,可以直接舍弃字段X(如果将X作为特征加入,噪音会很大)采用简单规则进行补全删除:删除数据缺失的记录;均值:使用当前列的均值;高频:使用当前列出现频率最高的数据。采用预测进行补全:根据样本之间的相似性填补缺失值根据变量之间的相关关系填补缺失值To Do:采用随机森林对Titanic乘客生存预测中的Embarked,Age进行补全1)通过Survived,Pclass,Sex,SibSp,Parch,Fare字段预测Embarked字段中的缺失值2)通过Survived,Pclass,Sex,SibSp,Parch,Fare,Embarked字段,预测Age字段中的缺失值评估指标KS评估指标KS(Kolmogorov-Smirnov):由两位苏联数学家A.N.Kolmogorov和N.V.Smirnov提出在风控中,KS常用于评估模型区分度。区分度越大,说明模型的风险排序能力(ranking ability)越强计算每个分箱区间累计坏账户占比与累计好账户占比差的绝对值,得到KS曲线在这些绝对值中取最大值,得到此变量最终的KS值评估指标KS评估指标KS(Kolmogorov-Smirnov):KS统计量是好坏距离或区分度的上限KS越大,表明正负样本区分程度越好KS(%)好坏区分能力20以下不建议采用20-40较好41-50良好51-60很强61-75非常强75以上不可思议,需要checkKS评价标准Summary评分卡模型的流程:数据获取金融机构自身,第三方机构EDA(探索性数据分析)统计每个字段的缺失值情况、异常值情况、平均值、中位数、最大值、最小值、分布情况等为后续的数据处理制定方案数据清洗对数据中脏数据,缺失值,异常值进行处理异常点检测,可以通过聚类检测异常值,先把数据聚成不同的类,选择不属于任何类的数据作为异常值1)DBSCAN算法,将与数据稠密区域紧密相连的数据对象划分为一个类,因此分离的数据就会作为异常值2)KMeans算法,把数据聚成k类,计算每个样本和对应的簇中心的距离,找到距离最大的的点作为异常值变量分箱等频分箱,把自变量从小到大排序,根据自变量的个数等分为k部分,每部分作为一个分箱等距分箱,把自变量从小到大排序,将自变量的取值范围分为k个等距的区间,每个区间作为一个分箱聚类分箱,用k-means聚类法将自变量聚为k类,但在聚类过程中需要保证分箱的有序性SummaryWOE编码特征离散化,是将数值型特征(一般是连续型的)转变为离散特征,比如woe转化,将特征进行分箱,再将每个分箱映射到woe值上,即转换为离散特征采用woe编码的好处:1)简化模型,使模型变得更稳定,降低了过拟合的风险2)对异常数据有很强的鲁棒性,实际工作中的那些很难解释的异常数据一般不会做删除处理,如果特征不做离散化,这个异常数据带入模型,会给模型带来很大的干扰逻辑回归是一种广义线性模型,虽然它引入了Sigmod函数,是非线性模型,但本质上还是一个线性回归模型(除去Sigmod函数映射,是线性回归的)如果逻辑回归发过拟合,如何解决?1)减少特征数量,比如基于IV值的大小进行筛选2)正则化,L1正则或L2正则Project:物资分类战略物资(Strategic Items)对产品生产流程至关重要的采购项目,往往由于供给稀缺或运输困难而具有较高的供应风险买卖双方地位:力量均衡,相互依赖性较高采购战略推荐:战略联盟,紧密联系,供应商尽早介入,共同创造,并充分考虑垂直整合,关注长期价值瓶颈物资(Bottleneck Items)只能由某一特定供应商提供、运输不便、财务影响较低的采购项目买卖双方地位:卖方主动,相互依赖性一般。采购战略推荐:数量保险合同,供应商管理库存,确保额外库存,寻找潜在供应商利润潜力:采购对可盈利性所做贡献的潜力,供应物品对利润的影响供应风险:采购物品获得的难易程度,如果供应商没能准时供货,客户将遭受的损失程度瓶颈物资供应商比较强势产品价格影响小可以多备些库存战略物资价格占据主要因素通常是单一供应商保持长期战略关系一般物资易获取的原料简化采购流程自动竞标系统杠杆物资供应风险较低有多家供应商存在降价空间大大小小大大战略重要性(利润潜力)战略重要性(利润潜力)供供应应风风险险Kraljic采购定位模型Project:物资分类杠杆物资(Strategic Items)可选供应商较多、能够为买家带来较高利润的采购项目,替换供应商较为容易,具有标准化的产品质量标准买卖双方地位:买方主动,相互依赖性一般采购战略推荐:采购招标,供应商选择,目标订价,与首选供应商达成一揽子协议,最后按正常供应程序执行、处理分订单一般物资(Non-Critical Items)供给丰富、采购容易、财务影响较低的采购项目。具有标准化的产品质量标准买卖双方地位:力量均衡,相互依赖性较低采购战略推荐:通过提高产品标准和改进生产流程,减少对此类项目的采购投入利润潜力:采购对可盈利性所做贡献的潜力,供应物品对利润的影响供应风险:采购物品获得的难易程度,如果供应商没能准时供货,客户将遭受的损失程度瓶颈物资供应商比较强势产品价格影响小可以多备些库存战略物资价格占据主要因素通常是单一供应商保持长期战略关系一般物资易获取的原料简化采购流程自动竞标系统杠杆物资供应风险较低有多家供应商存在降价空间大大小小大大战略重要性(利润潜力)战略重要性(利润潜力)供供应应风风险险Kraljic采购定位模型Project:物资分类Project 物资分类:Step1,生成模拟数据=material_group.csv和风险相关的24个指标和重要性相关的9个指标Step2,使用逻辑回归进行建模四种分类:战略、瓶颈、一般、杠杆Thinking:如何使用逻辑回归进行建模?可以分别对风险、重要性进行LR建模超参数调优(贝叶斯优化)针对逻辑回归模型中的C和max_iter进行超参数优化绘制BCG矩阵四象限Project:物资分类贝叶斯优化(Bayesian Optimization):假设一组超参数组合是X=x1,x2,.,xn(xn表示某一个超参数的值),不同超参数会得到不同效果,贝叶斯优化假设超参数与需要优化的损失函数存在一个函数关系假设我们有一个函数f:xR,我们需要在xX内找到这里,x表示的是超参数,而不是输入数据贝叶斯优化工具使用:引用工具包pip install bayesian-optimizationfrom bayes_opt import BayesianOptimization定义贝叶斯优化 gbdt_op=BayesianOptimization()运行工具 gbdt_op.maximize()找到最佳超参数 gbdt_op.maxTo Do:随机生成1000个样本(二分类)使用GBDT进行分类使用BayesianOptimization进行超参数优化(n_estimators,min_samples_split,max_features,max_depth)2/2 Prediction is all you needThinking:什么是人工智能?Using data to solve problems机器学习Model数据需求Predict Wheel(模型)分类算法:LR,Decision Tree,Naive Bayes,SVM,KNN矩阵分解:ALS-WR,FunkSVD,BiasSVD,SVD+FM模型:FM,FFM,DeepFM,NFM,AFM,xDeepFM树模型:GBDT,XGBoost,LightGBM,CatBoost,NGBoostAttention模型:DIN,DIEN,DSIN,Transformer,BERTEmbedding:Word2vec,DeepWalk,Node2Vec,GCN时间序列:AR,MA,ARMA,ARIMA,LSTM强化学习:Policy-Based,Value-Based,Actor-Critic大数据分析:PySparksklearn中的分类与预测从我们最早接触的sklearn中的分类算法:lr=LogisticRegression()lr.fit(train_x,train_y)predict_y=lr.predict(test_x)算法算法工具工具决策决策树from sklearn.tree import DecisionTreeClassifier朴素朴素贝叶斯叶斯from sklearn.naive_bayes import MultinomialNBSVMfrom sklearn.svm import SVCKNNfrom sklearn.neighbors import KNeighborsClassifierAdaboostfrom sklearn.ensemble import AdaBoostClassifierK-Meansfrom sklearn.cluster import KMeansEMfrom sklearn.mixture import GMMApriorifrom efficient_apriori import aprioriPageRankimport networkx as nx矩阵分解中的预测矩阵分解就像是在做数独游戏:根据我们已知的数值=推断矩阵中位置的内容红海行动红海行动战狼战狼2湄公河行动湄公河行动2汪汪队立大汪汪队立大功功小猪佩奇小猪佩奇超级飞侠超级飞侠小时代小时代4致青春致青春同桌的你同桌的你user 111user 211user 311user 411user 511user 611user 711user 811user 911user 1011user 1111user 1211FM中的预测因子分解机FM利用了MF的矩阵补全能力,将FM泛化到了一般性预测问题FM家族:FM,FFM,DeepFM,NFM,AFM,xDeepFM在推荐系统、预测中有广泛应用User-Item矩阵树模型中的预测GBDT家族:XGBoost,LightGBM,CatBoost,NGBoost出色的特征自动组合能力和高效的运算树模型进行特征构造使用决策树/GBDT进行新特征构造:当GBDT训练好做预测的时候,输出的并不是最终的二分类概率值,而是要把模型中的每棵树计算得到的预测概率值所属的叶子结点位置记为1=构造新的训练数据右图有2棵决策树,一共有5个叶子节点如果一个实例,选择了第一棵决策树的第2个叶子节点。同时,选择第2棵子树的第1个叶子节点。那么前3个叶子节点中,第 2位 设 置 为 1,后 2个 叶 子 节 点 中,第 1位 设 置 为 1。concatenate所有特征向量,得到0,1,0,1,0GBDT是一堆树的组合,假设有k棵树(T1,T2.Tk),每棵树的节点数分别为 ,GBDT会输出一个 维的向量向量由0,1构成,输出给LRAttention机制Attention is all you need用于计算相关程度,在RS,CV,NLP中都有广泛应用深度推荐Base ModelBase Model(传统的DNN模型):embedding+MLPStep1,将不同的特征转换为对应的embedding表示Step2,将所有特征的embedding做拼接Step3,输入到多层感知机MLP(DNN),计算结果特征表示:user profile、user behavior、ad 以及 context 每个特征类别包括多个feature fieldfeature field是单值特征=one-hot编码feature field是多值特征=multi-hot编码Attention机制(DIN)Attention机制:在对用户行为的embedding计算上引入了attention network(也称为Activation Unit)把用户历史行为特征进行embedding操作,视为对用户兴趣的表示,之后通过Attention Unit,对每个兴趣表示赋予不同的权值Attention Weight是由用户历史行为和候选广告进行匹配计算得到的,对应着洞察(用户兴趣的Diversity,以及Local Activation)Attention机制(DIEN)DIEN结构:通过引入序列模型 AUGRU 模拟了用户兴趣进化的过程在 Embedding layer 和 Concatenate layer 之间加入了生成兴趣的 Interest Extractor Layer 和模拟兴趣演化的 Interest Evolving layerInterest Extractor Layer 使用了GRU的结构抽取了每一个时间片内用户的兴趣Interest Evolving layer 利用序列模型 AUGRU 的结构将不同时间的用户兴趣串联起来,形成兴趣进化的链条最终把当前时刻的“兴趣向量”输入上层的多层全连接网络,与其他特征一起进行最终的 CTR 预估Attention机制(DSIN)DSIN在全连接层之前,分成了两部分:左边部分,将用户特征和物品特征转换对应的向量表示,主要是embedding层右边部分,是对用户行为序列进行处理,从下到上分为四层:session division layer,序列切分层session interest extractor layer,会话兴趣抽取层session interest interacting layer,会话间兴趣交互层session interest activating layer,会话兴趣激活层EmbeddingEmbedding is all you need万物皆可EmbeddingWord EmbeddingWord2Vec:通过Embedding,把原先词所在空间映射到一个新的空间中去,使得语义上相似的单词在该空间内距离相近。Word Embeddi
展开阅读全文