sklearn調包俠之樸素貝葉斯

2021-09-11 16:48:26 字數 1931 閱讀 8903

樸素貝葉斯演算法常用於文件的分類問題上,但計算機是不能直接理解文件內容的,怎麼把文件內容轉換為計算機可以計算的數字,這是自然語言處理(nlp)中很重要的內容。

tf-idf方法資料匯入和tf-idf

在sklearn中,通過load_files方法可以將子目錄的名字轉換為文件類別(target),將目錄所有文件讀入記憶體(data)。

通過tfidfvectorizer方法,將文件資料進行轉換:

from sklearn.feature_extraction.text import tfidfvectorizer

vect = tfidfvectorizer(encoding='latin-1')

x_train = vect.fit_transform(news_train.data)

模型訓練

樸素貝葉斯演算法使用sklearn.*****_bayes模組中的multinomialnb方法。

from sklearn.*****_bayes import multinomialnb

y_train = news_train.target

clf = multinomialnb(alpha=0.0001)

clf.fit(x_train, y_train)

train_score = clf.score(x_train, y_train)

# result

# 0.99787556904400609

模型評估

簡單的,可以通過score方法來評估整個模型的精度。

news_test = load_files('data/379/test')

x_test = vect.transform(news_test.data)

y_test = news_test.target

clf.score(x_test, y_test)

# result

# 0.90881728045325783

我們也可以通過classification_report方法來檢視全方位的評價。

也可以檢視我們的混淆矩陣。

sklearn之樸素貝葉斯實戰

multinomialnb 實現了資料服從多項式分布時的貝葉斯演算法。import numpy as np 隨機產生0 4之間的整數,產六組,一組100個 x np.random randint 5,size 6,10 y np.array 1,2,3,4,5,6 from sklearn.baye...

Sklearn實現樸素貝葉斯

sklearn 實現樸素貝葉斯 在scikit learn中,一共有3個樸素貝葉斯的分類演算法類。分別是gaussiannb,multinomialnb和bernoullinb。其中gaussiannb就是先驗為高斯分布的樸素貝葉斯,multinomialnb就是先驗為多項式分布的樸素貝葉斯,而be...

Sklearn實現樸素貝葉斯

sklearn 實現樸素貝葉斯 在scikit learn中,一共有3個樸素貝葉斯的分類演算法類。分別是gaussiannb,multinomialnb和bernoullinb。其中gaussiannb就是先驗為高斯分布的樸素貝葉斯,multinomialnb就是先驗為多項式分布的樸素貝葉斯,而be...