以贝叶斯算法为例
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)