日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

机器学习(8)朴素贝叶斯算法(20条新闻分类)

發布時間:2023/11/27 生活经验 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习(8)朴素贝叶斯算法(20条新闻分类) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一、基礎理論

二、實戰:20條新聞分類

?1、讀取數據

2、訓練集劃分

3、特征工程(文本特征提取)

?4、樸素貝葉斯算法訓練

?5、模型評估

方法一:預測值與真實值比對

方法二:計算準確率

總代碼


一、基礎理論

樸素貝葉斯算法:(樸素:假設數據集屬性之間是相互獨立的)因此算法的邏輯性十分簡單,并且算法較為穩定,當數據呈現不同的特點時,樸素貝葉斯的分類性能不會有太大的差異。

樸素:假設特征與特征之間相互獨立

貝葉斯:貝葉斯公式。

貝葉斯公式

?最后概率最大的即為預測結果

?

優點:

有穩定分類效率;

對確實數據不太敏感;

算法比較簡單,適合于文本分類;

分類準確度高,速度快。

缺點:

由于有獨立性假設,所以特征屬性有關聯時,分類效果不好。

二、實戰:20條新聞分類

?1、讀取數據

# 1、讀取數據
news = fetch_20newsgroups(subset='all')     #subset:獲取訓練集

2、訓練集劃分

# 2、數據集劃分
train_data, test_data, train_target, test_target = train_test_split(news.data, news.target)

3、特征工程(文本特征提取)

# 3、特征工程(文本特征抽取)
transfer = TfidfVectorizer()
train_data = transfer.fit_transform(train_data)
test_data = transfer.transform(test_data)

?4、樸素貝葉斯算法訓練

# 4、樸素貝葉斯算法
estimstor = MultinomialNB()
estimstor.fit(train_data, train_target)

?5、模型評估

方法一:預測值與真實值比對

# 方法一:預測值與真實值比對
predict = estimstor.predict(test_data)
print(test_target == predict)

方法二:計算準確率

# 方法二:計算準確率
score = estimstor.score(test_data, test_target)
print('準確率', score)

總代碼

# 新聞分類
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import fetch_20newsgroups
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB# 1、讀取數據
news = fetch_20newsgroups(subset='all')     #subset:獲取訓練集# 2、數據集劃分
train_data, test_data, train_target, test_target = train_test_split(news.data, news.target)# 3、特征工程(文本特征抽取)
transfer = TfidfVectorizer()
train_data = transfer.fit_transform(train_data)
test_data = transfer.transform(test_data)# 4、樸素貝葉斯算法
estimstor = MultinomialNB()
estimstor.fit(train_data, train_target)# 5、模型評估
# 方法一:預測值與真實值比對
predict = estimstor.predict(test_data)
print(test_target == predict)# 方法二:計算準確率
score = estimstor.score(test_data, test_target)
print('準確率', score)

總結

以上是生活随笔為你收集整理的机器学习(8)朴素贝叶斯算法(20条新闻分类)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。