高级编程技术sklearn习题
题目:
代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sklearn.datasets as sd
import sklearn.metrics as sm
import sklearn.model_selection as sms
import sklearn.naive_bayes as sn
import sklearn.svm as ss
import sklearn.ensemble as se
def test(alg,data_train,data_test,target_train,target_test):
if(alg=='GaussianNB'):
t = sn.GaussianNB()
elif(alg=='SVC'):
t = ss.SVC(C=1e-1,kernel='rbf')
elif(alg=='RandomForestClassifier'):
t = se.RandomForestClassifier(n_estimators=100)
t.fit(data_train,target_train)
pre = t.predict(data_test)
print()
print(alg + " test result:")
print("Accuracy: ", sm.accuracy_score(target_test, pre))
print("F1-score : ", sm.f1_score(target_test, pre))
print("AUC RO: ", sm.roc_auc_score(target_test, pre))
def main(args):
dataset = sd.make_classification(n_samples=1000, n_features=10)
kfold = sms.KFold(n_splits=10)
testid = 1
for tr, te in kfold.split(dataset[0]):
print("testid:" + str(testid))
testid += 1
alglist = ['GaussianNB','SVC','RandomForestClassifier']
for alg in alglist:
test(
alg=alg,data_train=dataset[0][tr],
data_test=dataset[0][te],
target_train=dataset[1][tr],
target_test=dataset[1][te]
)
print()
return 0
if __name__ == '__main__':
import sys
sys.exit(main(sys.argv))
结果: