Logistic從疝氣病症預測病馬的死亡率
阿新 • • 發佈:2019-01-27
文章來源:http://pocore.com/blog/article_514.html
errorSum:0.0 總錯誤率
numTests:6 迴圈次數迴圈numTests次
k=0
讀取訓練資料
currLine: ['2.000000', '1.000000', '38.500000', '66.000000', '28.000000', '3.000000', '3.000000', '0.000000', '2.000000', '5.000000', '4.000000', '4.000000', '0.000000', '0.000000', '0.000000', '3.000000', '5.000000', '45.000000', '8.400000', '0.000000', '0.000000', '0.000000']
轉成資料
lineArr: [2.0, 1.0, 38.5, 66.0, 28.0, 3.0, 3.0, 0.0, 2.0, 5.0, 4.0, 4.0, 0.0, 0.0, 0.0, 3.0, 5.0, 45.0, 8.4, 0.0, 0.0]
新增一行訓練資料
trainingSet: [[2.0, 1.0, 38.5, 66.0, 28.0, 3.0, 3.0, 0.0, 2.0, 5.0, 4.0, 4.0, 0.0, 0.0, 0.0, 3.0, 5.0, 45.0, 8.4, 0.0, 0.0]]
新增一行訓練標籤
trainingLabels: [[0.0]]
最終得到
trainingSet: [[2.0, 1.0, 38.5, 66.0, 28.0, 3.0, 3.0, 0.0, 2.0, 5.0, 4.0, 4.0, 0.0, 0.0, 0.0, 3.0, 5.0, 45.0, 8.4, 0.0, 0.0], .....]
trainingLabels:
: : [0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, ......]
迴圈500次
得到trainWeights
讀取測試資料:
numTestVec:0.0 記錄全部測試的記錄數
lineArr: [2.0, 1.0, 38.5, 54.0, 20.0, 0.0, 1.0, 2.0, 2.0, 3.0, 4.0, 1.0, 2.0, 2.0, 5.9, 0.0, 2.0, 42.0, 6.3, 0.0, 0.0]
利用lineArr和上一步的trainWeights計算得到
prob=1.0
計算得到分類
if prob>0.5: return 1.0
else: return 0.0
判斷分類是否正確
如果分類正確
errorCount=errorCount+1
利用errorCount=(errorCount)/numTestVec得到
errorRate=0.3582089552238806
計算全部迴圈的平均錯誤率
errorSum/float(numTests)