機器學習特徵工程

2021-10-20 18:15:57 字數 3105 閱讀 9178

作用:對字典資料進行特徵值化

dictvectorizer語法

)#例項化了乙個物件

data =

dict

.fit_transform(x)

print

(dict

.get_feature_names())

print

(data)

return

none

if __name__ ==

'__main__'

: dictvec(

)結果:

分析:使用dict.dit_transform(x) 得到的是乙個ndarray型別的二維陣列 用get_feature_names()方法得到的列表作用為對照dit_transform(x) 符合要求的為1 不符合要求的為0 前提是

dict

= dictvectorizer(sparse=

false

)

這裡面的sparse 要改為false (預設為true)

文字特徵抽取

作用:對文字資料進行特徵值化

countvectorizer語法

**問題:**如果是中文無法進行分詞

解決方案:使用庫jieba中的cut方法

def

cutword()

: cn1 = jieba.cut(

"人生苦短,我用python"

) cn2 = jieba.cut(

"人生漫長,我不用python"

)# print(cn1)

content1 =

list

(cn1)

content2 =

list

(cn2)

# print(content2)

c1 =

" ".join(content1)

c2 =

" ".join(content2)

# print(c2)

return c1,c2

defhanzivec()

: cv = countvectorizer(

) c1, c2 = cutword(

) data = cv.fit_transform(

[c1, c2]

)print

(cv.get_feature_names())

print

(data.toarray())

return

none

結果為:

tfidfvectorizer語法

為什麼需要tfidfvectorizer?

:分類機器學習演算法的重要依據

**實現:

def

cutword()

: cn1 = jieba.cut(

"人生苦短,我用python"

) cn2 = jieba.cut(

"人生漫長,我不用python"

)# print(cn1)

content1 =

list

(cn1)

content2 =

list

(cn2)

# print(content2)

c1 =

" ".join(content1)

c2 =

" ".join(content2)

# print(c2)

return c1,c2

deftfvec()

: tf = tfidfvectorizer(

) c1, c2 = cutword(

) data = tf.fit_transform(

[c1, c2]

)print

(tf.get_feature_names())

print

(data.toarray())

return

none

結果:

機器學習 特徵工程

老師有多年的網際網路從業經驗,所以講解的過程中結合了很多任務業界的應用,更加的深入淺出。資料採集 資料採集前需要明確採集哪些資料,一般的思路為 哪些資料對最後的結果 有幫助?資料我們能夠採集到嗎?線上實時計算的時候獲取是否快捷?舉例1 我現在要 使用者對商品的下單情況,或者我要給使用者做商品推薦,那...

機器學習 特徵工程

資料和特徵決定了機器學習的上限,而模型和演算法只是逼近這個上限而已。通俗的說,就是盡可能的從原始資料中獲取更多資訊,從而使得 模型達到最佳。簡而言之,特徵工程是乙個把原始資料變成特徵的過程,這些特徵可以很好的描述資料,並且利用它們建立的模型在未知資料上表現效能可以達到最優。實驗結果取決於獲取的資料 ...

機器學習 特徵工程

在之前學習機器學習技術中,很少關注特徵工程 feature engineering 然而,單純學習機器學習的演算法流程,可能仍然不會使用這些演算法,尤其是應用到實際問題的時候,常常不知道怎麼提取特徵來建模。特徵是機器學習系統的原材料,對最終模型的影響是毋庸置疑的。特徵工程的重要意義 資料特徵會直接影...