自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

原创 面试题3:lightgbm

1 LGBM和XGB的差异LGBM比XGBoost更快,且很好保持住了准确性。它主要从三方面着手:(1) 在树方面,提出了直方图算法寻找最佳分裂点,而且还采用Leaf-wise树生长策略。(2) 在样本数上,使用GOSS保留所有大梯度样本但随机采样小梯度样本,减少训练样本量。(3) 在特征数上,使用EFB捆绑互斥特征,将特征变稠密。此外,作者还采用GS编码,在GBDT一类模型中,这是第一次能直接支持类别型特征,不需要提前独热编码后再输入至模型中。最后,同样地,LightGBM也跟XGBoost一样进

2022-05-04 13:36:29 796

原创 02标准建模流程:模型构建

文章目录1.模型构建1.1 算法选择1.2 损失函数选择1.3 调参思路2 模型评价2.1 KS值2.2 ROC曲线和AUC2.3 F1-score3 常见问题3.1 标签泄漏3.2 模型训练效果很差3.3 训练集效果好,跨时间测试效果不好3.4 训练集和跨时间测试效果都很好,上线后效果不好3.5 上线后效果好,几周之后模型效果逐渐降低3.6 没有明显问题,但模型效果逐月降低1.模型构建1.1 算法选择常用分类算法:逻辑回归、xgboost和lightgbm1.2 损失函数选择对于回归问题常选择M

2022-05-04 12:04:09 930

原创 02标准建模流程:特征工程

文章目录1.特征构建1.1 特征延伸1.1.1 类别特征编码1.1.2 时间特征处理思路1.1.3 特征延伸思路2 特征评价2.1 常见指标2.1.1 IV值2.1.2 PSI2.1.3 特征重要性1.特征构建1.1 特征延伸1.1.1 类别特征编码对于离散特征来说,一般编码后才可输入模型,常见的编码方法如下:● one-hot编码将一列文本数据转化成一列或多列只有0和1的数据,如性别取值有男生、女生两种,那one-hot后,男对应的编码为1 0,女对应的编码为0 1● label encod

2022-05-04 12:01:41 612

原创 02标准建模流程:样本定义与数据集构建

1 样本定义一般样本分为正样本和负样本,通常将响应变量称为负样本,比如贷款的用户为负样本,未贷款的用户为正样本。在营销场景中有以下几种定义方式,具体的定义方式应根据建模目标而定:2 数据集构建2.1 时间窗口选择一般一个用户的时间窗口分为观察期和表现期。以信贷为例,观察期是指用户申请信贷产品前的时间段,在该时间段内进行特征的生成,表现期是定义好坏标签的时间窗口,如果在这个时间窗口触发坏定义,就是坏样本,反之就是好样本。如设定用户在到期3个月内未还款,则认为用户为坏样本,则表现期为3个月,如将在用

2022-05-04 11:57:20 2578

原创 02标准建模流程:数据准备

文章目录数据准备1.1数据导入1.1.1 注意事项1.2 数据清洗1.2.1 缺失值1.2.1.1 处理思路1.2.1.2 注意事项1.2.2 重复值1.2.2.1 处理思路1.2.2.2 注意事项1.2.3 异常值1.2.3.1 处理思路1.2.3.2 注意事项1.3 口径定义注意事项1.3.1 口径定义遗漏场景1.3.2 数据口径频繁变化导致统计数据不准数据准备1.1数据导入1.1.1 注意事项1、数据孤岛A表在某个平台,B表在另外的平台,通过主键将A表和B表进行匹配,此时需要判断能匹配上的量

2022-05-04 11:53:48 2390

原创 01 建模概览

概述不同业务场景虽然具备大致的建模流程,即分为数据清洗、标签定义、样本划分、特征工程和建模及调优几个步骤,但是细分的逻辑上存在些差异。应用1 流失预警一般是让模型学习已经流失用户在流失前N个月的行为特征,然后用模型来预测目前活跃用户的潜在流失概率,对高概率用户进行用户维护。1.1样本的定义不同业务场景对流失用户的定义不大相同:电信运营商对流失用户的定义为最近1月已经销号的用户;资讯APP的流失用户定义为用户连续1个月没有访问1.2 数据集构建不同定义的时间窗口的选择也不相同,以连续3个月未登

2022-05-04 11:47:34 513

原创 深度学习实战02:RNN

2022-01-11 15:58:03 803 1

原创 深度学习实战01:搭建神经网络五部法

1 步骤1.1 选择模型Keras有两种类型的模型,序贯模型(Sequential)和函数式模型(Model),函数式模型应用更为广泛,序贯模型是函数式模型的一种特殊情况。a)序贯模型(Sequential):单输入单输出,一条路通到底,层与层之间只有相邻关系,没有跨层连接。这种模型编译速度快,操作也比较简单b)函数式模型(Model):多输入多输出,层与层之间任意连接。这种模型编译速度慢。1.2 搭建网络拉直层:tf.keras.layers.Flatten()拉直层可以变换张量的尺寸,

2022-01-05 23:54:56 1453 1

原创 tensorflow2.0实战01:DNN

参考资料:深度学习:Keras入门(一)之基础篇1 Keras基础1.1 Keras的模块结构1.1 模型构建流程Keras有两种类型的模型,序贯模型(Sequential)和函数式模型(Model),函数式模型应用更为广泛,序贯模型是函数式模型的一种特殊情况。a)序贯模型(Sequential):单输入单输出,一条路通到底,层与层之间只有相邻关系,没有跨层连接。这种模型编译速度快,操作也比较简单b)函数式模型(Model):多输入多输出,层与层之间任意连接。这种模型编译速度慢。2 案例

2022-01-04 16:13:01 832

原创 sql刷题

select emp_nofrom employeeswhere emp_no not in (select emp_no from dept_manager);获取薪水第二多的员工的emp_no以及其对应的薪水salaryselect emp_no,salaryfrom salarieswhere salary =(select distinct salaryfrom salariesorder by salary desclimit 1,1)limit1,1表示从第二条开始查

2022-01-03 19:22:18 192

原创 tensorflow01:基础概念

文章目录1 图(graphs)2 变量3 fetch和feed4 小案例深度学习理论系列:深度学习01深度学习02:CNN深度学习03:Tips for Deep Learning深度学习04:RNN深度学习tensorflow系列:tensorflow01:基础概念1 图(graphs)用图来表示计算任务,有默认图,只需要自己加节点就行,以下就是两个图,图要在session里运行用tensorflow2.0运行1.0的代码import tensorflow.compat.v1 as

2021-12-25 20:03:30 887

原创 深度学习03:Tips for Deep Learning

文章目录1 做deep learning的流程2 欠拟合对策2.1 New activation function2.1.1 Gradient Problem(梯度消失)2.1.2 ReLU2.1.3 Maxout2.2 Adaptive learning rate2.2.1 Adagrad2.2.2 Momentum2.2.2 RMSProp2.2.3 Adam3 过拟合对策3.1 early stopping3.2 Regularization3.3 Dropout深度学习理论系列:深度学习01深

2021-12-22 22:28:32 798

原创 深度学习02:CNN

文章目录1 CNN的结构1.1 卷积层1.1.1 padding 填白1.1.2 stride 步长1.1.3 卷积1.2 池化层1.2.1 max pooling1.3 全连接层2 CNN in Keras深度学习理论系列:深度学习011 CNN的结构1.1 卷积层  由滤波器filters和激活函数构成。 一般要设置的超参数包括filters的数量、大小、步长,以及padding是“valid”还是“same”。当然,还包括选择什么激活函数。1.1.1 padding 填白  每次卷积前,先

2021-12-21 12:40:59 901

原创 电信风控项目知识点复盘

1、groupby之后的max和first2、关于排序:方法一:根据start_time排序df_sms.groupby('uid', group_keys=False).apply(lambda x: x.sort_values('start_time')).groupby( 'uid').first().reset_index()[['uid', 'day']]方法二:根据day排序df_sms.groupby('uid', group_keys=False).apply(la

2021-12-15 10:50:52 275

原创 深度学习04:RNN

文章目录1 RNN1.1 RNN的前向传播1.2 RNN的后向传播1.3 RNN的类型2 GRU3 LSTM3.1 带窥视孔的LSTM3.2 LSTM的反向传播3.1 how to train LSTMlost functionTrainingError Surface解决方法深度学习理论系列:深度学习01深度学习02:CNN深度学习03:Tips for Deep Learning深度学习04:RNN参考资料:1、吴恩达第一周 循环序列模型(Recurrent Neural Networks

2021-12-06 22:37:22 736

原创 深度学习01

1 Brief Introduction of Deep LearningNeural Network确定参数:一个神经元中所有的w和b记为参数θ确定神经元的连接方式:Fully Connect Feedforward Network用矩阵形式表示:goodness of function使用梯度下降求解使loss最小的θ,loss为交叉熵Backpropagation反向传播link假设只有1层隐含层,激活函数默认为sigmoid。当我们通过前向传播得到y_hat

2021-12-04 23:24:53 1895

原创 深度学习00

RegressionGradient Descentlearning rate的取值很重要,一般会绘制右图,横轴为迭代次数,纵轴为loss。从图中可以看到learning rate太小迭代的速度太慢,太大可能無法收斂。如何加快训练速度?Tips1:Adagrad—选择合适的步伐学习率除以前面几次一阶导平方和的均值ηtσt=ηt+1∗t+1∑i=0t(gi)2=η∑i=0t(gi)2\frac{\eta^t}{\sigma^t} =\frac{\eta}{\sqrt{\smash[b]{t+1}

2021-12-02 21:47:36 989

原创 算法进阶:Lightgbm

1 xgboost存在的问题以及可以改进的地方在决策树的生成过程中采用了精确贪心的思路,寻找最佳分裂点的时候,使用了预排序算法, 对所有特征都按照特征的数值进行预排序, 然后遍历所有特征上的所有分裂点位,计算按照这些候选分裂点位分裂后的全部样本的目标函数增益,找到最大的那个增益对应的特征和候选分裂点位,从而进行分裂。这样一层一层的完成建树过程, xgboost训练的时候,是通过加法的方式进行训练,也就是每一次通过聚焦残差训练一棵树出来, 最后的预测结果是所有树的加和表示。因此gboost寻找最优分裂点的

2021-11-28 18:20:32 1311

原创 sklearn实战06:xgboost

1 梯度提升树class xgboost.XGBRegressor (max_depth=3, learning_rate=0.1, n_estimators=100, silent=True,objective='reg:linear', booster='gbtree', n_jobs=1, nthread=None, gamma=0, min_child_weight=1, max_delta_step=0,subsample=1, colsample_bytree=1, colsample_byl

2021-11-25 23:07:52 1623

原创 信用评分卡

对一个特征进行分箱的步骤1)我们首先把连续型变量分成一组数量较多的分类型变量,比如,将几万个样本分成100组,或50组2)确保每一组中都要包含两种类别的样本,否则IV值会无法计算3)我们对相邻的组进行卡方检验,卡方检验的P值最大大的组进行合并,直到数据中的组数小于设定的N箱为止4)我们让一个特征分别分成[2,3,4…20]箱,观察每个分箱个数下的IV值如何变化,找出最适合的分箱个数5)分箱完毕后,我们计算每个箱的WOE值, 观察分箱效果这些步骤都完成后,我们可以对各个特征都进行分箱,然后观察每个

2021-11-23 22:20:55 291

原创 sklearn实战05:逻辑回归

逻辑回归的调参一、高效的嵌入法embedded 二、调逻辑回归的类LR_,通过画C的学习曲线来实现 三、系数累加法 四、包装法#高效的嵌入法embedded data = load_breast_cancer()print(data.data.shape)LR_ = LR(solver="liblinear",C=0.9,random_state=420)cross_val_score(LR_,data.data,data.target,cv=10).mean()x_embeded = ...

2021-11-21 18:35:27 1220

原创 sklean实战04:降维算法PCA和SVD

文章目录1 PCA与SVD1.1 sklearn.decomposition.PCA1.2 重要参数n_components1.2.1 案例:高维数据的可视化1.2.2 最大似然估计自选超参数1.2.3 按信息量占比选超参数1.3 PCA中的SVD1.3.1 PCA中的SVD哪里来?1.3.2 重要参数svd_solver 与 random_state1.3.3 重要属性components_1.3.4 重要接口inverse_transform1.3.4.1 案例:用人脸识别看PCA降维后的信息保存

2021-11-20 17:19:15 1276

原创 sklearn实战03:特征工程和预处理

1 概述1.1 数据挖掘流程获取数据数据预处理数据预处理是从数据中检测,纠正或删除损坏,不准确或不适用于模型的记录的过程可能面对的问题有:数据类型不同,比如有的是文字,有的是数字,有的含时间序列,有的连续,有的间断。也可能,数据的质量不行,有噪声,有异常,有缺失,数据出错,量纲不一,有重复,数据是偏态,数据量太大或太小数据预处理的目的:让数据适应模型,匹配模型的需求特征工程:特征工程是将原始数据转换为更能代表预测模型的潜在问题的特征的过程,可以通过挑选最相关的特征,提取特征以及创造特征来实

2021-11-18 22:59:29 132

原创 sklearn实战02:随机森林

1 RandomForestClassifier1.1 控制基评估器的参数1.2 n_estimatorsn_estimators越大,模型的效果往往越好。但是相应的,任何模型都有决策边界,n_estimators达到一定的程度之后,随机森林的 精确性往往不在上升或开始波动,并且,n_estimators越大,需要的计算量和内存也越大,训练的时间也会越来越 长。对于这个参数,我们是渴望在训练难度和模型效果之间取得平衡。from sklearn.tree import DecisionTreeCla

2021-11-17 17:01:09 316

原创 sklearn实战01:决策树

1 模块sklearn.tree的使用1.1 模块介绍1.2 使用流程from sklearn import tree #导入需要的模块clf = tree.DecisionTreeClassifier() #实例化clf = clf.fit(X_train,y_train) #用训练集数据训练模型result = clf.score(X_test,y_test) #导入测试集,从接口中调用需要的信息2 重要参数2.1 criterionCriterion这个参数正是用来决

2021-11-16 14:31:49 1072

原创 机器学习进阶:主题模型

0 前言LDA,可以分为下述5个步骤:一个函数:gamma函数四个分布:二项分布、多项分布、beta分布、Dirichlet分布一个概念和一个理念:共轭先验和贝叶斯框架两个模型:pLSA、LDA一个采样:Gibbs采样1 整体把握LDALDA(Latent Dirichlet Allocation)是一种文档生成模型。它认为一篇文章是有多个主题的,而每个主题又对应着不同的词。一篇文章的构造过程,首先是以一定的概率选择某个主题,然后再在这个主题下以一定的概率选出某一个词,这样就生成了这篇文章的

2021-11-13 23:52:54 1217

原创 算法进阶:聚类算法

1 kmeans基础原理1.1 工作原理step1:随机抽取k个样本作为最初的质心step2:循环:2.1 将每个样本分到距离他们最近的质心,形成k个簇2.2 对于每个簇,计算簇内样本的平均值作为新的质心setp3:当质心的位置不再发生变化,迭代停止,聚类完成1.2 计算距离的方式样本点到其所在簇的质心的距离衡量方式有:令x表示簇中的一个样本点, μ表示该簇中的质心,n表示每个样本点中的特征数目,i表示组成点的每个特征。余弦距离常用于文本。如我们采用欧几里得距离,则一个簇中所有样本点

2021-11-10 00:20:29 1233

原创 机器学习进阶:SVM

文章目录1 线性可分支持向量机1.1 概述1.1.1 支持向量机分类器是什么1.12 算法推导2 线性支持向量机2.2 重要参数C3 非线性支持向量机3.1 核函数3.2 sklearn中关于核函数的参数4 sklearn中svm重要的参数1 线性可分支持向量机1.1 概述1.1.1 支持向量机分类器是什么找到一个超平面把样本分成多份,但是对于一个数据集来说,让训练误差为0的决策边界可以有无数条。但这些决策边界在测试集上不一定会表现良好。我们可以把决策边界B向两边平移,直到碰到离这条决策边界最近的

2021-11-06 00:46:14 449

原创 机器学习进阶:提升

1 提升算法1.1 提升的概念随机森林的决策树是分布采样建立的,相对独立。我们是否可以在得到了m-1棵决策树后,根据现有样本和决策树信息,对第m棵决策树的建立产生有益的影响呢?提升(Boost)根本思想在于通过多个简单的弱分类器,构建出准确率很高的强分类器。简单地来说,Boost(提升)就是指每一步我都产生一个弱预测模型,然后加权累加到总模型中,可以用于回归和分类问题。如果每一步的弱预测模型生成都是依据损失函数的梯度方向,则称之为梯度提升(Gradient boosting)。梯度提升算法首先给定一

2021-11-02 00:24:36 164

原创 机器学习进阶:决策树与随机森林

1 信息熵1.1 信息熵事件越不确定熵越大,越确定熵越小,如果熵为0,表示这件事情一定发生,就好比你说了一句废话1.2 条件熵H(Y|X) = H(X,Y) - H(X),在X发生的前提下,Y发生新带来的熵1.3 相对熵、互信息:我们的目标函数可以是极大似然估计求最大值,也可以是交叉熵求最小值2 决策树学习算法建决策树就是建立一个熵不断降低的树3 Bagging与随机森林...

2021-10-31 00:59:12 379

原创 机器学习进阶02:逻辑回归

逻辑回归1.1 逻辑回归的参数估计1.2 逻辑回归的损失函数

2021-10-29 00:01:54 89

原创 机器学习进阶01:回归

1 使用极大似然估计解释最小二乘2 损失函数解析解的推导3 加入正则项防止过拟合4 梯度下降算法

2021-10-28 00:23:42 98

原创 机器学习基础day3

文章目录1、回归算法-线性回归分析2、线性回归实例:波斯顿房价预测3、回归性能评估3.1 梯度下降与正规方程的对比4 欠拟合和过拟合4.1 欠拟合解决办法4.2 过拟合解决办法4.3 L2正则化与岭回归4、分类算法-逻辑回归5、逻辑回归实例6、聚类算法-kmeans7、k-means实例1、回归算法-线性回归分析线性回归通过一个或者多个自变量与因变量之间进行建模的回归分析。其中可以为一个或多个自变量之间的线性组合(线性回归的一种)一元线性回归:涉及到的变量只有一个多元线性回归:涉及到的变量两个或两个

2021-10-26 00:07:47 119

原创 机器学习基础day2

文章目录1 数据集与估计器2 分类算法-k近邻算法案例:预测入住位置3 分类模型的评估3.1 评估的API4 分类算法-朴素贝叶斯算法4.1 联合概率和条件概率4.2 朴素贝叶斯公式4.3 朴素贝叶斯实现API4.4 案例:分类新闻4.5 朴素贝叶斯分类优缺点5 模型的选择与调优5.1 1 交叉验证5.1.2 网格搜索5.1.2.1 API5.3 优化KNN算法6 决策树与随机森林6.1 信息论基础6.2 API6.3 泰坦尼克号乘客生存分类案例6.5 决策树的优缺点及改进6.4 随机森林6.1 什么是随机

2021-10-25 00:22:57 281

原创 机器学习基础day01:特征工程

文章目录1、特征工程是什么2、特征工程的意义3、数据的特征抽取3.1 字典特征抽取3.2 文本特征抽取4、数据的特征处理4.1 方法4.1.1 归一化4.1.2、标准化4.1.3、缺失值4.2 API5、数据的特征选择5.1 特征选择方法5.1.1 Filter(过滤式):VarianceThreshold5.1.2 Embedded(嵌入式):正则化、决策树5.1.3 Wrapper(包裹式)6、降维6.1 主成分分析法1、特征工程是什么特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的

2021-10-24 00:36:35 85

原创 pandas模块

1 Series1.1 新建'''列表创建'''s = pd.Series([1,2,3,4],index = list('ABCD'))s.astype('int32') #改变数据结构----------------------------------import string'''字典创建'''a = {string.ascii_uppercase[i]:i for i in range(10)}b = pd.Series(a)pd.Series(a,index = list(st

2021-10-19 19:44:41 200

原创 numpy模块

1 创建数组t1 = np.array([1,2,3])print(t1)t2 = np.arange(0,5,2)#用法和range相同print(t2)type(t2) #numpy.ndarrayprint(t2.dtype) #int32#创建指定数据类型的数组np.array([0,1,0,1,1,0],dtype=np.bool)a = np.array([1,2,3],dtype=np.int32)print(a.dtype) #int32#修改数组的数据类型a.a

2021-10-19 00:13:45 43

原创 matplotlib模块

0 通用操作1、设置图片大小'''设置图片大小'''...plt.figure(figsize=(20,8),dpi=80) #在plot语句前plt.plot(x,y)2、设置x/y轴刻度_xtick_labels = [i/2 for i in range(4,49)] #通过步长来控制坐标轴间隔plt.xticks(_xtick_labels)plt.yticks(range(min(y),max(y)+1))当需要给x轴刻度添加字符串时,要保证x轴数值长度和字符一一对应_xt

2021-10-17 22:55:09 91

原创 数据结构与算法练习

1-使用Python实现冒泡排序,并分析时间复杂度for j in range(1,n): for i in range(0,n-j): if x[i] > x[i+1]: x[i],x[i+1] = x[i+1],x[i]最优时间复杂度为O(n)最坏时间复杂度为O(n2)2-使用Python实现选择排序,并分析时间复杂度for i in range(0,n-1): for j in range(i+1,n): if

2021-10-17 14:21:21 54

原创 树与树算法

1 树1.1 树的概念树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树;1.1.1 树的术语节点的度:一个节点含有的子树

2021-10-16 15:45:48 39

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除