专栏首页LhWorld哥陪你聊算法【机器学习】---逻辑回归从初识到应用

【机器学习】---逻辑回归从初识到应用

一、前述

逻辑回归是一种分类算法,对多元线性回归的结果做一定的缩放。是一种线性(x是一次的)有监督(有x,y)分类(要么是正列,要么是负例)算法。是通过sigmod算法的一次缩放。

sigmod函数解释如下:

二、具体原理

前提和损失函数推倒:

-->转化为似然的思想:

-->对转换后的似然函数求偏导:

-->求完导数后,确定方向后

逻辑回归损失函数:

如果最后预测的结果大于0.5(默认)是正例 小于0.5是负例

做分类的误差来源于两种情况:

假设Y是正列 1-p^

假如本来是1这个类别:预测出来的结果是0.6则预测对了预测的误差是1-0.6=0.4

假如本来是1这个类别:预测出来的结果是0.1 则误差1-0.1=0.9

假设是负例p^

假设预测出来的是0.1 则误差是0.1

假设预测出来的是0.6 则误差是0.6

三、代码

#逻辑回归预测鸢尾花,根据花瓣的宽度
import numpy as np
from sklearn import datasets
from sklearn.linear_model import LogisticRegression
import matplotlib.pyplot as plt


iris = datasets.load_iris()# 鸢尾花数据集
print(list(iris.keys()))
print(iris['DESCR'])#数据集的描述
print(iris['feature_names'])#数据集的特证名字 #150条数据 三种花 每种花50条数据
#根据花的花瓣,花萼,花蕊来分类
X = iris['data'][:, 3:] # 逗号左边第一行到所有行 ,逗号右边第3列开始到最后 总共4列 实际上就是最后一列
# print(X)
print(iris['target'])
y = (iris['target'] == 2).astype(np.int)
print(y) #保留类别为2的花。


log_reg = LogisticRegression()#构建逻辑回归
log_reg.fit(X, y)#根据最后一个花瓣的宽度来预测

X_new = np.linspace(0, 3, 1000).reshape(-1, 1)#0-3之间切分1000次
print(X_new)
y_proba = log_reg.predict_proba(X_new)#预测的概率 给一个0-1之间的一个概率值
y_hat = log_reg.predict(X_new)#预测的结果
print(y_proba)
print(y_hat)
plt.plot(X_new, y_proba[:, -1], 'g-', label='Iris-Virginica')
plt.plot(X_new, y_proba[:, 0], 'b--', label='Not Iris-Virginica')
plt.show()

print(log_reg.predict([[1.7], [1.5]]))
#PS 对应1.6的时候正列结果是鸢尾花 #小于1.6的时候是负例不是鸢尾花

PS:1.6是正负例的交界。

四、逻辑回归做多分类算法

1、原理

2、结论

如果我们做三分类的话,相当于这里并行计算出三个独立的模型

谁的概率最大,最终就判定为哪个类别

 五、阈值修改

根据需求的变通 去除固定阈值0.5 • 癌症病人的判断? • 假如病人是癌症: – 判断成不是癌症 • 假如病人是非癌症 – 判断是癌症 • 0.3(这里调小了,所以负例少了,则本来不是癌症,最后预测的是癌症)

调阈值是在真正测试的时候调整的,训练的时候不调整 • 虽然整体的错误率变大了,但是规避了一些不能接受的风险

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python 使用小结

    使用Python 已经一段时间了 ,现将python 中可能用到的技巧和一些知识点分享如下。

    LhWorld哥陪你聊算法
  • 【机器学习】--Python机器学习库之Numpy

    NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。 NumPy包含很多实用的...

    LhWorld哥陪你聊算法
  • 【机器学习】--线性回归中soft-max从初始到应用

    Soft-Max是做多分类的,本身是哪个类别的概率大,结果就为对应的类别。为什么称之为Soft判别,原因是归一化之后的概率选择最大的作为结果,而不是只根据分子。

    LhWorld哥陪你聊算法
  • 第2课 python数据类型与转换

    是的,我们主要是3类数据 类型。。 3者之间可以转换,但是有条件,我们先一个个说吧。

    py3study
  • Python之内置函数

    内置函数 python里的内置函数。截止到python版本3.6.2,现在python一共为我们提供了68个内置函数。它们就是python提供给你直接可以拿来使...

    新人小试
  • 使用数组作为索引遍历numpy数组

    DrawSky
  • Python3学习笔记 | 十三、Python的语句与语法-打印

    在Python里,打印语句是与文件类型操作相似。在文件操作里,是使用write 方法向打开的文件写入内容。打印操作是往系统的标准输出(stdout)流来实现显示...

    TeamsSix
  • 元组、字典、集合

    py3study
  • Google Python挑战赛:我猜你答不上来!

    这是一个来自谷歌的秘密招聘挑战(Google FooBar Invitation) ),如果你收到了谷歌的FooBar邀请,你应该感到高兴。谷歌的许多开发人员都...

    量化投资与机器学习微信公众号
  • 创意饼图的制作技巧——图标填充饼图!

    今天给大家介绍一种创意饼图的制作技巧——图标填充饼图! 创意饼图 ▽ 觉得默认的饼图不够炫酷、不够养眼,木有逼格 没关系,今天就交给大家一种创意饼图的制作技...

    数据小磨坊

扫码关注云+社区

领取腾讯云代金券