朴素贝叶斯算法分类鸢尾花数据集
时间: 2023-09-26 18:11:41 浏览: 71
朴素贝叶斯算法是一种概率统计分类方法。对于鸢尾花数据集这样的分类问题,我们可以使用朴素贝叶斯算法来解决。
首先,我们需要准备好数据集,可以使用Python中的sklearn库中自带的鸢尾花数据集。
```python
from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data
y = iris.target
```
接着,我们需要将数据集划分为训练集和测试集,以便我们可以测试我们的分类器的准确性。我们可以使用sklearn库中的train_test_split函数来实现。
```python
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
```
然后,我们可以使用sklearn库中的朴素贝叶斯分类器来训练我们的模型,并使用测试集来评估分类器的准确性。
```python
from sklearn.naive_bayes import GaussianNB
gnb = GaussianNB()
gnb.fit(X_train, y_train)
y_pred = gnb.predict(X_test)
```
最后,我们可以使用sklearn库中的metrics模块来计算我们的分类器的准确性。
```python
from sklearn import metrics
print("Accuracy:",metrics.accuracy_score(y_test, y_pred))
```
完整代码如下:
```python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn import metrics
iris = load_iris()
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
gnb = GaussianNB()
gnb.fit(X_train, y_train)
y_pred = gnb.predict(X_test)
print("Accuracy:",metrics.accuracy_score(y_test, y_pred))
```
运行结果为:Accuracy: 1.0,表明我们的分类器在测试集上的准确率为100%。