python數(shù)據(jù)分析過程示例_第1頁
python數(shù)據(jù)分析過程示例_第2頁
python數(shù)據(jù)分析過程示例_第3頁
python數(shù)據(jù)分析過程示例_第4頁
python數(shù)據(jù)分析過程示例_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

python數(shù)據(jù)分析過程示例引言

幾年后發(fā)生了。在使用SAS工作超出5年后,我決定走出自己舒適區(qū)。作為一個數(shù)據(jù)科學(xué)家,我尋找其余有用工具旅程開始了!幸運是,沒過多久我就決定,Python作為我開胃菜。

我總是有一個編寫代碼傾向。這次我做是我真正喜歡。代碼。原來,寫代碼是如此輕易!

我一周內(nèi)學(xué)會了Python基礎(chǔ)。而且,從那時起,我不但深度探索了這門語言,而且也幫助了許多人學(xué)習(xí)這門語言。Python是一個通用語言。不過,多年來,具備強大小區(qū)支持,這一語言已經(jīng)有了專門數(shù)據(jù)分析和預(yù)測模型庫。

因為Python缺乏數(shù)據(jù)科學(xué)資源,我決定寫這篇教程來幫助他人更加快地學(xué)習(xí)Python。在本教程中,我們將講授一點關(guān)于怎樣使用Python進行數(shù)據(jù)分析信息,咀嚼它,直到我們以為舒適并能夠自己去實踐。

目錄1.數(shù)據(jù)分析Python基礎(chǔ)為何學(xué)Python用來數(shù)據(jù)分析Python2.7v/s3.4怎樣安裝Python在Python上運行一些簡單程序2.Python庫和數(shù)據(jù)結(jié)構(gòu)Python數(shù)據(jù)結(jié)構(gòu)Python迭代和條件結(jié)構(gòu)Python庫3.在Python中使用Pandas進行探索性分析序列和數(shù)據(jù)框介紹分析Vidhya數(shù)據(jù)集——貸款預(yù)測問題

4.在Python中使用Pandas進行數(shù)據(jù)再加工5.使用Python中建立預(yù)測模型邏輯回歸決議樹隨機森林讓我們開始吧1.數(shù)據(jù)分析Python基礎(chǔ)為何學(xué)Python用來數(shù)據(jù)分析

很多人都有興趣選擇Python作為數(shù)據(jù)分析語言。這一段時間以來,我有比較過SAS和R。這里有一些原因來支持學(xué)習(xí)Python:開源——無償安裝極好在線小區(qū)很輕易學(xué)習(xí)能夠成為一個通用語言,用于基于Web分析產(chǎn)品數(shù)據(jù)科學(xué)和生產(chǎn)中。

不用說,它依然有幾個缺點:它是一個解釋性語言,而不是編譯語言,所以可能占用更多CPU時間。然而,因為它節(jié)約了程序員時間(因為學(xué)習(xí)方便),它可能依然是一個很好選擇。Python2.7v/s3.4

這是關(guān)于Python一個最具爭議話題。你可能總是不能防止碰到,尤其是假如你是一個初學(xué)者。這里沒有正確/錯誤選擇。它完全取決于詳細情況和你需要。我會嘗試給你一些提議,以幫助你做出明智選擇。為何選擇Python2.7極好小區(qū)支持!這是你在早期需要東西。Python2發(fā)行于末,已經(jīng)被使用超出。很多第三方庫!即使許多庫已經(jīng)提供了3.X支持,但依然有大量模塊只工作在2.X。假如你計劃將Python用于詳細應(yīng)

用,如Web開發(fā)這種高度依賴外部模塊,你選擇2.7可能會愈加好。3.X版本一些特征有向后兼容性,能夠使用2.7版本。為何選擇Python3.4更整齊和更加快!Python開發(fā)者修正了一些固有問題和小缺點,以此為未來建立一個強大基礎(chǔ)。這些可能不是很相關(guān),但最終會很主要。這是未來!2.7是2.X族公布最終一個版本,而且最終每個人都要轉(zhuǎn)移到3.X版本。Python3在過去5年已經(jīng)公布穩(wěn)定版本,并將繼續(xù)。

沒有明確贏家,但我想,底線是,你應(yīng)該專注于學(xué)習(xí)Python語言。版本之間轉(zhuǎn)換應(yīng)該只是一個時間問題。敬請期待,很快未來一個專門對比Python2.X和3X文章!怎樣安裝Python有兩種方法安裝Python你能夠直接從項目網(wǎng)站下載Python,然后單獨安裝你想要組件和庫或者,你能夠下載并安裝一個包,它附帶了預(yù)裝庫。我提議您下載Anaconda。另一個選擇是EnthoughtCanopyExpress。第二種方法提供了一個防止麻煩安裝,所以我會推薦給初學(xué)者。這種方法是你必須等候整個包進行升級,

即使你只是對一個單一庫最新版本感興趣。它應(yīng)該不主要,直到和除非,直到和除非,你正在做尖端統(tǒng)計研究。選擇開發(fā)環(huán)境

一旦你已經(jīng)安裝了Python,選擇環(huán)境能夠有很多個選擇。這里是3個最常見選擇:終端/基于ShellIDLE(默認環(huán)境)iPythonnotebook——類似于Rmarkdown

而環(huán)境權(quán)取決于你需要,我個人更喜歡iPythonnotebook一點。它提供了許多良好功效,編寫代碼同時還能夠用于統(tǒng)計,你能夠選擇在上面運行代碼塊(而不是一行一行執(zhí)行)。我們在整個教程中將使用Ipython環(huán)境熱身:跑第一個Python程序

你能夠使用Python作為一個簡單計算器來開始:

有一些事情需要注意:你能夠在你終端/CMD鍵入“IPythonnotebook”來開啟IPythonnotebook,這取決于你工作在操作系統(tǒng)你能夠經(jīng)過簡單地點擊上面截圖中名字來對IPythonnotebook命名界面顯示In[*]代表輸入和Out[*]代表輸出。你能夠經(jīng)過按“Shift+Enter”或“ALT+Enter”來執(zhí)行代碼,假如你后面還想插入一行。

在我們深入挖掘怎樣處理問題之前,讓我們退后一步,了解Python基本知識。當(dāng)我們知道數(shù)據(jù)結(jié)構(gòu)和迭代和條件結(jié)構(gòu)是形成任何語言關(guān)鍵。在Python中,這些包含列表、字符串、元組、字典、for循環(huán),while循環(huán),if-else等等,讓我們來看看下面原因。2.在Python上運行一些簡單程序Python數(shù)據(jù)結(jié)構(gòu)

以下是Python中使用一些數(shù)據(jù)結(jié)構(gòu)。你應(yīng)該熟悉他們,方便恰當(dāng)使用它們。列表——列表是在Python中最通用數(shù)據(jù)結(jié)構(gòu)。列表能夠這么簡單定義:就是在方括號中一系列用逗號來分隔值。列表可能包含不一樣類型項,但它們通常都有相同類型。Python列表是可變,列表中單個元素是能夠改變。

這里是一個快速例子,定義了一個列表,然后訪問它:字符串——字符串能夠簡單使用單引號(")、雙引號(”)或三引號(’’’)來定義。字符串封閉三引號(’’’)中能夠跨越多行代碼,在文檔字符串中是很慣用(統(tǒng)計功效Python方式)。作為一個轉(zhuǎn)義字符。請注意,Python中字符串是不可變,所以你不能改變字符串部分。元組——元組由一系列由逗號分隔值表示。元組是不可變,輸出用括號包圍,目標(biāo)是嵌套結(jié)構(gòu)能夠被正確處理。另外,盡管元組是不可變,但它們能夠在必要是含有可變數(shù)據(jù)。

因為元組是不可變,不可改變,他們相對列表來說能夠處理更加快。所以,假如你清單是不可能改變,你應(yīng)該使用元組,而不是列表。字典——字典是鍵:值對一個無序集合,要求鍵是唯一(在一個字典里)。一對大括號創(chuàng)建一個空字典:{}。

Python迭代和條件結(jié)構(gòu)

和大多數(shù)語言一樣,Python也有一個FOR循環(huán),這是最廣泛使用迭代方法。它有一個簡單語法:

這里“Python迭代能夠是列表、元組或其余先進數(shù)據(jù)結(jié)構(gòu),我們將在后面章節(jié)中探討。讓我們來看看一個簡單例子,確定一個數(shù)字因子。

來看看條件語句,它們是用來基于條件執(zhí)行代碼片段。最慣用結(jié)構(gòu)是if-else,有以下語法:

比如,假如我們想打印出某個數(shù)字n是偶數(shù)還是奇數(shù):

既然你熟悉了Python基礎(chǔ),我們來更近一步。假如你像完成以下任務(wù):乘2矩陣求二次方程根繪制條形圖和直方圖建立統(tǒng)計模型訪問網(wǎng)頁

假如你想從零開始寫代碼,它將是一場噩夢,你使用Python不會超出2天!但不要擔(dān)心這些。值得慶幸是,有許多預(yù)定義庫,我們能夠直接導(dǎo)入到我們代碼,使我們生活很輕易。比如,考慮我們剛才看到因子例子。我們能夠一步就完成:

當(dāng)然,為了這么我們需要導(dǎo)入math庫。讓我們探索下一個不一樣庫。Python庫

在開始我們學(xué)習(xí)Python之旅之前,讓我們先一步,了解一些有用python庫。第一步顯然是要學(xué)會將它們導(dǎo)入到我們環(huán)境中。在Python中有以下幾個方法:

在第一個方式中,我們已經(jīng)為math庫定義了一個別名m?,F(xiàn)在我們能夠使用數(shù)學(xué)庫各種功效(比如階乘,經(jīng)過引用別名m.factorial())。

第二方式,你需要導(dǎo)入math整個命名空間,你能夠直接使用factorial(),而不用提到math。提醒:谷歌推薦您使用第一個方式導(dǎo)入庫,因為您將知道函數(shù)來自何處。

下面是一個庫列表,你將在任何科學(xué)計算和數(shù)據(jù)分析中用到:NumPy代表數(shù)值Python。NumPy最強大功效是n維數(shù)組。該庫還包含基本線性代數(shù)函數(shù),傅里葉變換,高級隨機數(shù)功效,以及集成其余低級語言如Fortran,C和C++工具。SciPy代表科學(xué)Python。SciPy是基于NumPy。它是最有用庫之一,具備各種高層次科學(xué)和工程模塊,如離散傅立葉變換,線性代數(shù),優(yōu)化和稀疏矩陣。Matplotlib用于繪制各種各樣圖表,從直方圖到線圖,再到熱圖。你能夠在IPythonnotebook中使用PyLab(IPythonnotebook–PyLab=inline)以此使用這些繪圖功效inline。假如你忽略inline選項,PyLab會將IPythonnotebook環(huán)境轉(zhuǎn)換成類似于Matlab環(huán)境。你也能夠使用Latex命令將math庫添加到您繪圖中。Pandas對于結(jié)構(gòu)化數(shù)據(jù)操作和控制。它廣泛用于數(shù)據(jù)再加工和數(shù)據(jù)準(zhǔn)備。Pandas說最近一直在推進對PythonPython使用數(shù)據(jù)科學(xué)家共同體工具。ScikitLearn機器學(xué)習(xí)庫。建立在NumPy、SciPy和matplotlib基礎(chǔ)上,這個庫包含了機器學(xué)習(xí)和統(tǒng)計模型包含分類、回歸、聚類和降維等很多有效工具。Statsmodels用于統(tǒng)計建模。statsmodels是一個Python模塊,允許用戶探索數(shù)據(jù),估量統(tǒng)計模型,并進行統(tǒng)計檢驗。一個廣泛描述性統(tǒng)計,統(tǒng)計檢驗列表。繪圖功效,和結(jié)果統(tǒng)計可用于不一樣類型數(shù)據(jù)和每個估量。Seaborn用于統(tǒng)計數(shù)據(jù)可視化。Seaborn是Python中用來繪制讓人喜歡并能提供大量信息統(tǒng)計圖形庫。它是基于matplotlib。Seaborn意在使可視化成為探索和了解數(shù)據(jù)關(guān)鍵部分。Bokeh創(chuàng)建交互式圖、儀表盤和當(dāng)代Web瀏覽器上數(shù)據(jù)應(yīng)用。它允許用戶生成優(yōu)雅和簡練d3.js格調(diào)圖形。另外,在非常大或流媒體數(shù)據(jù)集上,它具備高性能交互性能力。Blaze擴展NumPy和Pandas分布式和流媒體數(shù)據(jù)集。它能夠用來訪問來自多個起源數(shù)據(jù),包含bcolz,MongoDB,SQLAlchemy,ApacheSpark,PyTables等等,結(jié)合Bokeh,Blaze能夠作為一個非常強大工具,用于對大規(guī)模數(shù)據(jù)創(chuàng)建高效可視化和儀表板。Scrapy用于網(wǎng)絡(luò)爬蟲。它是用于獲取特定數(shù)據(jù)模式一個非常有用框架,。它能夠經(jīng)過開始一個網(wǎng)站主頁網(wǎng)址,然后經(jīng)過挖掘網(wǎng)頁內(nèi)網(wǎng)站搜集信息。SymPy用于符號計算。它具備廣泛功效,從基本符號運算到微積分,代數(shù),離散數(shù)學(xué)和量子物理學(xué)。另一個有用功效是將計算結(jié)果格式化為LaTeX碼能力。Requests用于訪問網(wǎng)絡(luò)。它工作原理類似于Python標(biāo)準(zhǔn)庫urllib2,不過更輕易編碼。但對于初學(xué)者,你會發(fā)覺和urllib2細微差異,Requests可能更方便。

其它庫,你可能需要:os用于操作系統(tǒng)和文件操作networkx和igraph基于數(shù)據(jù)操作繪制圖形regularexpressions用于在文本數(shù)據(jù)中查找模式BeautifulSoup將探索Web。它不如Scrapy,它一次運行將從一個單一網(wǎng)頁中提取信息。

現(xiàn)在我們已經(jīng)熟悉Python基礎(chǔ)和更多庫,讓我們深入到經(jīng)過Python處理問題。是,我意思是做一個預(yù)測模型!在這個過程中,我們使用了一些強大庫,也碰到了下一級數(shù)據(jù)結(jié)構(gòu)。我們將帶你經(jīng)過這3個關(guān)鍵階段:數(shù)據(jù)探索—從我們所擁有數(shù)據(jù)中發(fā)覺更多數(shù)據(jù)修改—清理數(shù)據(jù)和并修改它使它更適適用來統(tǒng)計建模預(yù)測建?!\行實際算法,自得其樂3.在Python中使用Pandas進行探索性分析

為了深入探索我們數(shù)據(jù),讓我把你介紹給另一個動物(好像Python是不夠?。┄C–Pandas

Pandas是Python最有用一個數(shù)據(jù)分析庫我知道這些名字聽起來很奇怪,但堅持下去!)它們對于增加一直在增加Python在數(shù)據(jù)科學(xué)界使用量起了很大作用。我們現(xiàn)在將使用Pandas從AnalyticsVidhya競賽中讀數(shù)據(jù)集,進行探索性分析,建立我們第一個基本分類算法來處理這一問題。

在加載數(shù)據(jù)之前,讓我們了解Pandas中2個關(guān)鍵數(shù)據(jù)結(jié)構(gòu)——序列和數(shù)據(jù)框序列和數(shù)據(jù)框介紹

序列能夠被了解為一個1維標(biāo)識/索引數(shù)組。你能夠經(jīng)過這些標(biāo)簽訪問這個序列各個元素。

一個數(shù)據(jù)框類似于Excel工作簿–你能夠使用列名來引用列,能夠經(jīng)過行號來訪問行數(shù)據(jù),本質(zhì)區(qū)分是,在數(shù)據(jù)幀中,列名和行號是列和行索引。

More:10MinutestoPandas實踐數(shù)據(jù)集——貸款預(yù)測問題

您能夠從這里下載數(shù)據(jù)集。這里是變量描述:

讓我們從數(shù)據(jù)探索開始

開始,經(jīng)過在你你終端/Windows命令提醒符鍵入下面代碼,來以InlinePylab模式開啟IPython界面:

這在PyLab環(huán)境下打開IPythonnotebook,其中有幾個有用庫已經(jīng)導(dǎo)入。另外,你將能夠繪制您數(shù)據(jù)內(nèi)聯(lián),這對于互動數(shù)據(jù)分析是一個非常好環(huán)境。你能夠經(jīng)過鍵入以下命令,檢驗環(huán)境是否正確加載了(并取得以下列圖所表示輸出):plot(arange(5))

我現(xiàn)在在Linux上工作,并已將數(shù)據(jù)集存放在以下位置:

/home/kunal/Downloads/Loan_Prediction/train.csv導(dǎo)入庫和數(shù)據(jù)集:下面是我們將在本教程中使用庫:numpymatplotlibpandas

請注意,你不需要導(dǎo)入matplotlib和NumPy,因為是在PyLab環(huán)境下。但我依然在代碼中保留了它們,以防你在不一樣環(huán)境中使用代碼。

導(dǎo)入庫以后,你能夠使用read_csv()函數(shù)讀數(shù)據(jù)集。這是直到這個階段代碼:快速數(shù)據(jù)探索

一旦你讀取了數(shù)據(jù),能夠經(jīng)過使用head()函數(shù)查看一下前幾行數(shù)據(jù):

這應(yīng)該打印10行?;蛘撸材軌蚪?jīng)過打印數(shù)據(jù)集來查看更多行。

接下來,你能夠使用describe()函數(shù)來查看數(shù)值字段概要:

describe()功效將提供計數(shù)、平均、標(biāo)準(zhǔn)差(STD),最小值,分位數(shù)值和最大值(讀這篇文章來更新基本統(tǒng)計數(shù)據(jù)了解人口分布)

這里有幾個結(jié)論,你能夠經(jīng)過查看describe()函數(shù)輸出得出:LoanAmount有(614–592)22個缺失值Loan_Amount_Term有(614–600)14個缺失值Credit_History有(614–564)50個缺失值我們還能夠看到84%申請者有credit_history,怎么樣,credit_history均值為0.84(記住,credit_history將那些有信用歷史值設(shè)置為1,沒有設(shè)置為0)ApplicantIncome分布似乎和expectation呈線性關(guān)系,CoapplicantIncome也是。

請注意,我們經(jīng)過比較平均值和中位數(shù),即50%位數(shù),來得到偏差概念。

對于非數(shù)值(比如property_area,credit_history等),我們能夠看看頻率分布,了解他們是否有意義。頻率表能夠經(jīng)過以下命令打?。?/p>

一樣地,我們能夠看看信用卡歷史唯一值。注意,dfname["column_name]是一個基本索引技術(shù),來訪問一個數(shù)據(jù)框特定列。它也能夠是列列表。想要了解更多信息,參考上面“Pandas10分鐘教程”資源共享。分布分析

現(xiàn)在我們熟悉了基本數(shù)據(jù)特征,讓我們研究不一樣變量分布情況。讓我們從數(shù)字變量開始–即applicantincome和LoanAmount

我們經(jīng)過繪制applicantincome直方圖開始,使用下面命令:

在這里,我們觀察到,有幾個極端值。這也是分箱值為50原因,就是為了清楚地描述它分布。

下一步,我們看箱線圖,了解分布。fare箱圖能夠使用下面代碼繪制:

這證實了大量離群值/極值存在。這能夠歸因于社會上收入差距。部分原因源于這么一個事實:我們正在查看不一樣教育水平人。讓我們依照他們所受教育進行分組:

我們能夠看到,碩士和非畢業(yè)生平均收入之間沒有實質(zhì)性區(qū)分。不過畢業(yè)生中高收入人群更多,它們出現(xiàn)在異常值點中。

現(xiàn)在,讓我們使用下面命令看看LoanAmount直方圖和箱線圖:

再次,有一些異常值。顯然,applicantincome和LoanAmount都需要進行一定數(shù)據(jù)處理。LoanAmount有一些缺失值以及一些異常值,而applicantincome有一些異常值,需要更深入了解。我們將在即將到來部分完成這些。分類變量分析

現(xiàn)在我們了解了applicantincome和loanincome分布,讓我們了解更多關(guān)于分類變量細節(jié)。我們將使用Excel數(shù)據(jù)透視表和交叉制表格調(diào)。比如,讓我們看看基于信用統(tǒng)計,能夠取得貸款可能性。這能夠在微軟Excel上使用一個透視表實現(xiàn):

注:這里貸款情況已被編碼,使用1代表yes,而0代表no,所以,所以均值代表了取得貸款概率。

現(xiàn)在我們將看看使用Python產(chǎn)生類似效果所需要步驟。請參考這篇文章,以使用Pandas取得不一樣數(shù)據(jù)操縱技術(shù)。

現(xiàn)在我們能夠觀察到,我們得到一個像微軟Excelpivot_table。這能夠使用matplotlib庫繪制成條形圖,使用下面代碼:

這表明,假如申請人有一個有效信用統(tǒng)計,取得貸款機會是沒有信用統(tǒng)計人八倍。你能夠依照Married,Self-Employed,Property_Area等繪制類似圖。

或著,這兩個圖能夠進行組合以后可視化,使用堆疊圖表示:

你還能夠再上圖中加入性別變量(類似于Excel中數(shù)據(jù)透視表)

假如你還沒有意識到,我們剛才在這里創(chuàng)建了兩個基本分類算法,一個基于信用歷史,而另一個基于2個分類變量(包含性別)。你能夠在AVDatahacks上很快編寫代碼來創(chuàng)建首次提交。

我們只看到我們怎樣使用Python中Pandas做探索性分析。我希望你對大熊貓(動物)愛現(xiàn)在增加了——給予一些幫助,這個庫能夠為你提供分析數(shù)據(jù)集。

接下來讓我們深入探討applicantincome和loanstatus變量,進行數(shù)據(jù)修改和創(chuàng)建一個數(shù)據(jù)集并應(yīng)用各種建模技術(shù)。我強烈要求你采取另一個數(shù)據(jù)集和習(xí)題,并在深入閱讀之前完成一個獨立例子。在Python中使用Pandas進行數(shù)據(jù)再加工4.數(shù)據(jù)修改–翻新需要

對于那些一直跟下來人來說,這時你必須穿上鞋才能開始跑。

在我們探索數(shù)據(jù)期間,我們發(fā)覺了數(shù)據(jù)集一些問題,在數(shù)據(jù)準(zhǔn)備好建立一個好模型之前需要處理。這個練習(xí)通常被稱為“數(shù)據(jù)修改”。這里是問題,我們已經(jīng)意識到:在一些變量中有缺失值。我們應(yīng)該基于丟失值數(shù)量明智地估量這些值并評定該變量主要性。當(dāng)我們查看數(shù)據(jù)分布時,我們看到,applicantincome和LoanAmount似乎在兩端都含有極端值。即使他們可能有直觀感覺,但應(yīng)適當(dāng)處理。

除了數(shù)值領(lǐng)域這些問題,我們也應(yīng)該看看非數(shù)值領(lǐng)域Gender,Property_Area,Married,Education和Dependents這些變量,看看它們是否包含任何有用信息。

假如你是Pandas新手,我提議在繼續(xù)前進之前閱讀這篇文章。它詳細介紹了一些有用數(shù)據(jù)處理技術(shù)。檢驗數(shù)據(jù)集中缺失值

讓我們看看全部變量中缺失值,因為大多數(shù)模型不能處理有缺失值數(shù)據(jù),即使他們能夠,輸入它們往往不能幫助更多。所以,讓我們看看數(shù)據(jù)集中空值/NAN值數(shù)量:

這個命令告訴我們每一列中缺失值數(shù)量,因為假如值為缺失值isnull()返回1。

即使缺失值數(shù)量不是很多,但許多變量都有缺失值,它們中每一個都應(yīng)該被估量和補充。經(jīng)過這篇文章對不一樣插值技術(shù)進行詳細了解。

注:記住,缺失值可能并不總是NaN。比如,假如loan_amount_term是0,它是有意義或者你認為是缺失?我想你答案是缺失,你是正確。所以我們應(yīng)該檢驗?zāi)切┎磺袑嶋H值。怎樣填補LoanAmount缺失值?

有許多方法來填補價值貸款金額缺失值,最簡單就是使用均值來替換,能夠經(jīng)過以下代碼實現(xiàn):另一個極端是能夠建立一個監(jiān)督學(xué)習(xí)模型來基于其余變量預(yù)測貸款金額,然后使用年紀(jì)以及其余變量來預(yù)測。

既然,現(xiàn)在目標(biāo)是講述數(shù)據(jù)修改步驟,我寧愿采取一個方法,它介于這2個極端方法之間。一個關(guān)鍵假設(shè)是,一個人是否受教育或是否自雇人士能夠結(jié)合起來,提供一個很好貸款金額估量。

首先,讓我們看看箱線圖看是否有某種趨勢存在:

所以我們看到在每一組中貸款金額中位數(shù)一些改變而這能夠用來估量值。但首先,我們必須確保每個self_employed和Education變量不應(yīng)該有缺失值。

如我們先前所說,self_employed有缺失值。讓我們看看頻率表:

因為~86%值是“No”,將缺失值估量為“No”是比較可靠,有很高成功概率。這能夠用下面代碼來完成:

現(xiàn)在,我們將創(chuàng)建一個數(shù)據(jù)透視表,它提供了我們?nèi)縀ducation和self_employed變量唯一值分組中位數(shù)。接下來,我們定義了一個函數(shù),它返回這些單元格值,并應(yīng)用它來填充丟失貸款金額值:

這應(yīng)該給你提供了一個估量貸款金額缺失值好方法。怎樣處理在LoanAmount和applicantincome分布中極值?

讓我們先分析LoanAmount。因為極端值可能是現(xiàn)實,即一些人可能會因為特定需求,申請高額貸款,。所以,不把它們當(dāng)做離群點對待,讓我們嘗試對數(shù)據(jù)轉(zhuǎn)換從而發(fā)揮它們作用:

再看直方圖:

現(xiàn)在分布看起來更靠近標(biāo)準(zhǔn),極端值影響已經(jīng)顯著消退。

來看看applicantincome。一個直覺能夠是一些申請人有較低收入,但有一個有力支持,共同申請者。所以將二者收入結(jié)合起來作為總收入可能是一個好主意,并采取相同對數(shù)變換。

現(xiàn)在我們看到,分布比以前好多了。我會把Gender,Married,Dependents,Loan_Amount_Term,Credit_History等缺失值估量留給你。另外,我激勵你考慮可能額外信息,能夠來自數(shù)據(jù)。比如,創(chuàng)建一個LoanAmount/TotalIncome列可能會有意義,因為它能給你一個關(guān)于申請人怎樣償還他貸款好想法。

下一步,我們將研究預(yù)測模型。5.使用Python中建立預(yù)測模型

之后,我們已經(jīng)使數(shù)據(jù)能夠用于建模,現(xiàn)在讓我們來看看Python代碼,來在我們數(shù)據(jù)集上創(chuàng)建一個預(yù)測模型。Skicit-kearn(sklearn)是Python中最慣用于此目標(biāo)庫,我們將跟隨這條小徑。我提議你經(jīng)過這篇文章來復(fù)習(xí)進修sklearn。

因為,sklearn要求全部輸入都是數(shù)字,我們應(yīng)該經(jīng)過編碼類別將我們?nèi)糠诸愖兞哭D(zhuǎn)換為數(shù)值型。這能夠用下面代碼來完成:

下一步,我們將導(dǎo)入所需模塊。然后,我們將定義一個通用分類函數(shù),它需要一個模型作為輸入,并確定準(zhǔn)確性度和交叉驗證分?jǐn)?shù)。因為這是一篇介紹性文章,我將不會進入編碼細節(jié)。請參考這篇文章得到詳細算法以及R和Python代碼。另外,經(jīng)過本文復(fù)習(xí)一下交叉驗證會愈加好,因為它是一個非常主要性能測量方法。邏輯回歸

讓我們做我們第一個邏輯回歸模型。一個方法就是把全部變量都加入模型,這可能會造成過分?jǐn)M合(假如你還不知道這個術(shù)語,不要擔(dān)心)。簡單說,考慮全部變量可能會造成模型了解出比較復(fù)雜關(guān)系,對于詳細數(shù)據(jù),不能很好概括。閱讀更多關(guān)于邏輯回歸。

我們能夠很輕易地作出一些直觀假設(shè)來設(shè)定開啟資金。取得貸款機會將更高:有信用統(tǒng)計申請人(記得我們在探索時觀察到?)申請人或著共同申請人具備較高收入申請申請人具備較高教育水平屬性在具備高增加前景城市地域

讓我們使用credit_history建立我們第一個模型。

準(zhǔn)確度:80.946%

交叉驗證得分:80.945%

準(zhǔn)確度:80.946%

交叉驗證得分:80.945%

通常來說,我們期望經(jīng)過增加變量來提升準(zhǔn)確度。但這是一個更具挑戰(zhàn)性案例。準(zhǔn)確度和交叉驗證得分不受那些影響較小變量影響。credit_history主導(dǎo)模式。我們現(xiàn)在有兩個選擇:工程特征:導(dǎo)出新信息并試圖預(yù)測。我將把這留給你創(chuàng)造力。愈加好建模技術(shù)。讓我們探索這個下一個。決議樹

決議樹是建立預(yù)測模型另一

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論