10 ,逻回案例,高校招生 : 数据准备,解题思路

1 ,案例 : 目标

  1. 小明想去美国留学,目的地是加州理工大学
  2. 加州理工大学,对我们中国学生有两门考试,exam1,exam2
  3. 我们有历史数据表,这是以往的学生成绩,和是否被录取的历史信息
  4. 目的 :
    1 ,根据历史数据,得到逻辑回归模型
    2 ,根据回归模型,判断小明被录取的可能性有多大

2 ,案例 : 数据的样子

  1. 数据 :
34.62365962451697,78.0246928153624,0
30.28671076822607,43.89499752400101,0
35.84740876993872,72.90219802708364,0
60.18259938620976,86.30855209546826,1
  1. 观察这组数据 :
    1 ,他没有表头,我们需要手动添加表头
    2 ,三列 : exam1,exam2,admitted
  2. 数据含义 :
    1 ,exam1 : 第一个科目成绩
    2 ,exam2 : 第二个科目成绩
    3 ,admitted : 是否被录取 ( 0-失败,1-成功 )
  3. 数据行列 : 100 行三列
    [100 rows x 3 columns]

3 ,画散点图 : 成功失败点,观察数据,直观感受

  1. 代码 :
if __name__ == '__main__':
    # 读取数据,因为没有表头,所以我们添加表头
    pdData = pd.read_csv("LogiReg_data.txt",header=None,names=["exam1","exam2","Admitted"])
    # 所有的成功数据
    positive = pdData[pdData['Admitted'] == 1]
    # 所有的失败数据
    negative = pdData[pdData['Admitted'] == 0]
    # 画笔,指定图像大小
    fig, ax = plt.subplots(figsize=(10, 5))

    # 画图 : 成功分数 ( x,y,点的尺寸,线色,散点图标,线名字 )
    ax.scatter(positive['exam1'], positive['exam2'], s=30, c='b', marker='o', label='Admitted')
    # 画图 : 失败分数
    ax.scatter(negative['exam1'], negative['exam2'], s=30, c='r', marker='x', label='Not Admitted')
    # 打印 : 小窗
    ax.legend()
    # x 轴,y 轴名字
    ax.set_xlabel('Exam 1 Score')
    ax.set_ylabel('Exam 2 Score')
    plt.show()
  1. 结果 :
    10 ,逻回案例,高校招生 : 数据准备,解题思路_第1张图片
  2. 结论 :
    1 ,分数越低,越不被录取
    2 ,此种结果,事发必然

4 ,回归分析 : 思路

  1. 影响事情成败的因素 : 2 个 ( 两门功课的成绩 )
  2. 所以数据分析的维度 : 2 个

5 ,逻辑回归 : 目标

  1. 回归函数 : f(x1,x2) = θ0 + θ1 * x1 + θ2 * x2
  2. 目标 : 求出 ( θ0,θ1,θ2 )
  3. 怎么求 : 建立分类器
  4. 设定阈值 : 根据阈值,判定录取结果
    1 ,概率 >0.5 : 被录取了
    2 ,概率 <0.5 : 没被录取
  5. 如图 :
    10 ,逻回案例,高校招生 : 数据准备,解题思路_第2张图片

6 ,求解 : 提纲

  1. sigmoid : 映射到概率的函数
  2. model : 返回预测结果值
  3. cost : 根据参数计算损失
  4. gradient : 计算每个参数的梯度方向
  5. descent : 进行参数更新
  6. accuracy: 计算精度

你可能感兴趣的:(python)