一、數(shù)據(jù)集
數(shù)據(jù)集分為測試集和訓(xùn)練集喳篇。
1.學(xué)習(xí)階段可用數(shù)據(jù)集
sklearn,kaggle,UCI
Scikit-learn工具介紹
python語言的機器學(xué)習(xí)工具敞临,包含許多知名的機器學(xué)習(xí)算法的實現(xiàn),文檔完善麸澜,容易上手挺尿,豐富的API.
scikit-learn包含的內(nèi)容
classification(分類),Regression(回歸)炊邦,Clustering(聚合)编矾,
數(shù)據(jù)集的劃分
獲取到數(shù)據(jù)之后,不能用全部的數(shù)據(jù)去訓(xùn)練模型馁害,要留下一些數(shù)據(jù)進行模型評估窄俏。
機器學(xué)習(xí)一般的數(shù)據(jù)集會劃分為兩個部分:
1.訓(xùn)練數(shù)據(jù):用于訓(xùn)練,構(gòu)建模型碘菜。
2.測試數(shù)據(jù):在模型檢驗時使用凹蜈,用于評估模型是否有效限寞。 ?一般20%~30%的數(shù)據(jù)用于測試
數(shù)據(jù)集劃分API
這里導(dǎo)入的為 ??from sklearn.model_selection import train_test_split,在調(diào)用方法的時候就可以省略sklearn.model_selection前綴而直接調(diào)用train_test_split
二踪区、特征工程
1.介紹
特征工程是使用專業(yè)背景知識和技巧處理數(shù)據(jù)昆烁,使得特征能在機器學(xué)習(xí)算法上發(fā)揮更好的作用的過程。會直接影響機器學(xué)習(xí)的效果缎岗。
sklearn 特征工程
pandas 數(shù)據(jù)清洗静尼、數(shù)據(jù)處理
2.特征提取/抽取
機器學(xué)習(xí)算法 - 統(tǒng)計方法 - 數(shù)學(xué)公式
如文本 -> 數(shù)值,轉(zhuǎn)化成數(shù)值后才可以使用算法繼續(xù)進行传泊。
特征提取概念:將任意數(shù)據(jù)鼠渺,如文本或圖像,轉(zhuǎn)換為可用于機器學(xué)習(xí)的數(shù)字特征眷细,也叫做特征值化拦盹。
注: 特征值化是為了計算機更好地去理解數(shù)據(jù),如字典特征提认怠(特征離散化)普舆,文本特征提取,圖像特征提刃6痢(深度學(xué)習(xí))沼侣。
2.1 特征提取API
2.2 字典特征提取 ?類別 -> one-hot編碼
sparse=true,默認(rèn)為轉(zhuǎn)化為稀疏矩陣歉秫,不想稀疏矩陣形式就傳入false
如:
vector --- ?數(shù)學(xué):向量 ? ?物理:矢量
矩陣matrix ?在計算機中用二維 數(shù)組存儲
向量vector ?在計算機中用一位數(shù)組存儲
2.3 文本特征提取
方法一:
把單詞作為特征
途中該方法有一個參數(shù)stop_words=[]蛾洛,這個參數(shù)是給stop_words傳一個列表,列表里放一些不需要提取特征值的詞雁芙,在特征值化時就會自動忽略掉轧膘。
中文不會被自動分開成單個的詞,一句話會被當(dāng)成一個特征名字(目標(biāo)值)兔甘。
這時就需要進行切分操作谎碍,將一整句話分成詞。這時候需要導(dǎo)入jieba工具包洞焙,通過jieba.cut方法對文本進行分詞椿浓。分詞后jieba.cut會返回一個生成器類型的對象,這時候需要將其強轉(zhuǎn)為list類型闽晦,最后用 " ".join()將文本分好的詞用空格(" ")隔開扳碍。打印結(jié)果如下圖。
練習(xí)仙蛉,對大段話進行分詞并特征提取
可以看到分詞成功并且成功提取特征值笋敞,上圖中打印的特征值數(shù)組中,最后一行第五個元素為5荠瘪,則代表特征名字中第五個詞出現(xiàn)了五次夯巷。
方法二:TfidfVectorizer ----TF-IDF文本特征提取
上面方法一的特征提取方法赛惩,提取出了特征名字的出現(xiàn)次數(shù),但是這對文本分類并沒有太大的幫助趁餐,對分類來說喷兼,最需要找到的是關(guān)鍵詞。
關(guān)鍵詞:在某一個類別的文章中后雷,出現(xiàn)的次數(shù)很多季惯,在其它類別的文章中出現(xiàn)的次數(shù)很少
tf-idf文本特征提取主要思想:
公式
API
練習(xí)
data_final中,值越大的元素對應(yīng)的詞臀突,對于文本越重要勉抓。更具有分類意義
3.特征預(yù)處理
3.1什么是特征預(yù)處理
通過一些轉(zhuǎn)換函數(shù)將特征數(shù)據(jù)轉(zhuǎn)換成更加適合算法模型的特征數(shù)據(jù)過程
特征與處理包含:
數(shù)值型數(shù)據(jù)的無量綱化
(1)歸一化
(2)標(biāo)準(zhǔn)化
3.2 特征預(yù)處理API
為什么需要歸一化/標(biāo)準(zhǔn)化?
3.2.1 歸一化
(1)公式
如上圖的特征值1候学,第一行90藕筋,經(jīng)過歸一化之后:
x' = (90-60)/(90-60) = 1,x'' = 1*(1-0) + 0 = 1梳码,故歸一化之后90-->1隐圾,這樣就縮小了特征值之間的差距。
(2)API
(3)數(shù)據(jù)計算
歸一化公式是根據(jù)數(shù)據(jù)集中最大值最小值掰茶,來進行計算的翎承,如果數(shù)據(jù)集中的最大值最小值出現(xiàn)異常值,會直接影響到最后的歸一計算結(jié)果符匾。所以這種方法魯棒性較差,只適合傳統(tǒng)精確小數(shù)據(jù)場景瘩例。
3.2.1 標(biāo)準(zhǔn)化
(1)定義
通過對原始數(shù)據(jù)進行變換把數(shù)據(jù)交換到均值為0啊胶,標(biāo)準(zhǔn)差為1范圍內(nèi)。
(2)公式
對于歸一化來說:如果出現(xiàn)異常點垛贤,影響了最大值和最小值焰坪,那么結(jié)果顯然會發(fā)生改變
對于標(biāo)準(zhǔn)化來說:如果出現(xiàn)異常點,由于有一定的數(shù)據(jù)量聘惦,少量的異常點對平均值的影響并不大某饰,從而方差/標(biāo)準(zhǔn)差改變較小。
(3)API
(4)練習(xí)
這里使用的數(shù)據(jù)集和上面歸一化的數(shù)據(jù)是一樣的
標(biāo)準(zhǔn)化應(yīng)用場景:在已有樣本足夠多的情況下比較穩(wěn)定善绎,適合現(xiàn)代嘈雜大數(shù)據(jù)場景
4.特征降維
4.1 降維 - 降低維度
指在某些限定條件下黔漂,降低隨機變量(特征)個數(shù),得到一組不相關(guān)主變量的過程
正常我們所認(rèn)為的維度:
如ndarray : 0維->標(biāo)量禀酱, 1維->向量炬守, 2維->矩陣......以此類推。
但降維并不是將我們認(rèn)為的維度進行降低(如3維降到2維剂跟,2維降到1維)减途,而是針對二維數(shù)組來說的酣藻,將二維數(shù)組作為處理對象,進行降維操作鳍置,即降低隨機變量(特征)的個數(shù)辽剧,即降低列數(shù)。
相關(guān)特征(correlated feature):
如相對濕度與降雨量之間的相關(guān)
正因為在進行訓(xùn)練的時候税产,我們都是使用特征進行學(xué)習(xí)怕轿。如果特征本身存在問題或者特征值間相關(guān)性較強,對于算法學(xué)習(xí)預(yù)測會影響較大砖第。
4.2 降維的兩種方式
(1)特征選擇
(2)主要成分分析(可以理解為一種特征提取的方式)
4.3 什么是特征選擇
4.3.1 定義
數(shù)據(jù)中包含冗余或相關(guān)變量(或稱特征撤卢、屬性、指標(biāo)等)梧兼,旨在從原有特征中找出主要特征放吩。
4.3.2 方法
1、Filter(過濾式)
(1)方差選擇法:低方差特征過濾
特征方差杏鸾堋:某個特征大多樣本的值比較相近
特征方差大:某個特征很多樣本的值都有差別
如果想?yún)^(qū)分鳥的種類渡紫,那么是否有爪子,嘴考赛,翅膀惕澎,這種特征是每個鳥都具有的,用于區(qū)分的話效果不大颜骤,這種低方差特征就可以過濾掉
API
varianceThreshold()方法傳入一個臨界值參數(shù)threshold唧喉,當(dāng)方差低于該臨界值是,就將該特征刪除
數(shù)據(jù)計算
(2)相關(guān)系數(shù) - 衡量特征與特征之間的相關(guān)性(相關(guān)程度)
皮爾遜相關(guān)系數(shù)(Person Correlation Coefficient)忍抽,反映變量之間相關(guān)關(guān)系密切程度的統(tǒng)計指標(biāo)八孝。
特征間相關(guān)性越高,說明特征值越相近鸠项,便沒有必要都作為重要數(shù)據(jù)去進行統(tǒng)計計算干跛,需要對相關(guān)系數(shù)高的特征進行一些處理
公式
最終計算出結(jié)果為0.9942,即廣告費與月平均銷售額之間的相關(guān)系數(shù)祟绊,可以得到結(jié)論是廣告投入費與月平均銷售額之間有高度的正相關(guān)關(guān)系楼入。
特點
API
使用pearsonr(x, y)方法來計算相關(guān)系數(shù)牧抽。x嘉熊,y為要進行計算相關(guān)性的兩個特征
return:會返回兩個數(shù),第一個數(shù)為相關(guān)系數(shù)扬舒,第二個數(shù)為p-value
r1顯示pe_ratio和pb_ratio兩個特征呈負(fù)相關(guān)记舆,但是數(shù)值很小,相關(guān)性極小呼巴。
r2顯示revenue和total_expense兩個特征呈正相關(guān)泽腮,且線性相關(guān)性很大御蒲。
如果特征與特征之間相關(guān)性很高(三種處理方法):
1.選取其中一個作為代表
2.加權(quán)求和作為一個新的特征
3.主成分分析
4.3 主成分分析
目標(biāo):應(yīng)用PCA實現(xiàn)特征的降維
定義:
高維數(shù)據(jù)轉(zhuǎn)化為低維數(shù)據(jù)的過程,在此過程中可能會舍棄原有數(shù)據(jù)诊赊、創(chuàng)造新的變量
作用:
是數(shù)據(jù)維數(shù)壓縮厚满,盡可能降低原數(shù)據(jù)的維數(shù)(復(fù)雜度),損失少量信息
應(yīng)用:
回歸分析或聚類分析當(dāng)中
API
參數(shù)n_components如果是整數(shù)碧磅,即為我們要降維后要保留的特征數(shù)碘箍,即降維后的目標(biāo)維數(shù)。如果是小數(shù)(0<n_components<1)鲸郊,代表滿足最低的主成分方差累計貢獻率丰榴。可以理解為降維后的特征秆撮,至少要能表示原數(shù)據(jù)n_components的特征四濒。降維去掉的列數(shù)(特征/主成分)越多,且n_components越接近于1职辨,則表示這個降維算法越好盗蟆,因為去掉很多列,卻仍能不失真舒裤,仍能表示出原數(shù)據(jù)的極大部分特征喳资。
數(shù)據(jù)計算1
可以看到,傳入0.95和2的降維輸出一樣腾供,可以看出PCA算法效果很好仆邓,由4列降為2列,仍能保證降維后的數(shù)據(jù)能至少表示出原數(shù)據(jù)95%的信息伴鳖,損失很小节值。
數(shù)據(jù)計算2 - 探究用戶對物品類別的喜好細分
將多個數(shù)據(jù)表進行合并,找到要探究的特征間的關(guān)系芦鳍,而后進行降維操作