1.概述
機器學(xué)習(xí)定義:
最早是由一位人工智能領(lǐng)域的先驅(qū)饿凛,Arthu Samuel,在1959年提出來的邻奠。本意指的是一種讓計算機在不經(jīng)過明顯編程的情況下笤喳,對數(shù)據(jù)進行學(xué)習(xí)为居,并且做出預(yù)測的方法碌宴,屬于計算機科學(xué)領(lǐng)域的一個子集。
機器學(xué)習(xí)的應(yīng)用場景:
1.電子商務(wù)中的智能推薦
2.社交網(wǎng)絡(luò)中的效果廣告
3.互聯(lián)網(wǎng)金融中的風(fēng)控系統(tǒng)
4.新聞資訊中的內(nèi)容審查
5.機器學(xué)習(xí)在蝙蝠公司(互聯(lián)網(wǎng)行業(yè))之外的應(yīng)用
6.一些炫酷的“黑科技”
機器學(xué)習(xí)中基本概念:
1.有監(jiān)督學(xué)習(xí):通過現(xiàn)有數(shù)據(jù)集進行建模蒙畴,再用模型對新的數(shù)據(jù)樣本進行分類或者回歸分析的機器學(xué)習(xí)方法贰镣。在監(jiān)督式學(xué)習(xí)中,訓(xùn)練數(shù)據(jù)集一般包含樣本特征變量及分類標簽膳凝,機器使用不同的算法通過這些數(shù)據(jù)推斷出分類的方法碑隆。
2.無監(jiān)督學(xué)習(xí):在沒有訓(xùn)練數(shù)據(jù)集的情況下,對沒有標簽的數(shù)據(jù)進行分析并建立合適的模型蹬音,以便給出問題解決方案的方法上煤。在無監(jiān)督學(xué)習(xí)當中,常見的兩種任務(wù)類型是數(shù)據(jù)轉(zhuǎn)換和聚類分析著淆。
3.分類劫狠,回歸:
分類和回歸是有監(jiān)督學(xué)習(xí)中兩個最常見的方法。對于分類來說永部,機器學(xué)習(xí)的目標是對樣本的分類標簽進行預(yù)測独泞,判斷樣本屬于哪一個分類,結(jié)果是離散值苔埋。而對于回歸分析來說懦砂,其目標是要預(yù)測一個連續(xù)的數(shù)值或者是范圍。
5.模型的泛化:
在有監(jiān)督學(xué)習(xí)中,我們會在數(shù)據(jù)集上建立一個模型荞膘,之后會把這個模型用于新的罚随,之前從未見過的數(shù)據(jù)集中,這個過程稱為泛化(generalization)羽资。當然我們希望模型對于新數(shù)據(jù)的預(yù)測能夠盡可能準確毫炉,這樣才能模型泛化的準確度比較高。
6.過擬合:我們使用測試數(shù)據(jù)集對模型的表現(xiàn)進行評估削罩,如果你在訓(xùn)練數(shù)據(jù)集上使用了一個非常復(fù)雜的模型瞄勾,以至于這個模型在擬合訓(xùn)練數(shù)據(jù)集時表現(xiàn)非常好,但是在測試數(shù)據(jù)集的表現(xiàn)非常差弥激,說明模型出現(xiàn)了過擬合的問題进陡。
7.欠擬合:如果模型過于簡單,連訓(xùn)練數(shù)據(jù)集的特點都不能完全考慮到的話微服,那么這樣的模型在訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集的得分都會非常差趾疚,這個時候我們說模型出現(xiàn)了欠擬合的問題。
2.基于python語言的環(huán)境配置
1.Numpy——基礎(chǔ)科學(xué)計算庫
Numpy是一個Python中非骋栽蹋基礎(chǔ)的用于進行科學(xué)計算的庫糙麦,它的功能包括高維數(shù)組(array)計算、線性代數(shù)計算丛肮、傅里葉變換以及生產(chǎn)偽隨機數(shù)等赡磅。
2.Scipy——強大的科學(xué)計算工具集
Scipy是一個python中用于進行科學(xué)計算的工具集,它有很多功能宝与,如計算統(tǒng)計學(xué)分布焚廊、信號處理、計算線性代數(shù)方程等习劫。
3.pandas——數(shù)據(jù)分析的利器
pandas是一個python用來進行數(shù)據(jù)分析的庫咆瘟,它可以生成類似Excel表格式的數(shù)據(jù)表,而且可以對數(shù)據(jù)表進行修改操作诽里。pandas還有個強大的功能袒餐,它可以從很多不同種類的數(shù)據(jù)庫中提取數(shù)據(jù),如SQL數(shù)據(jù)庫谤狡、Excel表格甚至csv文件灸眼。pandas還支持在不同的列中使用不同類型的數(shù)據(jù),如整型數(shù)豌汇、浮點數(shù)幢炸、或是字符串。
4.matplotlib——畫出優(yōu)美的圖形
matplotlib是一個python的繪圖庫拒贱,它以各種硬拷貝格式和跨平臺的交互式環(huán)境生成出版質(zhì)量級別的圖形宛徊,它能夠輸出的圖形包括折線圖佛嬉、散點圖、直方圖等闸天。在數(shù)據(jù)可視化方面暖呕,matplotlib擁有數(shù)量眾多的忠實用戶,其強悍的繪圖能力能夠幫我們對數(shù)據(jù)形成非常清晰直觀的認知苞氮。
5.scikit-learn——非常流行的python機器學(xué)習(xí)庫
scikit-learn包含眾多頂級機器學(xué)習(xí)算法湾揽,它主要由六大類的基本功能,分別是分類笼吟、回歸库物、聚類、數(shù)據(jù)降維贷帮、模型選擇和數(shù)據(jù)預(yù)處理戚揭。
3.K最近鄰算法
1.K最近鄰算法的原理
近朱者赤、近墨者黑撵枢,新數(shù)據(jù)點離誰最近民晒,就和誰屬于同一類。
2.K最近鄰算法在分類任務(wù)中的應(yīng)用
我們用make_blobs生成的數(shù)據(jù)集一共有兩類锄禽,這些數(shù)據(jù)集可以看做機器學(xué)習(xí)的訓(xùn)練數(shù)據(jù)集潜必,是已知的數(shù)據(jù),我們就是基于這些數(shù)據(jù)用算法來進行模型的訓(xùn)練沃但,然后再對新的數(shù)據(jù)進行分類磁滚。
3.K最近鄰算法在回歸分析中的應(yīng)用
在scikit-learn.datasets中有一個非常好的用于回歸分析的數(shù)據(jù)集生成器,make_regression函數(shù)绽慈,我們使用了make_regression函數(shù)生成數(shù)據(jù)集恨旱,用KNeighborsRegressor定義分類模型辈毯,來進行了實驗坝疼。在實驗中,我們通過修改了n_neighbors的參數(shù)提高了模型的評分谆沃。
4.項目實戰(zhàn)——使用K最近鄰算法對酒的分類進行建模
還記得酒的數(shù)據(jù)集概況是(178,13)钝凶,我們先用train_test_split生成訓(xùn)練集合測試集,然后用K最近鄰算法對訓(xùn)練集進行建模唁影,再使用測試集對模型進行評分耕陷,評分后,再用模型對新酒的分類進行預(yù)測据沈。
4.廣義線性模型
1.線性模型的基本概念
1.線性模型的一般公式:
式中:表示y的估計值哟沫,x[0],x[1],,,,x[p]為數(shù)據(jù)集變量的數(shù)量(這個公式的數(shù)據(jù)集有p個特征);w和b為模型的參數(shù)锌介。公式簡化為:
2.線性模型的圖形表示:
線性模型會讓自己距離每個數(shù)據(jù)點的加和最小值嗜诀。這就是線性回歸模型的原理
3.線性回歸的特點:
使用一維數(shù)據(jù)集進行驗證會讓我們有一點偏頗猾警,而對于特征變量較多的數(shù)據(jù)集來說,線性模型就顯得十分強大隆敢。
4.常用的線性模型
線性回歸发皿、嶺回歸、套索回歸拂蝎、邏輯回歸和線性SVC等穴墅。
2.線性回歸模型
1.線性回歸模型的基本原理:
找到當訓(xùn)練數(shù)據(jù)集中y的預(yù)測值和其真實值的平方差最小的時候,所對應(yīng)的的w值和b值温自。
2.線性回歸的性能表現(xiàn):
由于線性回歸自身的特點玄货,非常容易出現(xiàn)過擬合的現(xiàn)象。
3.嶺回歸模型
1.嶺回歸的原理:嶺回歸是一種能避免過擬合的線性模型悼泌,保留所有特征變量誉结,但減少特征變量的系數(shù)值,讓特征變量對預(yù)測結(jié)果的影響較小券躁。
2.參數(shù)調(diào)節(jié):默認參數(shù)alpha=1惩坑,當alpha值越小,嶺回歸的特征變量系數(shù)增大也拜,反之系數(shù)減小以舒。
降低alpha值,會讓系數(shù)值增大慢哈,模型傾向于過擬合的現(xiàn)象蔓钟。
4.套索回歸模型
1.套索回歸的原理:和嶺回歸一樣,套索回歸也會將系數(shù)限制在非常接近0的范圍內(nèi)卵贱,但它進行限制的方式有一點不同滥沫,就是會導(dǎo)致在使用套索回歸的時候,有一部分系數(shù)可能會等于0键俱,這種方式稱為L1正則化兰绣。
2.參數(shù)調(diào)節(jié):默認參數(shù)alpha=1,當alpha值越小编振,套索回歸的特征變量系數(shù)為0的減少缀辩,反之,系數(shù)為0的增多踪央。
降低alpha值會讓系數(shù)非0的增多臀玄,模型傾向于過擬合的現(xiàn)象。
5.樸素貝葉斯
1.貝葉斯定理
2.樸素貝葉斯的簡單應(yīng)用
通過刮北風(fēng)畅蹂、悶熱健无、多云,以及天氣預(yù)報給出的信息來預(yù)測是否會下雨
3.貝努利樸素貝葉斯液斜、高斯樸素貝葉斯和多項式樸素貝葉斯
通過實驗累贤,我們發(fā)現(xiàn)貝努利樸素貝葉斯適合與二項式分布的數(shù)據(jù)集募胃,而多項式樸素貝葉斯適合計數(shù)類型的數(shù)據(jù)集,即非負畦浓,離散數(shù)值的數(shù)據(jù)集痹束,而高斯樸素貝葉斯適用的面就要廣得多,它可以應(yīng)用于任何連續(xù)數(shù)值型的數(shù)據(jù)集當中讶请,當然如果是正態(tài)分布的數(shù)據(jù)集的話祷嘶,高斯樸素貝葉斯模型的得分會更高。
4.樸素貝葉斯實例——判斷腫瘤是良性還是惡性
我們用了威斯康星乳腺腫瘤數(shù)據(jù)集夺溢,是一個非常經(jīng)典的用于醫(yī)療病情分析的數(shù)據(jù)集论巍,樣本分為兩類:惡性和良性。我們將數(shù)據(jù)集一如既往地拆分為訓(xùn)練集和測試集风响,對訓(xùn)練集進行建模嘉汰,用測試集評分,分數(shù)為0.944状勤,然后隨便用其中一個樣本進行預(yù)測鞋怀,發(fā)現(xiàn)被分到了準確的分類了。
6.決策樹與隨機森林
決策樹的基本原理
決策樹是一種在分類與回歸都有著非常廣泛應(yīng)用的算法持搜,它的原理是通過對一系列問題進行if/else的推導(dǎo)密似,最終實現(xiàn)決策。
決策樹的優(yōu)勢與不足
優(yōu)勢:
1.決策樹有一個非常大的優(yōu)勢葫盼,就是可以很容易地將模型進行可視化
2.由于決策樹算法對每個樣本特征進行單獨處理残腌,因此并不需要對數(shù)據(jù)進行轉(zhuǎn)換,不需要對數(shù)據(jù)進行預(yù)處理贫导。
不足:
即便我們在建模的時候可以使用類似max_depth或是max_leaf_nodes等參數(shù)來對決策樹進行預(yù)剪枝處理抛猫,但 它還是不可避免會出現(xiàn)過擬合問題。
隨機森林的基本原理和構(gòu)造
1.定義:隨機森林有時被稱為隨機決策樹孩灯,是一種集合學(xué)習(xí)方法闺金,既可以用于分類,也可以用于回歸钱反。而所謂集合學(xué)習(xí)方法掖看,其實就是把多個機器學(xué)習(xí)算法綜合在一起制造出一個更加大的模型的意思。
2.構(gòu)建:我們通過RandomForestClassifier構(gòu)建了隨機森林面哥,使用酒的數(shù)據(jù)集來進行建模,發(fā)現(xiàn)隨機森林相對于決策樹所進行的分類更加細膩一些毅待。
3.參數(shù):
1.max_features參數(shù)發(fā)現(xiàn)max_features的取值越高尚卫,隨機森林里的每一棵決策樹就會長得越像,因為他們有更多不同特征可以選擇尸红,也就會更容易擬合數(shù)據(jù)吱涉,反之刹泄,如果max_features取值越低,就會迫使每棵決策樹的樣子更加不同怎爵,而且因為特征太少特石,決策樹不得不制造更多節(jié)點來擬合數(shù)據(jù)。
2.n_estimators:這個參數(shù)控制的是隨機森林中決策樹的數(shù)量鳖链。
隨機森林的優(yōu)勢和不足
優(yōu)勢:
1.隨機森林集成了決策樹的所有優(yōu)點姆蘸,而且能夠彌補決策樹的不足
2.隨機森林支持并行處理。對于超大數(shù)據(jù)集來說芙委,隨機森林比較耗時(建立很多決策樹)逞敷,這時可以用多進程并行處理的方式來解決這個問題。
不足:
1.對于超高緯數(shù)據(jù)集灌侣、稀疏數(shù)據(jù)集來說推捐,隨機森林就有點捉襟見肘了,這種情況下侧啼,線性模型要比隨機森林的表現(xiàn)更好一些牛柒。
2.隨機森林相對更消耗內(nèi)存,速度也比線性模型要慢痊乾。
實例演示
我們通過網(wǎng)上一個著名的數(shù)據(jù)集——成年人數(shù)據(jù)集來進行建模焰络,數(shù)據(jù)集樣本特征包括年齡、工作單位性質(zhì)符喝、學(xué)歷闪彼、受教育時長、婚姻狀態(tài)协饲、職業(yè)畏腕、家庭情況等。我們選擇了從年齡到職業(yè)一系列特征作為特征向量X茉稠,而收入>50K描馅,作為標簽y。將數(shù)據(jù)集還是拆分成訓(xùn)練集和測試集后而线,建模铭污,評估,再用新的對象Mr.z的特征數(shù)據(jù)進行輸入膀篮,用模型對他的收入進行預(yù)測嘹狞,從而判斷是否有必要進行下一步的相親。
7.支持向量機SVM
支持向量機的基本原理和構(gòu)造
1.定義:在SVM算法中誓竿,訓(xùn)練模型的過程實際上是對每個數(shù)據(jù)點對于數(shù)據(jù)分類決定邊界的重要性進行判斷磅网,也就是說,在訓(xùn)練數(shù)據(jù)集中筷屡,只有一部分數(shù)據(jù)對于邊界的確定是有幫助的涧偷,而這些數(shù)據(jù)點正好位于決定邊界上的簸喂。這些數(shù)據(jù)被稱為“支持向量”,這也是“支持向量機”名字的由來燎潮。
將數(shù)據(jù)投射至高維空間的方法:我們通過一些方法喻鳄,實現(xiàn)將二維數(shù)據(jù)變成三維的過程,稱為數(shù)據(jù)投射至高維空間确封。這就是SVM的核函數(shù)功能除呵,在SVM中用得最普遍的兩種把數(shù)據(jù)投射至高維空間的方法分別是多項式內(nèi)核和徑向內(nèi)核。其中多項式內(nèi)核隅肥,它是通過把樣本原始特征進行乘方來把數(shù)據(jù)投射至高維空間竿奏。
支持向量機的核函數(shù)
1.通過選擇不同的核函數(shù),計算樣本數(shù)據(jù)點之間的距離的方式不一樣腥放。
2.linearSVC和線性內(nèi)核的SVC生成的決定邊界都是線性的泛啸,在更高維數(shù)據(jù)集中將會是相交的超平面。例如RBF內(nèi)核的SVC和多項式(polynomial)內(nèi)核的SVC分類器的決定邊界則完全不是線性的秃症,他們更加彈性候址。
支持向量機的參數(shù)調(diào)節(jié)
在polynomial內(nèi)核的svc中,起決定性作用的參數(shù)是degree和正則化參數(shù)C种柑,而在RBF內(nèi)核的SVC中岗仑,起決定性參數(shù)的是正則化參數(shù)C和參數(shù)gamma。
我們通過調(diào)節(jié)不同的參數(shù)gamma的值聚请,發(fā)現(xiàn)gamma值越小荠雕,則RBF內(nèi)核的直徑越大,這樣就會有更多的點被圈進決定邊界中驶赏,所以決定邊界就越平滑炸卑,模型也越簡單;而隨著參數(shù)的增加煤傍,模型則更傾向于把每一個點都放到相應(yīng)的決定邊界中盖文,這時模型的復(fù)雜度也相應(yīng)提高了。
所以gamma的值越小蚯姆,模型越傾向于欠擬合五续,反之,模型越傾向于過擬合龄恋。
支持向量機的優(yōu)勢和不足
優(yōu)勢:
1.對各種不同類型的數(shù)據(jù)集都有不錯的表現(xiàn)疙驾。
2.它可以在數(shù)據(jù)特征很少的情況下生成非常復(fù)雜的決定邊界,當然特征數(shù)量很多的情況下表現(xiàn)也不錯篙挽。
不足:
對于數(shù)據(jù)預(yù)處理和參數(shù)調(diào)節(jié)要求非常高荆萤。
支持向量機實例——對波士頓房價進行預(yù)測
在scikit-lean中,內(nèi)置了一個非常適合做回歸分析的數(shù)據(jù)集铣卡,波士頓房價數(shù)據(jù)集链韭,我們用這個數(shù)據(jù)集,來實驗了支持向量機煮落。用訓(xùn)練數(shù)據(jù)集進行建模敞峭,用測試集評分,一開始的線性核函數(shù)和rbf差別很大蝉仇,linear測試集得分0.69旋讹,rbf測試集得分0.001.經(jīng)過圖形可視化,發(fā)現(xiàn)數(shù)據(jù)集中各個特征的最大值和最小值差距很大轿衔,最后經(jīng)過StandardScaler數(shù)據(jù)預(yù)處理沉迹,使所有特征最大值不會超過10,最小值都趨近于0害驹,再次用預(yù)處理的數(shù)據(jù)訓(xùn)練模型鞭呕,結(jié)果linear得分還是0.69,rbf測試集得分從0.001上生到0.65宛官。后來再一次修改gamma和C兩個參數(shù)葫松,發(fā)現(xiàn)測試集得分再次上升到了0.89。由此可見底洗,SVM算法對于數(shù)據(jù)預(yù)處理和參數(shù)調(diào)節(jié)的要求都是非常高了腋么。
8.神經(jīng)網(wǎng)絡(luò)
1.神經(jīng)網(wǎng)絡(luò)的原理和非線性矯正
1.神經(jīng)網(wǎng)絡(luò)的原理:
在線性回歸算法的過程里添加了隱藏層,在隱藏層重復(fù)進行上述加權(quán)求和計算亥揖,最后把隱藏層所計算的結(jié)果用來生成最終結(jié)果:如下圖的轉(zhuǎn)化
2.非線性矯正
處理方法:
1.非線性矯正珊擂,簡稱relu(rectified linear unit)
2.雙曲正切處理,簡稱tanh (tangens hyperbolicus)
圖像表示:
經(jīng)過tanh處理后的神經(jīng)網(wǎng)絡(luò)模型的公式:
多個隱藏層會更加復(fù)雜费变,如下圖:
在大型神經(jīng)網(wǎng)絡(luò)中摧扇,有很多這樣的隱藏層,這也是“深度學(xué)習(xí)”中“深度”二字的來源胡控。
2.神經(jīng)網(wǎng)絡(luò)的模型參數(shù)調(diào)節(jié)
目前四種方法調(diào)整參數(shù):
1.隱藏層的節(jié)點數(shù)
2.隱藏層的層數(shù)
3.activation
4.alpha
在使用酒的訓(xùn)練數(shù)據(jù)集訓(xùn)練模型中扳剿,我們發(fā)現(xiàn),讓決定邊界更加細膩的方法昼激,一個方法是增加單個隱藏層中的節(jié)點數(shù)庇绽,即hidden_layer_sizes參數(shù)調(diào)大。另一個方法是把activation參數(shù)改為tanh橙困。
3.使用神經(jīng)網(wǎng)絡(luò)訓(xùn)練手寫數(shù)字識別模型
我們使用了MNIST專門用來訓(xùn)練各種圖像處理系統(tǒng)的龐大數(shù)據(jù)集來進行了實驗泥兰,同樣分成了訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集街州,訓(xùn)練模型使用的參數(shù)是2個隱藏層,每層100個節(jié)點,Activation參數(shù)為relu升薯,正則化alpha參數(shù)為le-5(1*10^-5),即0.0001.測試集得分93.6%忿墅,最后隨意拿了一個新的數(shù)字4,預(yù)測出了正確結(jié)果。
4.神經(jīng)網(wǎng)絡(luò)的優(yōu)勢與不足
優(yōu)勢:神經(jīng)網(wǎng)絡(luò)可以從超大數(shù)據(jù)集中獲取信息并且可以建立極為復(fù)雜的模型明未,所以在計算能力充足并且參數(shù)設(shè)置合適的情況下,神經(jīng)網(wǎng)絡(luò)可以比其他的機器學(xué)習(xí)算法表現(xiàn)更加優(yōu)異壹蔓。
不足:模型訓(xùn)練的時間長趟妥、對數(shù)據(jù)預(yù)處理的要求較高。對于特征類型比較單一的數(shù)據(jù)集來說佣蓉,神經(jīng)網(wǎng)絡(luò)表現(xiàn)不錯披摄,但是如果數(shù)據(jù)集中的特征類型差異較大的話,隨機森林等基于決策樹的算法會表現(xiàn)更好勇凭。
9.數(shù)據(jù)預(yù)處理疚膊、降維、特征提取及聚類
1.幾種常見的數(shù)據(jù)預(yù)處理工具
1.StandardScaler
2.MinMaxScaler
3.RobustScaler
4.Normalizer
2.PCA主成分分析用于數(shù)據(jù)降維
1.PCA主成分分析:
數(shù)據(jù)集從一個散點組成的面形成一條直線虾标,從二維變成了一維寓盗,用到的降維方法稱為主成分分析法(principal Component Analysis,PCA).
2.原始特征與PCA主成分分析之間的關(guān)系:
提取的主成分中涉及了所有的特征
3.PCA主成分分析和NMF非負矩陣分解用于特征提取
1.PCA白化處理,降低特征之間的相關(guān)度夺巩,特征數(shù)量
2.非負矩陣分解贞让,如果降低NMF的成分數(shù)量,它會重新生成新的成分柳譬,而新的成分和原來的成分完全不一樣喳张。
4.幾種常用的聚類算法
1.K均值聚類
2.凝聚聚類
3.基于密度的有噪聲應(yīng)用空間聚類(DBSCAN)
10. 數(shù)據(jù)表達與特征工程
1.數(shù)據(jù)表達
1.使用啞變量轉(zhuǎn)化類型特征
2.裝箱處理
2.數(shù)據(jù)“升維”
1.向數(shù)據(jù)集添加交互式特征
2.多項式特征
3.自動特征選擇
1.單一變量法:
選擇那些置信度最高的樣本特征進行分析。只適用于樣本特征之間沒有明顯關(guān)聯(lián)的情況美澳。
2.基于模型的特征選擇:
先使用一個有監(jiān)督學(xué)習(xí)的模型對數(shù)據(jù)特征的重要性進行判斷销部,然后把最重要的特征進行保留。
3.迭代式特征選擇:
基于若干個模型進行特征選擇制跟,先用某個模型對特征進行選擇舅桩,之后再建立兩個模型,其中一個對已經(jīng)選擇的模型進行篩選雨膨;另外一個對被剔除的特征進行篩選擂涛,一直重復(fù)這個步驟,直到達到我們指定的特征數(shù)量
11.模型評估與優(yōu)化
1.使用交叉驗證進行模型評估
反復(fù)地拆分數(shù)據(jù)集聊记,進行建模和測試撒妈,最終取平均分的一種模型評估方法
2.使用網(wǎng)格搜索優(yōu)化模型參數(shù)
遍歷全部的參數(shù)設(shè)置,找到最高分和對應(yīng)的參數(shù)
3.分類模型的可信度評估
1.分類模型中的預(yù)測準確率
2.分類模型中的決定系數(shù)
12建立算法的管道模型
1.管道模型的概念和用法
概念:管道模型就是可以將多個算法打包一起使用的一個模型排监。
用法:先使用make_blobs生成2分類的數(shù)據(jù)集狰右,再我們使用管道模型進行了網(wǎng)格搜索,先將預(yù)處理StandardScaler工具和mlp模型舆床,放入管道模型棋蚌,再用管道模型進行擬合訓(xùn)練數(shù)據(jù)集并對測試集進行評分嫁佳,最后我們進行網(wǎng)格搜索,給網(wǎng)格搜索傳入管道谷暮、模型參數(shù)和模型蒿往。得到最后的對象,從這個對象中可以得到交叉驗證最高分坷备,模型最優(yōu)參數(shù)和測試集得分等熄浓。
2.使用管道模型對股票漲幅進行回歸分析
1.我們準備了股票漲幅的數(shù)據(jù)集情臭,然后建立預(yù)處理和MLP模型的管道模型省撑,再把管道模型代入交叉驗證模型,得分0.6分俯在。
2.我們調(diào)整了管道模型竟秫,給管道模型中增加了一個特征選擇的模型SelectFromModel(基于決策樹),再使用交叉驗證法跷乐,得分0.89
3.使用管道模型進行模型選擇和參數(shù)調(diào)優(yōu)
3.后來我們再次使用管道模型進行模型選擇肥败,希望找到適合我們數(shù)據(jù)集的算法。于是在管道模型的參數(shù)中加入了兩個模型愕提,一個是隨機森林馒稍,一個是MLP。將模型代入代入網(wǎng)格搜索浅侨, 結(jié)果發(fā)現(xiàn)隨機森林算法比神經(jīng)網(wǎng)絡(luò)的得分還高纽谒。
4.但我們還不確定,因為參數(shù)都是使用默認的(MLP隱藏層(100如输,)鼓黔,隨機森林的n_estimators為10個),最后我們通過管道模型尋找最優(yōu)參數(shù)不见,繼續(xù)向管道參數(shù)中添加參數(shù)值(神經(jīng)網(wǎng)絡(luò)的隱藏層和決策樹的n_estimators)澳化。重新將管道代入網(wǎng)格搜索模型中,得到最佳模型(包括最佳參數(shù))和得分稳吮。得分再一次增長缎谷,發(fā)現(xiàn)隨機森林還是優(yōu)于MLP
5.最終,我們再次調(diào)整了隨機森林的n_estimators和MLP的迭代次數(shù)提高灶似,發(fā)現(xiàn)隨機森林的分數(shù)還是比神經(jīng)網(wǎng)絡(luò)的評分更高列林,并且兩個模型的分數(shù)也再次有所提升。
13文本數(shù)據(jù)處理
1.文本數(shù)據(jù)的特征提取喻奥、中文分詞及詞袋模型
1.使用CountVectorizer對文本進行特征提取席纽,此方法可以對空格分割的詞分別進行統(tǒng)計。先實例化撞蚕,再擬合有空格的文本润梯,形成文本字典,可以用來模型訓(xùn)練。
2.使用CountVectorizer的transform方法纺铭,可以生成詞袋模型寇钉,詞袋模型可以直接通過.toarray()方法進行密度表達(每個詞出現(xiàn)的次數(shù))。
2.對文本數(shù)據(jù)進一步優(yōu)化處理
1.解決上文中單詞出現(xiàn)的順序被無視的問題:
要解決這個問題舶赔,我們可以調(diào)整CountVectorizer中的ngram_range參數(shù)進行調(diào)節(jié)扫倡。
2.n_Gram定義:n_Gram是大詞匯連續(xù)文本或語音識別中常用的一種語言模型,它是利用上下文相鄰詞的搭配信息來進行文本數(shù)據(jù)轉(zhuǎn)換的竟纳,其中n代表一個整型數(shù)值撵溃,例如n等于2的時候,模型稱為bi-Gram锥累,意思是n-Gram會對相鄰的兩個單詞進行配對缘挑;而n等于3時,模型成為tri-Gram桶略,也就是會對相鄰的3個單詞進行配對语淘。將ngram_range參數(shù)調(diào)節(jié)為(2,2),意思是進行組合的單詞數(shù)量的下限是2际歼,上限也是2.
3.使用tf-idf模型對文本數(shù)據(jù)進行提然谭:
在scikit-learn當中,有兩個類使用了tf-idf方法鹅心,其中一個是TfidfTransformer吕粗,它用來將CountVectorizer從文本中提取的特征進行轉(zhuǎn)化;另一個是TfidfVectorizer巴帮,它和CountVector的用法是相同的——簡單理解的話溯泣,它相當于把CountVectorizer和TfidfTransformer所做的工作整合在了一起。
4.刪除文本中的停用詞:
停用詞榕茧,指的是那些在文本處理過程中被篩除出去的垃沦,出現(xiàn)頻率高但又沒有什么實際意義的詞。激活英語停用詞參數(shù):
tfidf = TfidfVectorizer(smooth_idf=False,stop_words='english').
14.從數(shù)據(jù)獲取到話題提取
使用潛在狄利克雷分布進行話題提取
我們使用網(wǎng)上爬取的50頁的段子來作為數(shù)據(jù)進行實驗用押,將所有段落進行分詞肢簿,形成一個超大規(guī)模的分詞。將這些分詞使用CountVectorizer或者是TfidfVectorizer蜻拨,例中我們選擇了使用TfidfVectorizer池充,然后使用LDA模型進行話題提取。