逻辑回归的基本原理:逻辑回归预测的是概率,需要求解的是如何选取参数c和b可以使得所有样本预测正确的可能性最大。逻辑回归算法需要找到分类概率P(y=1)与输入向量X的直接关系,然后通过比较概率值来判断类别。

逻辑回归有个基本假设,即数据的分布符合伯努利分布,也就是正类的概率与负类的概率之和为1,如抛硬币,正反面概率之和为1.在样本具有若干属性值为X的前提下,样本被分类为正类(y=1)的概率为:

P(y=1|X)

而样本为负类的概率为:

P(y=0|X) = 1-P(y=1|X)

概率是指事件发生的可能性与不发生的可能性的比值。定义一个odd(x)为X的概率,这个概率的取值为0到正无穷,值越大,说明发生的可能性越大。odd(x)的表达式:

odd(x) = P(y=1|X)/P(y=0|X) = p/1-p

两边取自然对数就得到Logistic变换,将odd(x)的自然对数成为logit函数,

logit(p) = ln(odd(x)) = P(y=1|X)/P(y=0|X) = ln()--为线性回归所预测的假设函数:

假设函数:

p = 1/1+(z代表ln(odd(x))p代表是y的概率)

逻辑回归的损失函数:

损失函数可以定义为负的最大似然函数,损失值越小,似然函数值就越大,这些模型参数也就越能导致样本的观测值。

J()  = -ln(L()) = -(yln(h(x))+(1-y)ln(1-h(x)))

代码:

读取数据,划分数据集,处理数据

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data = pd.read_csv(r"D:\data\Social_Network_Ads.csv")
X = data.iloc[:,[2,3]]
y = data.iloc[:,4]
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test= train_test_split(X,y,test_size=0.25,random_state=42)
X_train.shape,X_test.shape,y_train.shape,y_test.shapefrom sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

训练模型,模型评估(混淆矩阵):

from sklearn.linear_model import LogisticRegression
classifier = LogisticRegression(random_state = 0)
classifier.fit(X_train, y_train)
y_pred = classifier.predict(X_test)
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)
cm

计算精确度与敏感度:

from sklearn.metrics import classification_report
report = classification_report(y_test, y_pred)
print(report)

二分类可视化结果:

plt.figure()
from matplotlib.colors import ListedColormap
X_set, y_set = X_train, y_train
X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01),np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01))
plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape),alpha = 0.75, cmap = ListedColormap(('pink', 'limegreen')))
plt.xlim(X1.min(), X1.max())
plt.ylim(X2.min(), X2.max())
for i, j in enumerate(np.unique(y_set)):plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1],c = ListedColormap(('red', 'green'))(i), label = j)
plt.title('Logistic Regression (Training set)')
plt.xlabel('Age')
plt.ylabel('Estimated Salary')
plt.legend()
plt.show()

分类---逻辑回归(二分类)相关推荐

  1. 吴恩达机器学习之逻辑回归(二分类)

    吴恩达机器学习之逻辑回归 逻辑回归 二分类逻辑回归 二分类逻辑回归案例 python代码实现(含详细代码注释): 案例中几个问题的解析 不同于线性回归,逻辑回归的hθ(x)还需要用sigmoid函数处 ...

  2. 深度学习 神经网络(5)逻辑回归二分类-Pytorch实现乳腺癌预测

    深度学习 神经网络 逻辑回归二分类-乳腺癌预测 一.前言 二.代码实现 2.1 引入依赖库 2.2 加载并查看数据集 2.3 数据处理 2.4 数据分割 2.5 迭代训练 2.6 数据验证 一.前言 ...

  3. 逻辑回归二分类算法python_多分类逻辑回归 (Multinomial Logistic Regression)

    前言 分类从结果的数量上可以简单的划分为: 二分类(Binary Classification) 多分类(Multinomial Classification). 其中二分类是最常见且使用最多的分类场 ...

  4. Logitic逻辑回归二分类代码实现

    一般机器学习教程的前几章节,会讲到逻辑回归,一个很经典的分类算法: 对于训练数据量不多,且GPU资源有限的同学,这会是一个不错的选择: 关于算法原理,铺天盖地的文章,动手查阅一下,本文讲解重在实现一个 ...

  5. 逻辑回归二分类算法python_机器学习第七周--二分类算法逻辑回归

    一.Logistic分类算法 逻辑回归(Logistic Regression, LR)是传统机器学习中的一种分类模型,由于算法的简单和高效,解释性好以及容易扩展等优点,被广泛应用于点击率预估(CTR ...

  6. [从0开始机器学习]5.逻辑回归 二分类

  7. matlab逻辑回归工具箱,matlab-逻辑回归二分类(Logistic Regression)

    逻辑回归二分类 用到的预测函数为 其中,h为预测函数(大于0.5为一类,小于等于0.5为另一类).θ为各个特征的参数.θ=[θ1,θ2,θ3...]T 损失函数J(θ)为 利用梯度下降算法进行参数的更 ...

  8. python机器学习案例系列教程——逻辑分类/逻辑回归LR/一般线性回归(softmax回归)

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 线性函数.线性回归 参考:http://blog.csdn.net/luanpeng825485697/article/details ...

  9. 机器学习中二分类逻辑回归的学习笔记

    1 致谢 感谢 Andrew Ng的教导! 2 前言 逻辑回归是机器学习中很重要而且很基础的算法,它也代表了分类算法最基本的思想. 3 二分类逻辑回归逻辑回归算法 3.1 假设函数 假设函数的形式为: ...

  10. 机器学习笔记-基于逻辑回归的分类预测

    天池学习笔记:AI训练营机器学习-阿里云天池 基于逻辑回归的分类预测 1 逻辑回归的介绍和应用 1.1 逻辑回归的介绍 逻辑回归(Logistic regression,简称LR)虽然其中带有&quo ...

最新文章

  1. 《Pro ASP.NET MVC 3 Framework》学习笔记之二十七【视图1】
  2. hourglass论文_DSSD(1)_论文_arxiv2017
  3. 在Eclipse中搭建Python开发环境之三新建python 提示django not found
  4. Day45--js基本小结
  5. python isalnum函数_Python 字符串 (isdigit, isalnum,isnumeric)转
  6. Spring实例化Bean
  7. springmvc注解入门程序
  8. php mysql日期区间_php – 3个日期范围之间的Mysql查询
  9. pdf reference官方指南之-语法基础和文件结构
  10. 系统 hosts 文件修改工具
  11. Ubuntu18搭建SVN可视化工具if.svnadmin
  12. 用于薄膜太阳能电池的玻璃上大晶粒多晶硅
  13. 高通msm8926 camera调试笔记
  14. Python3---有关日期的处理---最近自然周最近自然月最近一周最近一月---dateutil模块
  15. 用moment获取一年内指定周的起始时间和结束时间、用户所选时间和前端传参时间不一致问题
  16. SQL中类型转换函数
  17. 不再发烧,小米 11 推送降温补丁
  18. 概率统计16——均匀分布、先验与后验
  19. Vue-cli使用prerender-spa-plugin插件预渲染
  20. USB射频功率计DIY——方案

热门文章

  1. 网易云热歌榜歌名与热评的高频词抓取及词云制作
  2. 智慧路灯杆网关的备用网络方案
  3. python编程阶乘_Python阶乘实现的三种方法
  4. matlab处理afm图片,基于MATLAB的增大页岩AFM灰度图分辨率的方法与流程
  5. 海康威视SDK告警上传功能整合到springboot(一)
  6. “学习金字塔”理论的一个应用
  7. 手机登陆 html,手机登录(登陆)路由器方法
  8. 2021年茶艺师(初级)模拟考试及茶艺师(初级)实操考试视频
  9. 申宝证券-题材股活跃沪指尾盘收红
  10. 微信群发消息注意事项