建模分析的步骤
1 确定需求,提取数据
2 数据预处理(异常值,缺失值)
3 特征选择
4 对离散数据编码(哑变量,虚拟变量)
3 拆分训练集,测试集
4 选择并训练模型(多个备选模型)
5 模型评估
6 保存模型
7 投入生产
数据预处理
1 异常值
离散型(定性): value_counts(),unique() 方法: 改为缺失
连续型(定量): 箱型图原则(1.5IQR),3西格玛(3倍标准差) 方法:改为缺失,盖帽法
2 缺失值
1. 小于15%可以补充
2. 15% `50% : 离散化为多取值 , 缺失值自成一类.
3. 大于50%: 离散化为二值,填写和未填写
补充缺失值方法:
离散型(定性): 众数,模型预测补充(分类器),临近插值(KNN)
连续型(定量): 均值,中位数,模型预测补充(回归),临近插值
3 判断是否要标准化并进行标准化(标准化方式 Z , 0-1)
1. 聚类 2. KNN 3.失衡数据 过采样smote
自变量(特征)的选择
直接选择法
1 自变量为分类型,如果某一取值90%以上,不考虑此变量
2 自变量为数值型,如果此组数据离散程度小,就没有差异性,不考虑此变量
单元选择法(单变量选择)
如果因变量为数值型,自变量的选择:
方差分析:H0:无影响(u1=u2=…,无差异) p< α(α自定,多数为0.05)时 进入模型
相关系数(x为数值型,自由度多时,相关小于0.3的也可能相关) : H0: 相关系数为0,两变量不相关
协方差(x为数值型):H0: 协方差为0,两变量不相关
如果因变量为分类型,自变量的选择:
列联分析_独立性检验(卡方检验):(X为离散型) H0:独立(无影响)
信息熵 (X为离散型)-( 小好) #无p值,无经验解释, 只能排序选择
gini指数 (X为离散型)-( 小好) #无p值,无经验解释, 只能排序选择
IV信息价值(X为离散型)-(大好) #无P值,大于0.02表示对Y有影响
X为连续型:
1.离散后用以上方式( 若离散的不好,就可能失去一个特征)
2.方差分析
分类器(因变量分类型):
KNN, 朴素贝叶斯,决策树(ID3,C4.5,Cart),随机森林,逻辑回归,SVM(支持向量机),xgboost,gbdt,adaboost,stacking
KNN (K近邻)
注意: 因为计算的是距离为了不让某个特征起到决定性作用所以一定要进行标准化
原理:
1 找到与要预测的记录最近的K个
2 对K个记录的分类的众数,以此众数为预测结果
朴素贝叶斯
在特征条件独立的基础上计算逆概率(贝叶斯)
比较适合做二分类
贝叶斯公式里的概念(先验,后验,似然,证据)
1.多项式 (特征都为离散的,数据不能为负) 先验概率为0时解决办法(拉普拉斯平滑)
2.高斯(特征为正态分布)
3.伯努利(特征为二项分布)
优点:简单,概率问题, 效果好些
缺点:特征很难完全相互独立
决策树
ID3原理(通过信息熵来度量信息的不纯度,信息增益大的为跟节点或分支节点)
1,计算整个数据集信息熵(期望信息)-》 -sum(先验概率*log2(先验概率))
2,计算各特征信息熵(期望信息),与数据集信息熵求差值(信息增益)
3,信息增益最大的为跟节点或分支节点
4,循环2,3直到所有记录归类完,达到指定的树深度或其他的预剪枝条件为止。
优点: 规则特别清晰, 只用少数特征
缺点: 只能计算离散型, 信息增益偏向于分类多的特征,多叉并有log运算速度慢
C4.5原理(通过信息熵来度量信息的不纯度,信息增益比大的为跟节点或分支节点)
1,计算整个数据集信息熵(期望信息) -sum(先验概率*log2(先验概率))
2,计算各特征信息熵(期望信息),与数据集信息熵求差值(信息增益)
计算各特征分裂信息,求信息增益比= 信息增益/分裂信息
如果为连续数据,先排序,求其分隔点(临近两个数的均值),分隔成<= 和 > 两组数据
并对其每个分隔点求其信息增益比,选信息增益比最大的分隔点为最佳分割点。
与其他特征的信息增益比进行比较,确定根节点或分支节点
3,信息增益比最大的为跟节点或分支节点
4,循环2,3直到所有记录归类完,达到指定的树深度或其他的预剪枝条件为止。
优点: 规则特别清晰, 只用少数特征
缺点: 偏向于分隔不均的(少数部分数据纯度大),多叉并有log运算速度慢
cart分类树原理(通过Gini指数来度量信息的不纯度,Gini指数最小为跟节点或分支节点,Gini取值范围0~1
创建的是二叉树,预测时速度快)
1,计算各特征Gini指数,选择最小特征为根节点或分支节点
1) 如果为连续数据,先排序,求其分隔点(临近两个数的均值),分隔成<= 和 > 两组数据
并对其每个分隔点求其Gini指数,选Gini指数最小的分隔点为最佳分割点。
与其他特征的Gini指数进行比较,确定根节点或分支节点
2) 如果分类特征取值个数大于2的,分组成值1,非值1计算Gini指数,选择Gini指数最小的分组方式。
2,Gini指数最小的为跟节点或分支节点
3,循环1,2直到所有记录归类完,达到指定的树深度或其他的预剪枝条件为止。
优点: 规则特别清晰, 只用少数特征,速度快
缺点: 过拟合
决策树优缺点
优点:规则特别清晰, 只用少数特征,特征重要性,适合多分类
缺点: 过拟合(受极值影响)
决策树容易发生过拟合——采取剪枝处理
预剪枝
1,minsplit 最小分裂数
2, maxdepth 最大深度
3, minbucket 叶子节点最小样本数
后剪枝
REP:错误率降低剪枝(剪枝过度。)
PEP:悲观错误剪枝法是根据剪枝前后的错误率来判定子树的修剪(剪枝过度)
CCP:代价复杂度剪枝 (常用,模型cp值)
逻辑回归
模型:h(x) = exp(y)/(1+exp(y)) = 1/(1+exp(-y))
损失函数: L(x) = h(x) ^yi * (1-h(x))^(1-yi)
目标函数——(实现算法,最大似然法–对数似然)
Odds: 比值 p/(1-p)
Or: exp(回归系数) odds1/odds2
比较适合做二分类
优点: 解释性强(特征前的系数 OR)
缺点: 容易受极值影响
svm
原理(最小距离最大的一条线或面)
1 所有样本点到直线或面的距离
2 找到最小的距离
3 循环1-2步,找到最大距离的直线或面做为分割线
svm有三宝:间隔 对偶 核函数(核技巧)
线性可分 硬间隔目标函数
软间隔目标函数——引入松弛变量和惩罚因子
线性不可分(核函数——高斯核——多项式核)
优点:精准
缺点:维度灾难,矩阵运算占空间
分类器模型的评估指标
1 准确率 混淆矩阵对角线相加除以总数(TP+TN)/(TP+FN+FP+TN)
2 精准率(差准率)TP/(TP+FP) =A 和 #在所有预测为真的样本中,实际为真的占比
3 召回率(覆盖率,查全率) TP/(FN+TP) =CR #在所有实际为真的样本中,预测为真的占比
预测
1 0
真 1 TP FN
实 0 FP TN
3 F1 或 F 值 2精准率召回率/(召回率+精准率)
4 AUC(ROC 曲线下的面积,X轴 为 1-FPR=1 - FP/(FP+TN) ,Y轴 为 TPR = TP/(FN+TP))
AUC = 1 完美
AUC >0.85 优秀
0.7
4 KS max(TPR-FPR)
5 Roc 曲线,做二分类时,可以通过ROC 曲线调最优阈值
数值型预测: (cart分类回归树,线性回归,岭回归_Ridge,lasso)
cart回归树原理(用Y取值离散情况小的)
1.计算每个变量的误差平方和
1 分类型 sum(每个叶子的误差平方和开方)
2 连续型 排序,分隔,计算各分隔点的误差平方和,选择最小误差平方和的分隔点
2,叶子节点的值为包含的样本点的均值
优点:规则特别清晰, 只用少数特征,特征重要性
缺点:过拟合,Y的值个数受叶子个数限制
线性回归
模型:y=a+b1x1+b2bx2...
损失函数:sum((y^-y)^2)
目标函数:min sum((y^-y)^2)
解决目标函数方法: 最小二乘法, 梯度下降, 矩阵计算
优点:解释性好,选择特征
缺点:多重共线性,受极值影响,对因变量有正态性要求。
lasso回归的
模型: y=a+b1x1+b2bx2...
损失函数:sum((y^-y)^2) + alpha *sum(|偏回归系数|)
目标函数 min sum((y^-y)^2) + alpha *|偏回归系数|
解决目标函数方法: 最小二乘法, 梯度下降, 矩阵计算
优点:解释性好,去掉不显著特征(系数为0)
缺点:多重共线性,受极值影响,对因变量有正态性要求
岭回归
模型: y=a+b1x1+b2bx2...
损失函数:sum((y^-y)^2) + alpha * sum(偏回归系数^2)
目标函数: min sum((y^-y)^2) + alpha * sum(偏回归系数^2)
解决目标函数方法:最小二乘法, 梯度小将,矩阵计算
优点:解释性好,消除了多重共线性(系数接近于0)
缺点:受极值影响,对因变量有正态性要求
数值型预测评估指标
PPE10>80% 误差范围小于10% 的记录在80%以上
误差:(y^-y) /y<=10% 算对,
对的概率在80%以上
R^2= SSR/SST= 1-SSE/SST