数据集:
在txt文本里面,自己编写三列数行数据就可以,参考下图(由于无法上传,数据无所谓,可以自己编写,主要是实现算法):
右图是程序运行添加的头部和侧面编号,文本框只有数据,见下左图
简单算法手写草拟:
python实现:
1、导入python库
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']#显示中文
2、导入数据并标记
path = 'andrew_ml_ex22391逻辑回归数据集\ex2data1.txt'
data = pd.read_csv(path,header=None,names=['体检1','体检2','患病'])
阳性 = data[data['患病'].isin([1])]
阴性 = data[data['患病'].isin([0])]
3、数据可视化
fig, ax = plt.subplots(figsize=(12,8))
ax.scatter(阳性['体检1'], 阳性['体检2'], s=50, c='r', marker='o', label='患病')
ax.scatter(阴性['体检1'], 阴性['体检2'], s=50, c='g', marker='s', label='不患病')
ax.legend()
ax.set_xlabel('体检 1 数据')
ax.set_ylabel('体检 2 数据')
plt.show()
结果显示:
4、①Sigmoid函数和 应用梯度下降更新Ѳ
Sigmoid函数:
偏导数:
python代码如下:
# 实现sigmoid函数
def sigmoid(z)