Python机器学习之贝叶斯分类攻略
贝叶斯分类简介
贝叶斯分类是一种基于贝叶斯定理的统计分类方法,它通常被用于文本分类、情感分析、垃圾邮件过滤等问题。贝叶斯分类器将来自特征空间的向量映射到类别空间中,并基于贝叶斯定理计算出向量属于某个类别的后验概率。贝叶斯分类器主要有两种类型:朴素贝叶斯分类器和高斯贝叶斯分类器。
朴素贝叶斯分类器
朴素贝叶斯分类器假设所有特征之间相互独立,从而简化了计算过程。它的基本思想是假设所有特征之间相互独立,然后根据每个特征对于不同类别的条件概率计算出向量属于某个类别的后验概率。
在Python中,我们可以使用sklearn.naive_bayes
模块中的MultinomialNB
类来实现朴素贝叶斯分类器。下面是一个示例:
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
corpus = ['This is a book.',
'This is a cat.',
'That is a dog.']
y = [0,0,1]
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(corpus)
clf = MultinomialNB()
clf.fit(X, y)
test = vectorizer.transform(['That is a book.'])
print(clf.predict(test))
在这个示例中,我们将三个样本分别指定为0或1的类别,并使用CountVectorizer
将文本转化成词袋向量。接着,使用MultinomialNB
训练一个朴素贝叶斯分类器,并在测试集上进行预测。
高斯贝叶斯分类器
高斯贝叶斯分类器假设特征之间的分布为高斯分布,并基于特征对于不同类别的条件均值和方差计算出向量属于某个类别的后验概率。
在Python中,我们同样可以使用sklearn.naive_bayes
模块中的GaussianNB
类来实现高斯贝叶斯分类器。下面是一个示例:
from sklearn.datasets import make_classification
from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
X, y = make_classification(n_samples=1000, n_features=4, n_classes=2)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
clf = GaussianNB()
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
print('Accuracy score:', accuracy_score(y_test, y_pred))
在这个示例中,我们使用make_classification
生成一个二分类数据集,并使用train_test_split
将数据集分成训练集和测试集。接着,使用GaussianNB
训练一个高斯贝叶斯分类器,并在测试集上进行预测,最终输出分类准确率。
结语
以上就是Python机器学习之贝叶斯分类攻略的内容,其中我们介绍了朴素贝叶斯分类器和高斯贝叶斯分类器,并给出了相应的示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python机器学习之贝叶斯分类 - Python技术站