1. 简介

朴素贝叶斯分类器是一种基于概率理论的分类方法,它假设特征之间相互独立。scikit-learn库提供了简单的接口来使用朴素贝叶斯分类器。本文将通过实战代码示例,帮助您轻松掌握如何在scikit-learn中实现朴素贝叶斯分类。

2. 准备数据

在开始之前,我们需要准备一些数据。这里我们使用鸢尾花(Iris)数据集作为示例。

from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split # 加载数据集 data = load_iris() X = data.data y = data.target # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) 

3. 创建朴素贝叶斯分类器

接下来,我们创建一个朴素贝叶斯分类器。

from sklearn.naive_bayes import GaussianNB # 创建分类器 gnb = GaussianNB() 

4. 训练模型

使用训练集来训练我们的朴素贝叶斯分类器。

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

5. 评估模型

使用测试集来评估模型的性能。

from sklearn.metrics import accuracy_score # 预测测试集 y_pred = gnb.predict(X_test) # 计算准确率 accuracy = accuracy_score(y_test, y_pred) print(f"Accuracy: {accuracy:.2f}") 

6. 预测新数据

使用训练好的模型来预测新数据。

# 新数据 new_data = [[5.1, 3.5, 1.4, 0.2]] # 预测 new_pred = gnb.predict(new_data) print(f"Predicted class: {new_pred[0]}") 

7. 参数调优

朴素贝叶斯分类器有一些参数可以进行调优,例如var_smoothing

# 创建具有参数调优的分类器 gnb_tuned = GaussianNB(var_smoothing=1e-6) # 训练模型 gnb_tuned.fit(X_train, y_train) # 评估模型 y_pred_tuned = gnb_tuned.predict(X_test) accuracy_tuned = accuracy_score(y_test, y_pred_tuned) print(f"Tuned Accuracy: {accuracy_tuned:.2f}") 

8. 总结

通过以上步骤,我们成功地使用scikit-learn实现了朴素贝叶斯分类。在实战过程中,我们使用了鸢尾花数据集,并通过训练和测试来评估模型的性能。我们还探讨了参数调优对模型性能的影响。希望这个实战代码示例能帮助您更好地理解和应用朴素贝叶斯分类。