使用逻辑回归完成分类任务。
一、 步骤
(1)加载数据集
# !wget http://labfile.oss.aliyuncs.com/courses/1081/course-8-data.csv
import pandas as pd
df = pd.read_csv("course-8-data.csv", header=0) # 加载数据集
df.head() # 预览前 5 行数据
(2)绘制图像
from matplotlib import pyplot as plt
plt.figure(figsize=(10, 6))
plt.scatter(df['X0'],df['X1'], c=df['Y'])
(3)逻辑回归函数定义
- Sigmoid 函数
- 损失函数
- 梯度计算
"""逻辑回归完整实现
"""
# Sigmoid 分布函数
def sigmoid(z):
sigmoid = 1 / (1 + np.exp(-z))
return sigmoid
# 损失函数
def loss(h, y):
loss = (-y * np.log(h) - (1 - y) * np.log(1 - h)).mean()
return loss
# 梯度计算
def gradient(X, h, y):
gradient = np.dot(X.T, (h - y)) / y.shape[0]
return gradient
# 逻辑回归过程
def Logistic_Regression(x, y, lr, num_iter):
intercept = np.ones((x.shape[0],