機器學習 特徵提取(二)

2021-08-15 02:09:22 字數 2255 閱讀 7288

文字資料進行處理時,有些文字不是結構化儲存的,處理這樣的資料,比較常用的文字特徵表示方法為詞袋法,不考慮詞語出現的順序,只是將訓練文字中每個出現過的詞彙單獨視為一列特徵。而特徵數值的常見計算方式有兩種:countvectorizer和tfidvectorizer。對於每一條訓練文字,countvectorizer只考慮每種詞彙在該條訓練文字中出現的頻率;而tfidvectorizer除了考量某一詞彙在當前文字中出現的頻率之外,同時關注包含這個詞彙的文字條數的倒數。相比之下,訓練樣本越多,tfidvectorizer更加具有優勢。

#匯入新聞文字資料抓取器

from sklearn.datasets import fetch_20newsgroups

news = fetch_20newsgroups(subset='all')

#匯入train_test_split模組用於分割訓練集

from sklearn.cross_validation import train_test_split

x_train, x_test, y_train, y_test = train_test_split(news.data, news.target, test_size=0.25,random_state=33)

from sklearn.feature_extraction.text import countvectorizer

count_vec = countvectorizer()

#使用詞頻統計的方式將原始資料和測試文字轉化為特徵向量

x_count_train = count_vec.fit_transform(x_train)

x_count_test = count_vec.transform(x_test)

#使用樸素貝葉斯分類器

from sklearn.*****_bayes import multinomialnb

mnb = multinomialnb()

mnb.fit(x_count_train, y_train)

y_count_predict = mnb.predict(x_count_test)

#輸出更加詳細的其他評價分類效能的指標

from sklearn.metrics import classification_report

print('the accuracy of classifying using countvectorizer is:', mnb.score(x_count_test, y_test))

print(classification_report(y_test, y_count_predict, target_names=news.target_names))

from sklearn.feature_extraction.text import tfidfvectorizer

tf_vec = tfidfvectorizer()

#使用詞頻統計的方式將原始資料和測試文字轉化為特徵向量

x_tf_train = tf_vec.fit_transform(x_train)

x_tf_test = tf_vec.transform(x_test)

#使用樸素貝葉斯分類器

from sklearn.*****_bayes import multinomialnb

mnb = multinomialnb()

mnb.fit(x_tf_train, y_train)

y_tf_predict = mnb.predict(x_tf_test)

#輸出更加詳細的其他評價分類效能的指標

由結果可以得知,使用tfidvectorizer比countvectorizer更加高的**準確性,平均精度、召回率、f1指標都得到提公升。

特徵提取 機器學習

特徵提取簡介 sift原理 sift原理 sift原理 1.k近鄰法,簡單來說就是哪個點離得近就把例項點歸到哪一類中。特殊情況是最近鄰演算法 1近鄰演算法。演算法主要包括演算法的模型,距離度量 k值的選擇和演算法的具體實現。其中演算法的實現主要有兩種形式 線性掃瞄法和構建資料索引。改善演算法最好的當...

機器學習 特徵提取

from sklearn.feature extraction import dictvectorizer import numpy as np 定義一組字典列表,用來表示多個資料樣本 d1 例項化 dict dictvectorizer data dict fit transform d1 轉化後...

機器學習特徵提取

本文主要介紹基於sklearn的特徵提取,旨在為機器學習提供乙個好的開端 1.分類特徵提取 如上圖所示 許多特徵如pclass代表乘客船艙等級,分為1,2,3。還有例如性別,乘客登船碼頭,稱之為分類特徵。對於這一類資料的提取,採用one hot編碼。例如 data資料有兩個特徵,分別是城市和溫度,顯...