0.666666666667
C:\Users\qiujiahao\Anaconda2\lib\site-packages\ipykernel\__main__.py:9: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
#r如果只取第一块,数据可能不准,因此,每一块都要测试,称为交叉验证
fold_id=[1,2,3,4,5]
defget_accuracies():
fold_accuracies=[]
for i in range(5):
train_interation = admission[admission["fold"] != fold_id[i]]
test_interation = admission[admission["fold"] == fold_id[i]]
#训练
model1.fit(train_interation[["gpa"]],train_interation["actul_label"])
#预测
labels =model1.predict(test_interation[["gpa"]])
test_interation["predict_label"]=labels
#取出准确值
match = test_interation["predict_label"]==test_interation["actul_label"]
correct_predict=test_interation[match]
accuracy=len(correct_predict)/float(len(test_interation))
fold_accuracies.append(accuracy)
return fold_accuracies
fold_accuracies = get_accuracies()
print fold_accuracies
print np.mean(fold_accuracies)
C:\Users\qiujiahao\Anaconda2\lib\site-packages\ipykernel\__main__.py:12: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
[0.6666666666666666, 0.6589147286821705, 0.6124031007751938, 0.65625, 0.6356589147286822]
0.645978682171