2013-04-20 2 views
0

Я пытаюсь сделать проверку K раза для моего наивного байесовского классификатора с помощью sklearnK-Fold Перекрестной проверки для наивных байесовского

train = csv_io.read_data("../Data/train.csv") 
target = np.array([x[0] for x in train]) 
train = np.array([x[1:] for x in train]) 

#In this case we'll use a random forest, but this could be any classifier 
cfr = RandomForestClassifier(n_estimators=100) 

#Simple K-Fold cross validation. 10 folds. 
cv = cross_validation.KFold(len(train), k=10, indices=False) 

#iterate through the training and test cross validation segments and 
#run the classifier on each one, aggregating the results into a list 
results = [] 
for traincv, testcv in cv: 
    probas = cfr.fit(train[traincv], target[traincv]).predict_proba(train[testcv]) 
    results.append(myEvaluationFunc(target[testcv], [x[1] for x in probas])) 

#print out the mean of the cross-validated results 
print "Results: " + str(np.array(results).mean()) 

Я нашел код с этим сайта, https://www.kaggle.com/wiki/GettingStartedWithPythonForDataScience/history/969. В этом примере классификатор - RandomForestClassifier, я хотел бы использовать свои собственные наивные байки classifer, но я не очень уверен, что метод fit делает на этой строке probas = cfr.fit (train [traincv], target [traincv]). (поезд [testcv])

ответ

0

Похоже, вы просто нужно изменить CFR, например:

cfr = sklearn.naive_bayes.GaussianNB() 

и он должен работать так же.

Смежные вопросы