二分类逻辑回归模型的代码,如下所示:
import torch
import numpy as np
import matplotlib.pyplot as plt
import torch.nn.functional as F
import time
from torch import nn
with open('./point.txt', 'r') as f:
# 读取数据
point_list = [i.split('\n')[0].split(',') for i in f.readlines()]
# 将数据以分为三组,分别是x值,y值,类别
point_data = [(float(i[0]), float(i[1]), float(i[2])) for i in point_list]
# 数据归一化处理
x_max = max([i[0] for i in point_data])#找到数据最大值
x_min = min([i[0] for i in point_data])#找到数据最小值
y_max = max([i[1] for i in point_data])
y_min = min([i[1] for i in point_data])
point_data = [((i[0]-x_min) / (x_max-x_min), (i[1]-y_min) / (y_max-y_min), i[2]) for i in point_data]
point1 = list(filter(lambda x: x[-1] == 0.0, point_data)) # 选择第一类点
point2 = list(filter(lambda x: x[-1] == 1.0, point_data)) # 选择第二类点
# 画图显示
point1_x1 = [i[0] for i in point1]
point1_y1 = [i[1] for i in point1]
point2_x2 = [i[0] for i in point2]
point2_y2 = [i[1] for i in point2]
# 数据类型转换
np_data = np.array(point_data