




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、7A版優(yōu)質(zhì)實用文檔用Python建立預(yù)測模型的方法由于近幾年來,Python用戶數(shù)量上漲及其本身的簡潔性,使得這個工具包對數(shù) 據(jù)科學(xué)世界的Python專家們變得有意義。本文將幫助你更快更好地建立第一個 預(yù)測模型。絕大多數(shù)優(yōu)秀的數(shù)據(jù)科學(xué)家和 kagglers建立自己的第一個有效模型 并快速提交。這不僅僅有助于他們領(lǐng)先于排行榜,而且提供了問題的基準(zhǔn)解決方 案。預(yù)測模型的分解過程我總是集中于投入有質(zhì)量的時間在建模的初始階段, 比如,假設(shè)生成、頭腦風(fēng)暴、 討論或理解可能的結(jié)果范圍。所有這些活動都有助于我解決問題, 并最終讓我設(shè) 計出更強大的商業(yè)解決方案。為什么你要在前面花費這段時間,這有充分的理由:1
2、 .你有足夠的時間投入并且你是無經(jīng)驗的(這是有影響的)2 .你不帶有其它數(shù)據(jù)觀點或想法的偏見(我總是建議,在深入研究數(shù)據(jù)之前 做假設(shè)生成)3 .在后面的階段,你會急于完成該項目而沒有能力投入有質(zhì)量的時間了。這個階段需要投入高質(zhì)量時間,因此我沒有提及時間表,不過我建議你把它作為 標(biāo)準(zhǔn)的做法。這有助于你建立建立更好地預(yù)測模型, 在后面的階段的只需較少的 迭代工作。讓我們來看看建立第一個模型的剩余階段的時間表:1 .數(shù)據(jù)描述性分析一一50%的時間2 .數(shù)據(jù)預(yù)處理(缺失值和異常值修復(fù))一一40%的時間3 .數(shù)據(jù)建,K 4%的時間4 .性能預(yù)測6%的時間讓我們一步一步完成每個過程(每一步投入預(yù)測的時間)
3、:階段1 :描述性分析/數(shù)據(jù)探索在我剛開始成為數(shù)據(jù)科學(xué)家的時候, 數(shù)據(jù)探索占據(jù)了我大量的時間。 不過,隨著時間的推移,我已經(jīng)把大量的數(shù)據(jù)操作自動化了。由于數(shù)據(jù)準(zhǔn)備占據(jù)建立第一個模型工作量的50% ,自動化的好處是顯而易見的。這是我們的第一個基準(zhǔn)模型,我們?nèi)サ羧魏翁卣髟O(shè)計。因此,描述分析所需的時間僅限于了解缺失值和直接可見的大的特征。在我的方法體系中,你將需要2分鐘來完成這一步(假設(shè),100000個觀測數(shù)據(jù)集)。我的第一個模型執(zhí)行的操作:1 .確定ID,輸入特征和目標(biāo)特征2 .確定分類和數(shù)值特征3 .識別缺失值所在列階段2 :數(shù)據(jù)預(yù)處理(缺失值處理)有許多方法可以解決這個問題。對于我們的第一個模
4、型,我們將專注于智能和快速技術(shù)來建立第一個有效模型。為缺失值創(chuàng)建假標(biāo)志:有用,有時缺失值本身就攜帶了大量的信息。用均值、中位數(shù)或其它簡單方法填補缺失值: 均值和中位數(shù)填補都表現(xiàn)良好,大多數(shù)人喜歡用均值填補但是在有偏分布的情況下我建議使用中位數(shù)。其它智能的方法與均值和中位數(shù)填補類似,使用其它相關(guān)特征填補或建立模型。比如,在Titanic生存挑戰(zhàn)中,你可以使用乘客名字的稱呼,比如:“ Mr. ",“ Miss. :' Mrs. "," Master ”,來填補年齡的缺失值,這對模型性 能有很好的影響。填補缺失的分類變量:創(chuàng)建一個新的等級來填補分類變量, 讓所有
5、的缺失值編碼為一個單一值比如,"New_Cat ",或者,你可以看看頻率組合,使用高頻率的分類變量來填補缺失值。由于數(shù)據(jù)處理方法如此簡單,你可以只需要 3到4分鐘來處理數(shù)據(jù)。階段3 :數(shù)據(jù)建模根據(jù)不同的業(yè)務(wù)問題,我推薦使用GBM或RandomForest技術(shù)的任意一種。這兩個技術(shù)可以極其有效地創(chuàng)建基準(zhǔn)解決方案。我已經(jīng)看到數(shù)據(jù)科學(xué)家通常把這兩個方法作為他們的第一個模型同時也作為最后一個模型。這最多用去4到5分鐘。階段4 :性能預(yù)測有各種各樣的方法可以驗證你的模型性能,我建議你將訓(xùn)練數(shù)據(jù)集劃分為訓(xùn)練集 和驗證集(理想的比例是70: 30)并且在70%的訓(xùn)練數(shù)據(jù)集上建?!,F(xiàn)在,使
6、 用30%的驗證數(shù)據(jù)集進行交叉驗證并使用評價指標(biāo)進行性能評估。最后需要1到2分鐘執(zhí)行和記錄結(jié)果。本文的目的不是贏得比賽,而是建立我們自己的基準(zhǔn)。讓我們用python代碼來 執(zhí)行上面的步驟,建立你的第一個有較高影響的模型。讓我們開始付諸行動首先我假設(shè)你已經(jīng)做了所有的假設(shè)生成并且你擅長使用python的基本數(shù)據(jù)科學(xué)操作。我用一個數(shù)據(jù)科學(xué)挑戰(zhàn)的例子來說明。讓我們看一下結(jié)構(gòu):步驟1 :導(dǎo)入所需的庫,讀取測試和訓(xùn)練數(shù)據(jù)集。# 導(dǎo)入 pandas、numpy 包,導(dǎo)入 LabelEncoder、random、 RandomForestClassifier 、GradientBoostingClassifi
7、er 函數(shù) importpandasaspdimportnumpyasnpfromsklearn.preprocessingimportLabelEncoderimportrandomfromsklearn.ensembleimportRandomForestClassifierfromsklearn.ensembleimportGradientBoostingClassifier# 讀取訓(xùn)練、測試數(shù)據(jù)集train=pd.read_csv('C:/Users/AnalyticsVidhya/Desktop/challenge/Train.cs v')test=pd.read_c
8、sv('C:/Users/AnalyticsVidhya/Desktop/challenge/Test.csv' )# 創(chuàng)建訓(xùn)練、測試數(shù)據(jù)集標(biāo)志train'Type'='Train' test'Type'='Test'fullData=pd.concat(train,test,aGis=0)#聯(lián)合訓(xùn)練、測試數(shù)據(jù)集步驟2:該框架的第二步并不需要用到python ,繼續(xù)下一步步驟4:確定a)ID變量b)目標(biāo)變量c)分類變量d)數(shù)值變量e)其他變量。為驟3 :杳看數(shù)據(jù)集的列名或11Average A.C.Eai j n
9、oeAverage CnKarLDard.ransactioriBalarce.Tnri&t«rHo me Loanlr vestmenL Tai. Sailng.B3 ndlrt¥estrrw!nt_in.CfUllD irrMjnata.columns#3r覦畫助購CWQ0C1Q1S OCT 叩 gWOOWTDigDWQOO£箱54小川"口多力V J T552&回232& 11174636 526M2U犯打SO陽喀iFftfilOM12 d幻皿42 246&&1fullDFata.head(10)#蛀顯/I、斐
10、女山八王小印1210條記DOOCXMO0 MOCrtM)ImOOOQOOC0 000000o ooooooOOCXMWO8 200000fum E)#5你可以使用describe。23 anon)m4WOOG彳嗷在看j moo數(shù)俏域的概要S97CKKO33 9OQ0CK)i-.ata.describe(1ft 480000'millRA7%nf¥Ml?9fii7R¥im;t% R7mnnrwrinoID_col='REF_NO'target_col="Account.Status"cat_cols='children
11、9;,'age_band','status','occupation','occupation_partner', 'home_status','familyjncome','self_employed','self_employed_partner','y ear_last_moved','TVarea','post_code','post_area','gender','reg
12、ion'num_cols=list(set(list(fullData.columns)-set(cat_cols)-set(ID_col)-set(target_col)-set(data_col)other_col='Type'#為訓(xùn)練、測試數(shù)據(jù)集設(shè)置標(biāo)識符步驟5 :識別缺失值變量并創(chuàng)建標(biāo)志fullData.isnull().any()# 返回 True 或 False, True 意味著有缺失值而 False 相反num_cat_cols=num_cols+cat_cols#組合數(shù)值變量和分類變量# 為有缺失值的變量創(chuàng)建一個新的變量# 對缺失值標(biāo)志為1,否則為0f
13、orvarinnum_cat_cols:iffullDatavar.isnull().any()=True:fullDatavar+'_NA'=fullDatavar.isnull()G1步驟6 :填補缺失值# 用均值填補數(shù)值缺失值fullDatanum_cols=fullDatanum_cols.fillna(fullDatanum_cols.mean(),inplace=True)# 用-9999填補分類變量缺失值fullDatacat_cols=fullDatacat_cols.fillna(value=-9999)步驟7:創(chuàng)建分類變量的標(biāo)簽編碼器,將數(shù)據(jù)集分割成訓(xùn)練和測
14、試集,進一步,將訓(xùn)練數(shù)據(jù)集分割成訓(xùn)練集和測試集。# 創(chuàng)建分類特征的標(biāo)簽編碼器forvarincat_cols:number=LabelEncoder()fullDatavar=number.fit_transform(fullDatavar.astype('str')# 目標(biāo)變量也是分類變量,所以也用標(biāo)簽編碼器轉(zhuǎn)換fullData"Account.Status"=number.fit_transform(fullData"Account.Status".astype('str')train=fullDatafullData
15、'Type'='Train'test=fullDatafullData'Type'='Test'train'is_train'=np.random.uniform(0,1,len(train)<=.75Train,Validate=traintrain'is_train'=True,traintrain'is_train'=False步驟8:將填補和虛假(缺失值標(biāo)志)變量傳遞到模型中,我使用隨機森林來預(yù) 測類。features=list(set(list(fullData.co
16、lumns)-set(ID_col)-set(target_col)-set(other_col)G_train=Trainlist(features).valuesy_train=Train"Account.Status".valuesG_validate=Validatelist(features).valuesy_validate=Validate"Account.Status".valuesG_test=testlist(features).valuesrandom.seed(100)rf=RandomForestClassifier(n_estimators=1000)rf.fit(G_train,y_train)步驟9 :檢查性能做出預(yù)測status=rf.predict_proba(G_validate)fpr,tpr,_=roc_curve(y_validate,status
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司白云山爬山活動方案
- 公司新春裝飾活動方案
- 公司職員服務(wù)活動方案
- 公司端午節(jié)節(jié)活動方案
- 公司紅包墻抽獎活動方案
- 公司用人優(yōu)惠活動方案
- 公司聚會活動策劃方案
- 公司溫泉旅游活動方案
- 公司聯(lián)合宣傳策劃方案
- 公司西湖劃船活動方案
- 中石油吊裝作業(yè)安全規(guī)范
- DBJT 13-200-2025 福建省樁基礎(chǔ)與地下結(jié)構(gòu)防腐蝕技術(shù)標(biāo)準(zhǔn)
- 通信施工新人培訓(xùn)
- 2025年管道工(高級)職業(yè)技能鑒定參考試題(附答案)
- 貓舍咖啡廳創(chuàng)業(yè)計劃書
- 2025年糧油保管員職業(yè)技能資格知識考試題與答案
- 《胸腔積液護理》課件
- 第五單元 第5節(jié) 跨學(xué)科實踐:制作望遠(yuǎn)鏡 教學(xué)設(shè)計-2024-2025學(xué)年人教版物理八年級上冊
- 2022-2023學(xué)年湖南省岳陽市城區(qū)人教版六年級下冊期末測試數(shù)學(xué)試卷(原卷版+解析)
- 2023年湖南省普通高等學(xué)校對口招生考試語文題
- 人工智能算法開發(fā)合作合同
評論
0/150
提交評論