哑变量与逻辑回归
数据
部分数据:
admit,gre,gpa,rank
0,380,3.61,3
1,660,3.67,3
1,800,4,1
1,640,3.19,4
0,520,2.93,4
1,760,3,2
1,560,2.98,1
0,400,3.08,2
1,540,3.39,3
0,700,3.92,2
0,800,4,4
0,440,3.22,1
1,760,4,1
0,700,3.08,2
1,700,4,1
导入库
-
numpy: Python的语言扩展,定义了数字的数组和矩阵
-
pandas: 直接处理和操作数据的主要package
-
statsmodels: 统计和计量经济学的package,包含了用于参数评估和统计测试的实用工具
-
pylab: 用于生成统计图
# 导入库
import pandas as pd
import statsmodels.api as sm
from matplotlib import pyplot as plt
import numpy as np
读入数据
辨别不同的因素对研究生录取的影响。
数据集中的前三列可作为预测变量(predictorvariables):gpa/gre分数/rank表示本科生母校的声望。第四列admit则是二分类目标变量(binary targetvariable),它表明考生最终是否被录用。
#读入数据:
df = pd.read_csv('../测试数据/python/binary.csv')
打印前5行
# 打印前5行
df.head()
输出:
admit gre gpa rank
0 0 380 3.61 3
1 1 660 3.67 3
2 1 800 4.00 1
3 1 640 3.19 4
4 0 520 2.93 4
重命名字段
# rank重命名为prestige
df.columns = ['admit', 'gre', 'gpa', 'prestige']
df.columns
输出:
Index(['admit', 'gre', 'gpa', 'prestige'], dtype='object')
查看统计信息
我们可以使用pandas的函数describe来给出数据的摘要
# 统计摘要以及查看数据
print('统计摘要:')
df.describe()
输出:
admit gre gpa prestige
count 400.000000 400.000000 400.000000 400.00000
mean 0.317500 587.700000 3.389900 2.48500
std 0.466087 115.516536 0.380567 0.94446
min 0.000000 220.000000 2.260000 1.00000
25% 0.000000 520.000000 3.130000 2.00000
50% 0.000000 580.000000 3.395000 2.00000
75% 1.000000 660.000000 3.670000 3.00000
max 1.000000 800.000000 4.000000 4.00000
查看每一列的标准差
# 查看每一列的标准差
print('标准差:')
df.std()
输出:
admit 0.466087
gre 115.516536
gpa 0.380567
prestige 0.944460
dtype: float64
频率表,表示prestinge与admin的值相应的数量关系
pd.crosstab(df<