算法梳理——002逻辑回归

一些胡说八道
如何来说说我最近几天的状态呢?
由于感冒的原因,最近就是状态很不好,脑子里一团浆糊,不能思考,也找不出头绪。
最近几天都是看见药也不想吃,神经性头痛,一丝一丝的剥离着自己的活力,在颓废了差不多两三天的时候,想想还是吃药吧,毕竟也熬了那么几天没靠自身痊愈,拖着也不是那么回事。
希望我们所有的人都能减少或者避免疾病困扰,自由的生活,如果有理想就辛勤的追逐,如果没有那就自由的活着,吹吹空调,喝喝小酒,日子也是不错的。
然而那么多屁话,我还是要忍着脑子里螺旋挤压那种痛楚来写作业,这么看来我还是有一点点‘劳其筋骨’的感觉。既然决定要做了,如果不是更重要的事情,我貌似也找不到什么半途而废的理由。对!我就是这么忽悠生病的自己的!

一、逻辑回归原理
logistic回归又称logistic回归分析,是一种广义的,线性回归分析模型 ,逻辑回归属于对数线性模型。
我们在线性回归中更加偏重的是对一个值的预测,但是要做分类任务可能就会出现一点问题,但是在广义线性模型
在这里插入图片描述
我们把g()称为联系函数,显然,对数线性回归是广义线性回归在g()=ln()时的特例。
面对一个分类问题其实都可以转换成多个二分类问题,线性回归的预测值是一个实数,而对于分类问题我们希望得到的0/1来进行分类处理,那么此时我们一般会用到映射函数,将实值函数映射成0/1值。
阶跃函数存在一个阶跃点,这是个bad point 。所以我们会考虑一些替代方式。

对数几率
首先什么叫几率?
我们假设一件事发生的概率为p,不发生的概率则为1-p,几率的定义就是发生的概率与不发生概率的比值。在这里插入图片描述
对数几率回归:就是用线性回归模型的预测结果去逼近真实标记的对数几率
在逻辑回归中输出的对数几率是输入x的线性函数,或者说输出的对数几率是由输入x的线性函数表示的模型
算法梳理——002逻辑回归_第1张图片

二、损失函数
推导
算法梳理——002逻辑回归_第2张图片
求解
算法梳理——002逻辑回归_第3张图片

三、模型评估和正则化

算法梳理——002逻辑回归_第4张图片

四、类别不平衡问题
类别不平衡(class-imbalance)是指分类任务中不同类别的训练样例数目差别很大的情况。
解决方法:
1、扩大数据集
面对数据问题,第一结局思路还是应该从数据上着手。当然一般正是不能解决数据量的问题才出现不平衡(除去广告投放这类情况),所以首先想到就ok啦但是一般这一点我们应该是做不到了,但是如果有能力做到,扩大数据一定要排在第一位,因为更多的数据是要强过更好的算法的。
2、欠采样或过采样
、既然存在不平衡问题,那么我们完全可以通过减少对大类的数据采集个数或者增加对小类数据的采集个数。
整体来看,欠采样是一个随机丢弃大类数据的一个操作,我们很有可能会丢失一些重要数据,EasyEnsemble算法利用集成学习的思路,将大类数据分成若干个集合来使用,从局部来看是一种欠采样的感觉,但是在模型集合的时候整体上还是没有丢失数据。
关于过采样:
SMOTE:通过对训练集中的小类数据进行插值来产生额外的小类样本数据。产生新的少数类样本,产生的策略是对每个少数类样本a,从它的最近邻中随机选一个样本b,然后在a、b之间的连线上随机选一点作为新合成的少数类样本。
adasyn:本思想是根据学习难度的不同,对不同的少数类别的样本使用加权分布,比较容易学习的少数类样本,对于难以学习的少数类的样本,产生更多的综合数据。 因此,ADASYN方法通过两种方式改善了对数据分布的学习:(1)减少类不平衡引入的偏差,(2)将分类决策边界自适应地转移到困难的样本。
3、使用新的评价指标
4、尝试新的算法
5、对模型进行惩罚
可以对分类器的小类样本数据增加权值,降低大类样本的权值,使得分类器将重点集中在小类样本身上。但是惩罚矩阵的设置就有待考虑了,可能是个很麻烦的事情。

五、sklearn参数

SGDClassifier,这个分类器有一个好处是能够高效地处理非常大的数据集
cross_val_score()
cross_val_score(sgd_clf, X_train, y_train_5, cv=3, scoring=“accuracy”)
实现交叉验证
StratifiedKFold类实现了分层采样
cross_val_predict()函数
confusion_matrix()函数
f1_score() F1 值是准确率和召回率的调和平均
decision_function()
roc_curve()函数
roc_auc_score

你可能感兴趣的:(机器学习笔记)