寫在前面
這篇部落格主要內容:
- 應用DictVectorizer實現對類別特徵進行數值化、離散化
- 應用CountVectorizer實現對文字特徵進行數值化
特徵提取API
sklearn.feature_extraction
字典特徵提取
作用:對字典資料進行特徵值化
- sklearn.feature_extraction.DictVectorizer(sparse=True,…)
- DictVectorizer.fit_transform(X) X:字典或者包含字典的迭代器返回值:返回sparse矩陣
- DictVectorizer.inverse_transform(X) X:array陣列或者sparse矩陣 返回值:轉換之前資料格式
- DictVectorizer.get_feature_names() 返回類別名稱
# 資料
[{'city': '北京','temperature':100}
{'city': '上海','temperature':60}
{'city': '深圳','temperature':30}]
# 程式碼
from sklearn.feature_extraction import DictVectorizer
def dict_demo():
data = [{'city': '北京','temperature':100}, {'city': '上海','temperature':60}, {'city': '深圳','temperature':30}]
# 1、例項化一個轉換器類
transfer = DictVectorizer(sparse=False)
# 2、呼叫fit_transform
data_new = transfer.fit_transform(data)
print("data_new:\n",data_new)
# 列印特徵名字
print("特徵名字:\n",transfer.get_feature_names())
return None
注意DictVectorizer
預設是true,輸出為稀疏矩陣,false輸出為普通矩陣
文字特徵提取
作用:對文字資料進行特徵值化
-
sklearn.feature_extraction.text.CountVectorizer(stop_words=[])
- 返回詞頻矩陣
-
CountVectorizer.fit_transform(X) X:文字或者包含文字字串的可迭代物件 返回值:返回sparse矩陣
-
CountVectorizer.inverse_transform(X) X:array陣列或者sparse矩陣 返回值:轉換之前資料格
-
CountVectorizer.get_feature_names() 返回值:單詞列表
-
sklearn.feature_extraction.text.TfidfVectorizer
# 資料
["life is short,i like python",
"life is too long,i dislike python"]
# 程式碼
from sklearn.feature_extraction.text import CountVectorizer
def count_demo():
data = ["life is short,i like like python", "life is too long,i dislike python"]
transfer = CountVectorizer()
data_new = transfer.fit_transform(data)
print("data_new:\n",data_new.toarray())
print("特徵名字:\n",transfer.get_feature_names())
return None
注意程式碼中的使用了toarray()
,可以不加這個方法,再執行一下看看?