Day07-1 实现逻辑回归
建立一个逻辑回归模型预测一个大学生是否会被大学录取
假设你是一个大学系的管理员,你想根据两次的考试结果来决定每个申请人的录取机会。你有以前的申请人的历史数据,可以作为逻辑回归的训练集。对于每一个培训例子,你有两个考试的申请人的分数和录取决定。为了做到这一点,我们将建立一个分类模型,根据考试成绩估计入学概率
import numpy as np import pandas as pd import matplotlib.pyplot as plt import os path='E:\唐宇迪数据集'+os.sep+'LogiReg_data.txt' pdData=pd.read_csv(path,header=None,names=['Exam 1','Exam 2','Admitted']) print(pdData.head())
print(pdData.shape)
positive=pdData[pdData['Admitted']==1] negative=pdData[pdData['Admitted']==0] fig,ax=plt.subplots(figsize=(10,5)) ax.scatter(positive['Exam 1'],positive['Exam 2'],s=30,c='b',marker='o',label='Admitted') ax.scatter(negative['Exam 1'],negative['Exam 2'],s=30,c='r',marker='x',label='Not Admitted') ax.legend() ax.set_xlabel('Exam 1 Score') ax.set_ylabel('Exam 2 Score') plt.show()
目标:建立分类器 (求解三个参数 θ0 偏置项 θ1 对应第一个参数 θ2 对应第二个参数)
设定阈值(相当于概率值 最后把概率值转换成类别)根据阈值判断录取结果(比如大于0.5 视为录取 否则 未被录取)
要完成的模块
1.sigmoid :完成数据到概率的映射函数
2.model:返回预测结果值
3.cost:根据参数计算损失
4.gradient:计算每个参数的梯度方向
5.decent:进行参数更新
6.accuracy 计算精度