Sklearn实现朴素贝叶斯

博客围绕机器学习展开,涉及sklearn工具和朴素贝叶斯算法。sklearn是强大的机器学习工具库,朴素贝叶斯是经典的分类算法,二者结合可有效解决分类问题,在信息技术领域有广泛应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

>>> from sklearn import datasets
>>> iris = datasets.load_iris()
>>> from sklearn.naive_bayes import GaussianNB
>>> gnb = GaussianNB()
>>> y_pred = gnb.fit(iris.data, iris.target).predict(iris.data)
>>> print("Number of mislabeled points out of a total %d points : %d"
...       % (iris.data.shape[0],(iris.target != y_pred).sum()))
Number of mislabeled points out of a total 150 points : 6
朴素贝叶斯分类器是一种基于贝叶斯定理的简单且高效的分类算法,它假设特征之间是相互独立的。在sklearn中,实现朴素贝叶斯分类器的类是`sklearn.naive_bayes`中的`MultinomialNB`和`GaussianNB`。 - `MultinomialNB`适用于文本分类问题,它假设特征是来自于多项式分布,即每个特征都是离散的,并且每个特征的可能取值个数是有限的。 - `GaussianNB`适用于连续数据的分类问题,它假设特征是来自于高斯分布。 下面是一个基于sklearn实现朴素贝叶斯分类器的示例代码: ```python from sklearn.naive_bayes import MultinomialNB from sklearn.datasets import fetch_20newsgroups from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics import accuracy_score # 加载数据集 train_data = fetch_20newsgroups(subset='train') test_data = fetch_20newsgroups(subset='test') # 特征提取 vectorizer = TfidfVectorizer() train_features = vectorizer.fit_transform(train_data.data) test_features = vectorizer.transform(test_data.data) # 构建模型 clf = MultinomialNB(alpha=0.01) clf.fit(train_features, train_data.target) # 预测 y_pred = clf.predict(test_features) # 评估 accuracy = accuracy_score(test_data.target, y_pred) print('Accuracy:', accuracy) ``` 在上述代码中,我们使用`fetch_20newsgroups`函数加载了20类新闻文本数据集,并使用`TfidfVectorizer`类进行特征提取。然后,我们使用`MultinomialNB`类构建模型,并使用`alpha`参数控制平滑度。最后,我们使用`accuracy_score`函数计算分类准确率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值