sklearn训练模型的基本流程

以贝叶斯算法为例

from sklearn.naive_bayes import GaussianNB,MultinomialNB

from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split

# 生成模拟数据(100个样本,5个特征,2个类别)
X, y = make_classification(n_samples=100, n_features=5, n_classes=2, random_state=42)

# 划分训练集和测试集(80%训练,20%测试)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 初始化模型
model = GaussianNB()

# 训练模型
model.fit(X_train, y_train)

# 预测测试集
y_pred = model.predict(X_test)

# 预测概率(每个类别的概率)
y_proba = model.predict_proba(X_test)

print("预测结果:", y_pred)
print("预测概率(类别0和类别1的概率):\n", y_proba)

from sklearn.metrics import accuracy_score, confusion_matrix

# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print("准确率:", accuracy)

# 混淆矩阵
conf_matrix = confusion_matrix(y_test, y_pred)
print("混淆矩阵:\n", conf_matrix)

import pickle

# 保存模型
with open('gaussian_nb_model.pkl', 'wb') as f:
    pickle.dump(model, f)

# 加载模型
with open('gaussian_nb_model.pkl', 'rb') as f:
    loaded_model = pickle.load(f)

# 使用加载的模型预测
y_pred_loaded = loaded_model.predict(X_test)
print("加载模型的预测结果:", y_pred_loaded)
posted @ 2025-06-16 17:27  CodeCraftsMan  阅读(259)  评论(0)    收藏  举报