逻辑回归实现(python)

python、机器学习、逻辑回归
摘要由CSDN通过智能技术生成

逻辑回归

逻辑回归是应用非常广泛的一个分类机器学习算法,它将数据拟合到一个logit函数(或者叫做logistic函数)中,从而能够完成对事件发生的概率进行预测。

线性归回输出结果是一个无法限定范围的连续值,为了将这个结果映射为(0,1)之间的概率值,使用sigmoid函数

g(z)=11+ez

该函数图像如下:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
z=np.arange(-5,5,0.1)
g=[]
for i in z:
    g.append(1/(1+np.exp(-i)))
plt.xlabel('Input')
plt.ylabel('Output')
plt.title('Sigmoid')
plt.xlim(-5,5)
plt.ylim(0,1)
plt.grid(True)
plt.plot(z,g)

这里写图片描述

逻辑回归的假设:

hθ(x)=g(θTx)

导入学生成绩数据并绘图

path='C:/Users/logit_data/data1.txt'
data=np.loadtxt(path,delimiter=',')
#查看数据维数
data.shape
(100, 3)
#查看数据内容
data[:5,:]
array([[34.62365962, 78.02469282,  0.        ],
       [30.28671077, 43.89499752,  0.        ],
       [35.84740877, 72.90219803,  0.        ],
       [60.18259939, 86.3085521 ,  1.        ],
       [79.03273605, 75.34437644,  1.        ]])
#定义一个可视化函数
def plotData(data,label_x,label_y,label_pos,label_neg,axes=None):
    #获取不同标签
    neg=data[:,2]==0
    pos=data[:,2]==1
    if axes==None:
        axes=plt.gca()
    axes.scatter(data[pos][:,0],data[pos][:,1],color='g',marker='+',s=60,linewidth=2,label=label_pos)
    axes.scatter(data[neg][:,0],data[neg][:,1],color='r',s=60,linewidth=2,label=label_neg)
    axes.set_xlabel(label_x)
    axes.set_ylabel(label_y)
    axes.legend()
plotData(data,'Exam 1 score','Exam 2 score','Pass','Fail')

这里写图片描述

通过极大似然对参数拟合:

l(θ)=1mi=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值