1. 朴素贝叶斯的原理
什么是朴素贝叶斯:贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。
贝叶斯公式:
P(Y|X)=P(X|Y)P(Y)P(X)
P(Y|X)=P(X|Y)P(Y)P(X)
X:特征向量 Y:类别
先验概率P(X)P(X):先验概率:是指根据以往经验和分析得到的概率。
后验概率P(Y|X)P(Y|X):事情已经发生,要求这件事情发生的原因是由某个因素引起的可能性的大小。
类条件概率P(X|Y)P(X|Y):在已知某类别的特征空间中,出现特征值X的概率密度。
朴素:朴素贝叶斯算法是假设各个特征之间相互独立,也是朴素这词的意思。那么贝叶斯公式中P(X|Y)P(X|Y)可写成
P(X|Y)=P(x1|Y)P(x2|Y)⋯P(xn|Y)
P(X|Y)=P(x1|Y)P(x2|Y)⋯P(xn|Y)
朴素贝叶斯公式:
P(Y|X)=P(x1|Y)P(x2|Y)⋯P(xn|Y)P(Y)P(X)
2. 利用朴素贝叶斯模型进行文本分类
from sklearn import metrics
from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
# 读取数据
X = []
Y = []
fr = open("datingTestSet.txt")
index = 0
for line in fr.readlines():
line = line.strip()
line = line.split('\t')
X.append(line[:3])
Y.append(line[-1])
#归一化
scaler = MinMaxScaler()
X = scaler.fit_transform(X)
# 交叉分类
train_X,test_X, train_y, test_y = train_test_split(X,
Y,
test_size=0.2) # test_size:测试集比例20%
# KNN模型,选择3个邻居
model = GaussianNB()
model.fit(train_X, train_y)
print(model)
expected = test_y
predicted = model.predict(test_X)
print(metrics.classification_report(expected, predicted)) # 输出分类信息
label = list(set(Y)) # 去重复,得到标签类别
print(metrics.confusion_matrix(expected, predicted, labels=label)) # 输出混淆矩阵信息
3. SVM的原理
SVM的全称是Support Vector Machine,即支持向量机,主要用于解决模式识别领域中的数据分类问题,属于有监督学习算法的一种。
4. 利用SVM模型进行文本分类
import numpy as np from sklearn.svm
import SVC from sklearn.cross_validation
import train_test_split from sklearn.metrics import classification_report
with open("test.txt","r") as file:
ty=-3 #代表取哪一列label值,-1代表取倒一列所有值
result=[]
for line in file.readlines():
result.append(list(map(str,line.strip().split(','))))
vec = np.array(result)
x = vec[:,:-3]#取除掉最后三列以外的所有列,即所有特征列
y = vec[:,ty]#标签列
train_x,test_x,train_y,test_y = train_test_split(x,y,test_size=0.2)
clf = SVC(kernel='linear',C=0.4)
clf.fit(train_x,train_y)
pred_y = clf.predict(test_x)
print(classification_report(test_y,pred_y))
5. pLSA、共轭先验分布;LDA主题模型原理
LDA模型。其实就是给PLSA主题模型加了贝叶斯先验。
6. 使用LDA生成主题特征,在之前特征的基础上加入主题特征进行文本分类
这块请参考: https://blog.csdn.net/TiffanyRabbit/article/details/76445909