今天用python实现了一个Logistic回归的小例子。
import pandas as pd
from sklearn.linear_model import LogisticRegression,RandomizedLogisticRegression
from sklearn.cross_validation import train_test_split
data = pd.read_csv("http://cdn.powerxing.com/files/lr-binary.csv")
data.columns=['admit','gre','gpa','prestige']
ranks = pd.get_dummies(data['prestige'], prefix='prestige')
data=data.drop('prestige',1)
data = data.join(ranks.ix[:, 'prestige_2':])
x_train,x_test,y_train,y_test=train_test_split(data.ix[:,1:],data.ix[:,0],test_size=.1,random_state=530)
lr=LogisticRegression()
lr.fit(x_train,y_train)
#print(x_test)
print(lr.predict(x_test))
首先是把初始数据表中的属性重新命名,prestige所对应的为等级或者说优先级,没有大小的含义,需要进行虚拟化。
我把样本的的10%用来做测试集,其他为训练集。
最终的结果如下:
其中1就代表的录取,0就表示舍弃。