6.13作业(sklearn练习)

这篇博客介绍了如何使用sklearn库进行机器学习实践,详细步骤包括:利用make_classification生成分类数据集,应用KFold进行数据划分,并分别用GaussianNB、SVC和RandomForestClassifier进行训练与预测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目

Step 1:

sklearn.datasets.make_classification 函数能随机产生 n_classes 类数据集,返回一组样本(sample)和一组标记(label)。

from sklearn import datasets
from sklearn import model_selection
from sklearn import naive_bayes
from sklearn import svm
from sklearn import ensemble
from sklearn import metrics

n_samples = 1000
n_features = 10
X, y = datasets.make_classification(n_samples=n_samples, n_features=n_features)


Step 2:

使用 sklearn.model_selection.KFold 类的 split 函数。

n_splits = 10
kf = model_selection.KFold(n_splits=n_splits, shuffle=True)
for train_index, test_index in kf.split(X):
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]


Step 3:

分别使用 GaussianNB 类、SVC 类、 RandomForestClassifier 类的 fit 函数和 predict 函数。

algorithms = []
algorithms.append(naive_bayes.GaussianNB())
algorithms.append(svm.SVC(C=1e-1, kernel='rbf'))
algorithms.append(ensemble.RandomForestClassifier(n_estimators=10))

for algorithm in algorithms:
    algorithm.fit(X_train, y_train)
    pred = algorithm.predict(X_test)


Step 4:

也是直接调用函数。

acc = metrics.accuracy_score(y_test, pred)
f1 = metrics.f1_score(y_test, pred)
auc = metrics.roc_auc_score(y_test, pred)


完整代码
from sklearn import datasets
from sklearn import model_selection
from sklearn import naive_bayes
from sklearn import svm
from sklearn import ensemble
from sklearn import metrics

n_samples = 1000
n_features = 10
X, y = datasets.make_classification(n_samples=n_samples, n_features=n_features)

algorithms = []
algorithms.append(naive_bayes.GaussianNB())
algorithms.append(svm.SVC(C=1e-1, kernel='rbf'))
algorithms.append(ensemble.RandomForestClassifier(n_estimators=10))

count = 0
n_splits = 10
kf = model_selection.KFold(n_splits=n_splits, shuffle=True)
for train_index, test_index in kf.split(X):
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]

    print('Case #' + str(count) + ':')
    count += 1

    for algorithm in algorithms:
        algorithm.fit(X_train, y_train)
        pred = algorithm.predict(X_test)

        acc = metrics.accuracy_score(y_test, pred)
        f1 = metrics.f1_score(y_test, pred)
        auc = metrics.roc_auc_score(y_test, pred)

        print('acc:', acc)
        print('f1:', f1)
        print('auc:', auc)
    
    print()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值