SKlearn实现鸢尾花数据集分类 , 导入数据集 , 切分训练集和测试集 , 构建朴素贝叶斯分类器 ,测试模型预测效果
时间: 2024-10-13 14:02:10 浏览: 28
机器学习朴素贝叶斯垃圾邮件过滤器训练集(包括垃圾邮件和非垃圾邮件)
在Python的sklearn库中,我们可以很容易地实现鸢尾花数据集的分类。首先,你需要安装`scikit-learn`库,如果还没安装可以使用`pip install scikit-learn`命令。
以下是详细的步骤:
1. **导入所需的库和数据集**:
```python
import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score
# 加载鸢尾花数据集
iris = datasets.load_iris()
```
2. **数据预处理**:
```python
# 获取特征和目标变量
X = iris.data
y = iris.target
# 将标签转换成数值表示(例如,0代表Setosa,1代表Versicolour,2代表Virginica)
y = np.array([0, 1, 2]).take(y)
```
3. **切分训练集和测试集**:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # 70%用于训练,30%用于测试
```
4. **构建朴素贝叶斯分类器**:
```python
gnb = GaussianNB() # 创建一个高斯朴素贝叶斯分类器
gnb.fit(X_train, y_train) # 使用训练数据拟合模型
```
5. **模型预测和评估**:
```python
y_pred = gnb.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"朴素贝叶斯分类器的准确率为:{accuracy*100:.2f}%")
```
这将输出朴素贝叶斯分类器在测试集上的预测精度。
阅读全文