高级编程技术【sklearn】

题目

代码

from sklearn import datasets,cross_validation
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC
from sklearn.ensemble import RandomForestClassifier
from sklearn import metrics

def ans(y_test, pred):
    print("Accuracy:", metrics.accuracy_score(y_test, pred))
    print("F1-score:", metrics.f1_score(y_test, pred))
    print("AUC ROC:",metrics.roc_auc_score(y_test, pred))

# 生成数据集
dataset = datasets.make_classification(n_samples=2000, n_features=20, n_repeated=0, n_classes=2)

kf = cross_validation.KFold(len(dataset[1]), n_folds=10, shuffle=True) # 交叉检验划分

num = 0

for train_index, test_index in kf:
    x_train, x_test = dataset[0][train_index], dataset[0][test_index]
    y_train, y_test = dataset[1][train_index], dataset[1][test_index]

    num += 1

    print("================================")
    print("Test " + str(num))

    # 朴素贝叶斯
    print("Naive Bayes:")
    clf = GaussianNB()
    clf.fit(x_train, y_train)
    pred = clf.predict(x_test)
    ans(y_test, pred)
    print("--------------------------------")

    # 支持向量机
    print("SVM:")
    clf = SVC(C=1e-01, kernel='rbf', gamma=0.1)
    clf.fit(x_train, y_train)
    pred = clf.predict(x_test)
    ans(y_test, pred)
    print("--------------------------------")

    # 随机森林
    print("Random Forest:")
    clf = RandomForestClassifier(n_estimators=100)
    clf.fit(x_train, y_train)
    pred = clf.predict(x_test)
    ans(y_test, pred)
    
    print("================================")


结果截图 (选择其中的某几次测试结果)

Test 1:
Test 9:

Test 10:



猜你喜欢

转载自blog.csdn.net/Zero_S_Qiu/article/details/80733953