贝叶斯介绍

 1 # 导入算法包以及数据集
 2 import numpy as np
 3 from sklearn import datasets
 4 from sklearn.model_selection import train_test_split
 5 from sklearn.metrics import classification_report,confusion_matrix
 6 from sklearn.naive_bayes import MultinomialNB,BernoulliNB,GaussianNB#朴素贝叶斯的三种模型
 7 # 载入数据
 8 iris = datasets.load_iris()
 9 x_train,x_test,y_train,y_test = train_test_split(iris.data, iris.target)
10 mul_nb = GaussianNB()#适合连续性数据,所以模型效果很好,其他两种则很差
11 mul_nb.fit(x_train,y_train)
12 print(classification_report(mul_nb.predict(x_test),y_test))
13 print(confusion_matrix(mul_nb.predict(x_test),y_test))
14 mul_nb = MultinomialNB()
15 mul_nb.fit(x_train,y_train)
16 print(classification_report(mul_nb.predict(x_test),y_test))
17 print(confusion_matrix(mul_nb.predict(x_test),y_test))
18 mul_nb = BernoulliNB()
19 mul_nb.fit(x_train,y_train)
20 print(classification_report(mul_nb.predict(x_test),y_test))
21 print(confusion_matrix(mul_nb.predict(x_test),y_test))

词袋模型介绍

 

 1 from sklearn.feature_extraction.text import CountVectorizer#向量化
 2
 3 texts=["dog cat fish","dog cat cat","fish bird", 'bird']
 4 cv = CountVectorizer()
 5 cv_fit=cv.fit_transform(texts)
 6
 7 #
 8 print(cv.get_feature_names())
 9 print(cv_fit.toarray())
10 print(cv_fit.toarray().sum(axis=0))
11 '''
12 ['bird', 'cat', 'dog', 'fish']
13 [[0 1 1 1]
14  [0 2 1 0]
15  [1 0 0 1]
16  [1 0 0 0]]
17 [2 3 2 2]
18 '''

TF-IDF算法介绍

 1 from sklearn.feature_extraction.text import TfidfVectorizer
 2 # 文本文档列表
 3 text = ["The quick brown fox jumped over the lazy dog.",
 4 "The dog.",
 5 "The fox"]
 6 # 创建变换函数
 7 vectorizer = TfidfVectorizer()
 8 # 词条化以及创建词汇表
 9 vectorizer.fit(text)
10 # 总结
11 print(vectorizer.vocabulary_)
12 print(vectorizer.idf_)
13 # 编码文档
14 vector = vectorizer.transform([text[0]])
15 # 总结编码文档
16 print(vector.shape)
17 print(vector.toarray())
01-03 14:23