逻辑回归很多人并不陌生,我再前面机器学习的逻辑回归:LR这一章节中也有过简单的描述。
Logistic 回归不仅可以解决二分类问题,也可以解决多分类问题,但是二分类问题最为常见同时也具有良好的解释性 。 对于二分类问题, Logistic 回归的目标是希望找到一个区分度足够好的决策边界,能够将两类很好地分开 。而在前面我也讲过,要找到某函数的最大值,最好的方法是沿着该函数的梯度方向寻找,所以我们可以使用迭代的梯度下降来获得区分函数的最合适的参数。
这里我使用的数据是《深度学习之pytorch》这本书中处理逻辑回归的数据,数据格式为 ( x i , y i , 类 别 ) (x_i, y_i, 类别) (xi,yi,类别),首先我们获取数据,并将其可视化:
with open("./data/data.txt") as f:
data_list = [line.strip().split(',') for line in f.readlines()]
data = [(float(i[0]), float(i[1]), float(i[2])) for i in data_list]
# 标准化
x0_max = max([i[0] for i in data])
x0_min = min([i[0] for i in data])
x1_max = max([i[1] for i in data])
x1_min = min([i[1] for i in data])
data = [