目录
-------出自火哥
信用舆情预测:根据一个人的特征,怎么判断该人是否会逾期呢?
| 年龄 | 工资 | 学历 | 是否逾期 |
| 20 | 4000 | 本 | 1 |
| 25 | 5000 | 专 | 0 |
| 21 | 6000 | 本 | 0 |
| 25 | 5000 | 专 | 1 |
| 28 | 8000 | 本 | 0 |
| 27 | 7000 | 本 | ??? |
学习输入到输出的映射:Y=f(x)
使用逻辑回归解决二分类问题
定义一个条件概率:p(Y|X),相当于用模型来捕获输入X和输出Y之间的关系



决策边界:即p(y=1 | x, w) == p(y=0 | x, w)




| 凸函数 |
|
| 优化算法
|
|
| 举例 | 一元凸函数利用梯度下降法求解参数
|
| 梯度下降法求解逻辑回归的最优参数w,b
| 对W求导
|
| 对b求导
| |
| 迭代更新,找到使得目标函数最小的w,b(即最优的w,b) | |
| 优化算法总结 | GD(Gradient Descent)
|
| SGD(Stochastic Gradient Descent)
|


(1)L1正则和L2正则

(2) 弹性网
弹性网结合了L1正则和L2正则,是一种优化的正则方法(类比随机批量梯度下降法:结合了批量梯度和随机梯度下降的优点)。
目标:避免w过大,避免w过大的最主要的原因是:容易导致梯度更新波动大

可参考博客:分类算法中准确率的一些问题_zhao_crystal的博客-CSDN博客_分类算法的准确率
例子:
|
混淆表 | 分类器预测的类别 | ||
| 军事 | 科技 | ||
| 实际 类别 | 军事(60) | 50 | 10 |
| 科技(40) | 5 | 35 | |
准确度Accuracy:(50 + 35) / (35 + 5 + 10 + 50) = 85%
|
| 军事 | 科技 |
| 精确率(Precision) 预测为某类,且实际也是某类的概率 | 50 /(50+5) | 35/(10+35) |
| 召回率(Recall) 实际是某类,且预测为某类的概率 | 50 /(50+10) | 35 /(5 + 35) |
PR曲线即 precision recall curve, 横坐标为precision,纵坐标为 recall。根据不同的阈值,得到不同的precision,recall 对,从而绘制而成的曲线

视频讲解:https://wq1myhtg4r.feishu.cn/minutes/obcn3edm716436jrm8466i6g
(1) ROC曲线

(2) AUC指标
负样本排在正样本前面的概率

| # cat auc.raw | sort -t$'\t' -k2g |awk -F'\t' '($1==-1){++x;a+=y;}($1==1){++y;}END{print 1.0-a/(x*y);}'
|
| Python # 梯度下降(GD) % python GD.py
# 随机梯度下降(SGD) % python SGD.py
# 预测代码 % predict.py |
3.2.1 基本逻辑



3.2.2 具体实现步骤
| Python # data # # music_meta [itemid, name, desc, total_timelen, location, tags] item 信息 # # user_profile.data [userid, gender, age, salary, location] user 信息 # # user_watch_pref.sml [userid, itemid, watch_len, hour] user关于item的行为
# 将多个文件合并成一个文件 % python gen_base.py
# 产生模型数据 % python gen_samples.py
# 模型训练,并保存模型 % python lr.py
# 得到 真实值 T.txt 预测的概率 P.txt (其中,第一列是为0的概率,第二列是为1的概率) % python lr_auc.py
# 取出 p.txt 的第二列, 预测为1的概率 % cat P.txt| awk -F'\]' '{print $1}' | awk '{print $2}' > P_2.txt
# 将T.txt 和 P_2.txt 粘贴在一起,输出auc.raw % paste T.txt P_2.txt > auc.raw
# 评估auc % cat auc.raw | sort -t$'\t' -k2g |awk -F'\t' '($1==0){++x;a+=y;}($1==1){++y;}END{print 1.0-a/(x*y);}'
# 评估 PR % python pr.py |