在考慮一個結果的概率時候,要考慮眾多的屬性,貝葉斯演算法利用所有可能的數據來進行修正預測,如果大量的特征產生的影響較小,放在一起,組合的影響較大,適合於朴素貝葉斯分類 導入類庫 代碼 ...
在考慮一個結果的概率時候,要考慮眾多的屬性,貝葉斯演算法利用所有可能的數據來進行修正預測,如果大量的特征產生的影響較小,放在一起,組合的影響較大,適合於朴素貝葉斯分類
導入類庫
1 from sklearn.datasets import fetch_20newsgroups 2 from sklearn.feature_extraction.text import TfidfVectorizer 3 from sklearn.naive_bayes import MultinomialNB
代碼
1 def article_category(): 2 categories = ['alt.atheism', 'soc.religion.christian', 'comp.graphics', 'sci.med'] 3 twenty_train = fetch_20newsgroups(subset='train', categories=categories) 4 # print(twenty_train) 5 print(twenty_train.data) 6 print(twenty_train.target) 7 # 將x訓練集詞頻向量化 8 tfidf_transformer = TfidfVectorizer() 9 X_train_tfidf = tfidf_transformer.fit_transform(twenty_train.data) 10 11 # 貝葉斯訓練 12 clf = MultinomialNB(alpha=1.0).fit(X_train_tfidf, twenty_train.target) 13 docs_new = ['Chemical reaction', 'Intel CPU is good'] 14 15 # 將要預測的數據詞頻向量化 16 X_new_tfidf = tfidf_transformer.transform(docs_new) 17 # 預測 18 predicted = clf.predict(X_new_tfidf) 19 print(predicted) 20 for doc, category in zip(docs_new, predicted): 21 print('%r => %s' % (doc, twenty_train.target_names[category]))