逻辑回归模型经过推广,可以直接支持分类多个类别,而不需要训练并组合多个二元分类器。这就是softmax回归,或叫“多元逻辑回归”。Softmax是Logistic回归在多分类问题中的推广。对于三个及以上的分类问题,要采用Softmax作为输出层的激活函数。

Sk(x)=xT θk    (类k的Softmax分数)

def softmax(z):  exp_sum = 0for k in range(z.shape[0]):exp_sum = exp_sum + np.exp(z[k])a = np.exp(z)/exp_sum #按元素做除法return a

 Softmax实现

在具体的模型实现时,softmax搭配categorical_crossentropy函数使用,该函数公式如下:

因为yi,要么是0,要么是1。而当yi等于0时,结果就是0,当且仅当yi等于1时,才会有结果。也就是说categorical_crossentropy只专注与一个结果,因而它一般配合softmax做单标签分类


使用鸢尾花数据采集softmax的实例:

X = iris["data"][:, (2, 3)]  # petal length, petal width
y = iris["target"]

softmax_reg = LogisticRegression(multi_class="multinomial",solver="lbfgs", C=10, random_state=42)
softmax_reg.fit(X, y)

x0, x1 = np.meshgrid(
        np.linspace(0, 8, 500).reshape(-1, 1),
        np.linspace(0, 3.5, 200).reshape(-1, 1),
    )
X_new = np.c_[x0.ravel(), x1.ravel()]

y_proba = softmax_reg.predict_proba(X_new)
y_predict = softmax_reg.predict(X_new)

zz1 = y_proba[:, 1].reshape(x0.shape)
zz = y_predict.reshape(x0.shape)

plt.figure(figsize=(10, 4))
plt.plot(X[y==2, 0], X[y==2, 1], "g^", label="Iris virginica")
plt.plot(X[y==1, 0], X[y==1, 1], "bs", label="Iris versicolor")
plt.plot(X[y==0, 0], X[y==0, 1], "yo", label="Iris setosa")

from matplotlib.colors import ListedColormap
custom_cmap = ListedColormap(['#fafab0','#9898ff','#a0faa0'])

plt.contourf(x0, x1, zz, cmap=custom_cmap)
contour = plt.contour(x0, x1, zz1, cmap=plt.cm.brg)
plt.clabel(contour, inline=1, fontsize=12)
plt.xlabel("Petal length", fontsize=14)
plt.ylabel("Petal width", fontsize=14)
plt.legend(loc="center left", fontsize=14)
plt.axis([0, 7, 0, 3.5])
save_fig("softmax_regression_contour_plot")
plt.show()

predict 返回预测结果

predict_proba 返回预测的概率值。

Softmax回归是什么?(多元逻辑回归)相关推荐

  1. 《人工智能》机器学习 - 第5章 逻辑回归(四 多元逻辑回归实战)

    5.4多元逻辑回归实战 5.4.1多元逻辑回归实战之预测病马的死亡率 本次实战内容,将使用Logistic回归来预测患疝气病的马的存活问题.原始数据集下载地址: http://archive.ics. ...

  2. 神经网络(二):Softmax函数与多元逻辑回归

    文章目录 一. Softmax函数与多元逻辑回归 二.广告时间 一. Softmax函数与多元逻辑回归 为了之后更深入地讨论神经网络,本节将介绍在这个领域里很重要的softmax函数,它常被用来定义神 ...

  3. mllib逻辑回归 spark_Spark Mllib中逻辑回归

    1相关参数设置 <1> setMaxIter():设置最大迭代次数 <2> setRegParam(): 设置正则项的参数,控制损失函数与惩罚项的比例,防止整个训练过程过拟合, ...

  4. 逻辑回归和多项逻辑回归

    文章目录 一.逻辑回归 逻辑回归模型 极大似然估计法求w 损失函数 梯度下降求解w 二.多项逻辑回归 三.问题 1.逻辑回归如何处理多标签问题? 2.为什么不用平方误差(MSE)作为Logistic回 ...

  5. R语言使用broom包将回归模型(线性回归、逻辑回归、比例风险回归)的结果整理成dataframe并导出到excel等文件中:基于mtcars和colon数据集

    R语言使用broom包将回归模型(线性回归.逻辑回归.比例风险回归)的结果整理成dataframe并导出到excel等文件中:基于mtcars和colon数据集 目录

  6. 回归、线性回归和逻辑回归【逻辑回归部分待完成】

    一.回归 "回归"这个词很有误导性,在陈希孺的<概率论与数理统计>中对这个词的来源有过解释.是个外国人,在做数据分析的时候,发现将数据画出来后,不管大的小的数据都会有一 ...

  7. Spark MLlib回归算法------线性回归、逻辑回归、SVM和ALS

    Spark MLlib回归算法------线性回归.逻辑回归.SVM和ALS 1.线性回归: (1)模型的建立: 回归正则化方法(Lasso,Ridge和ElasticNet)在高维和数据集变量之间多 ...

  8. 【逻辑回归算法】{2} ——逻辑回归损失函数的梯度

    目标:求出逻辑回归损失函数的最小值. 逻辑回归的损失函数: 逻辑回归损失函数的梯度: 计算预测函数Sigmoid函数的导数: 代入: 计算过程: 最后得出逻辑回归损失函数的梯度: 回顾一下线性回归代价 ...

  9. 【数学建模】统计领域的逻辑回归(分类变量相关性检验、优势比OR、包含分类变量的多元逻辑回归)

    统计领域的逻辑回归 0 指导方针 1 分类变量之间的相关性检验 1.1 分类变量相关性的示例 1.2 列联表分析 1.3 信用风险建模案例 1.3.1 制作两分类变量交叉表并求解交叉频率 1.3.2 ...

  10. 【机器学习之逻辑回归】sklearn+python逻辑回归详解

    文章目录 一.逻辑回归 二.算法原理介绍 三.代码实现 3.1 sklearn-API介绍 3.2 sklearn-代码实现 3.3 python手写代码实现 四.总结 五.算法系列 一.逻辑回归 逻 ...

最新文章

  1. PTA基础编程题目集-7-4 BCD解密
  2. Linux 环境下NFS 服务搭建
  3. 关于软件产品服务有感
  4. 免费图标下载:100个手绘的PSD图标
  5. 数据库分组选 第一条
  6. Could not delete .........May be locked by another process.
  7. oracle 设置忽略关键字,记oracle里continue关键字的陷阱
  8. wincc 如何实现上下箭头对数字的增减_由箭头函数引发的对一些概念的认识
  9. C# 设置Excel中的数字字符串格式
  10. mybatis的startPage使用
  11. Mac生成和查看SSH Key
  12. ES6 学习内容记录
  13. 程序员的数学思维修炼(趣味解读)还有哪些进制
  14. 计算机科学与技术优劣,计算机科学与技术专业优势多多
  15. 抓取国家统计局2018年的省市区街道数据
  16. java面试题2021
  17. 第九章 数据库事物管理
  18. 微信小程序从本地开发环境到线上测试环境和生产环境的配置
  19. 【二】CC2541 阿莫BLE开发板 与 BTool软件的连接 以及 读写UUID
  20. PHPRunner 10.7.0 PHP代码生成器

热门文章

  1. Chrome下载文件,文件名出现乱码解决
  2. 【实战篇】微信公众号网页授权登录实现起来如此简单
  3. HCIA-IoT 个人学习总结 Day2
  4. 计算机休眠后无法联网,电脑休眠后回来就不能上网了
  5. 计算机控制/SLAM/ROS2云班课等详细说明2019-2020-2学期
  6. 关于Oracle删除永久表空间
  7. 联想笔记本e43l_联想昭阳e43l
  8. python快速读取大文件_Python学习的窍门:如何读取大文件
  9. Discuz!风格模版初级不完全修改教程
  10. linux yum用法,Linux系统yum的使用与说明