0
我們有一個關於分類的機器學習項目。起初,我嘗試了一個最簡單的分類器:分類器總是預測+1。 這是我的代碼。使用python進行機器學習熱身
from binary import *
from numpy import *
from pylab import *
import util
import datasets
import binary
import dumbClassifiers
class AlwaysPredictOne(BinaryClassifier):
"""
This defines the classifier that always predicts +1.
"""
def __init__(self, opts):
"""
do nothing
"""
def online(self):
return False
def __repr__(self):
return "AlwaysPredictOne"
def predict(self, X):
return 1 # return our constant prediction
def train(self, X, Y):
"""
do nothing
"""
h = dumbClassifiers.AlwaysPredictOne({})
print(h)
h.train(datasets.TennisData.X, datasets.TennisData.Y)
h_p = h.predictAll(datasets.TennisData.X)
print(h_p)
m = mean((datasets.TennisData.Y > 0) == (h.predictAll(datasets.TennisData.X) > 0))
print(m)
t = mean((datasets.TennisData.Yte > 0) == (h.predictAll(datasets.TennisData.Xte) > 0))
print(t)
那麼結果:
AlwaysPredictOne
[ 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
0.642857142857
0.5
AlwaysPredictOne
[ 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
0.642857142857
0.5
雖然答案是正確的,我的問題是,爲什麼會出現兩次?我的代碼有問題嗎?
如何運行代碼,此處缺少某些內容。 –
我建議用* pass *替換「什麼都不做」評論:爲什麼在有語法時使用評論? – guidot