机器学习-逻辑回归
前言
逻辑回归虽然叫回归,实际上是一个二分类模型,要知道回归模型是连续的,而分类模型是离散的,逻辑回归简单点理解就是在线性回归的基础上增加了一个 sigmoid 函数
逻辑回归 = 线性回归 + sigmoid 函数
回顾线性回归
- 表达式:
sigmoid 函数
-
什么是sigmoid 函数
sigmoid 是以0.5为分界线的激活函数,主要用于将结果输入sigmoid 函数中sigmoid函数会输出一个[0,1] 区间的概率值,0.5以上为一类,0.5以下为一类,这样完成二分类任务
-
公式:
逻辑回归的公式
-
-
-
所以可以写成
逻辑回归的损失
- 逻辑回归损失函数体现在“预测值” 与 “实际值” 相似程度上
- 损失值越小,模型会越好,但是过于小也要考虑过拟合的原因
梯度下降与参数更新
梯度下降:
deltatheta = (1.0 / m) * X.T.dot(h - y)
更新参数:
theta = theta - alpha * deltatheta
代码
import numpy as np import matplotlib.pyplot as plt data = np.loadtxt('ex2data1.txt',delimiter=',') x = data[:,:-1] y = data[:,-1] x -= np.mean(x,axis=0) x /= np.std(x,axis=0) X = np.c_[np.ones(len(x)),x] def mov(theta): z = np.dot(X,theta) h = 1/(1+np.exp(-z)) return h def cos(h): j = -np.mean(y*np.log(h)+(1-y)*np.log(1-h)) return j def tidu(sus=10000,aphe=0.1): m,n = X.shape theta = np.zeros(n) j = np.zeros(sus) for i in range(sus): h = mov(theta) j[i] = cos(h) te = (1/m)*X.T.dot(h-y) theta -= te * aphe return h,j,theta if __name__ == '__main__': h,j,theta = tidu() print(j) plt.plot(j) plt.show()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了