python大數(shù)據(jù)分析報(bào)告_第1頁
python大數(shù)據(jù)分析報(bào)告_第2頁
python大數(shù)據(jù)分析報(bào)告_第3頁
python大數(shù)據(jù)分析報(bào)告_第4頁
python大數(shù)據(jù)分析報(bào)告_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

python數(shù)據(jù)分析(pandas)幾年后發(fā)生了。在使用SAS工作超過5年后,我決定走出自己的舒適區(qū)。作為一種數(shù)據(jù)科學(xué)家,我尋找其他有用的工具的旅程開始了!幸運(yùn)的是,沒過多久我就決定,Python作為我的開胃菜。我總是有一種編寫代碼的傾向。這次我做的是我真正喜歡的。代碼。本來,寫代碼是如此輕易!我一周內(nèi)學(xué)會(huì)了Python基礎(chǔ)。并且,從那時(shí)起,我不僅深度探索了這門語言,并且也協(xié)助了許多人學(xué)習(xí)這門語言。Python是一種通用語言。不過,數(shù)年來,具有強(qiáng)大的小區(qū)支持,這一語言已經(jīng)有了專門的數(shù)據(jù)分析和預(yù)測(cè)模型庫。由于Python缺乏數(shù)據(jù)科學(xué)的資源,我決定寫這篇教程來協(xié)助他人更快地學(xué)習(xí)Python。在本教程中,我們將講授一點(diǎn)有關(guān)怎樣使用Python進(jìn)行數(shù)據(jù)分析的信息,咀嚼它,直到我們覺得舒適并可以自己去實(shí)踐。目錄1.數(shù)據(jù)分析的Python基礎(chǔ)為何學(xué)Python用來數(shù)據(jù)分析Python2.7v/s3.4怎樣安裝Python在Python上運(yùn)行某些簡(jiǎn)樸程序2.Python的庫和數(shù)據(jù)構(gòu)造Python的數(shù)據(jù)構(gòu)造Python的迭代和條件構(gòu)造Python庫3.在Python中使用Pandas進(jìn)行探索性分析序列和數(shù)據(jù)框的簡(jiǎn)介分析Vidhya數(shù)據(jù)集——貸款的預(yù)測(cè)問題

4.在Python中使用Pandas進(jìn)行數(shù)據(jù)再加工5.使用Python中建立預(yù)測(cè)模型邏輯回歸決策樹隨機(jī)森林讓我們開始吧1.數(shù)據(jù)分析的Python基礎(chǔ)為何學(xué)Python用來數(shù)據(jù)分析諸多人均有愛好選擇Python作為數(shù)據(jù)分析語言。這一段時(shí)間以來,我有比較過SAS和R。這里有某些原因來支持學(xué)習(xí)Python:開源——免費(fèi)安裝極好的在線小區(qū)很輕易學(xué)習(xí)可以成為一種通用的語言,用于基于Web的分析產(chǎn)品數(shù)據(jù)科學(xué)和生產(chǎn)中。不用說,它仍然有幾種缺陷:它是一種解釋性的語言,而不是編譯的語言,因此也許占用更多的CPU時(shí)間。然而,由于它節(jié)省了程序員的時(shí)間(由于學(xué)習(xí)的以便),它也許仍然是一種很好的選擇。Python2.7v/s3.4這是有關(guān)Python的一種最具爭(zhēng)議的話題。你也許總是不能防止碰到,尤其是假如你是一種初學(xué)者。這里沒有對(duì)的/錯(cuò)誤的選擇。它完全取決于詳細(xì)狀況和你的需要。我會(huì)嘗試給你某些提議,以協(xié)助你做出明智的選擇。為何選擇Python2.7極好的小區(qū)支持!這是你在初期需要的東西。Python2發(fā)行于末,已經(jīng)被使用超過。諸多第三方庫!雖然許多庫已經(jīng)提供了3.X的支持,但仍然有大量的模塊只工作在2.X。假如你計(jì)劃將Python用于詳細(xì)的應(yīng)

用,如Web開發(fā)這種高度依賴外部模塊的,你選擇2.7也許會(huì)更好。3.X版本的某些特性有向后兼容性,可以使用2.7版本。為何選擇Python3.4更整潔和更快!Python開發(fā)者修正了某些固有的問題和小缺陷,以此為未來建立一種強(qiáng)大的基礎(chǔ)。這些也許不是很有關(guān),但最終會(huì)很重要。這是未來!2.7是2.X族公布的最終一種版本,并且最終每個(gè)人都要轉(zhuǎn)移到3.X版本。Python3在過去5年已經(jīng)公布的穩(wěn)定版本,并將繼續(xù)。沒有明確的贏家,但我想,底線是,你應(yīng)當(dāng)專注于學(xué)習(xí)Python語言。版本之間的轉(zhuǎn)換應(yīng)當(dāng)只是一種時(shí)間問題。敬請(qǐng)期待,很快的未來一種專門對(duì)比Python2.X和3X的文章!怎樣安裝Python有兩種措施安裝Python你可以直接從項(xiàng)目網(wǎng)站下載Python,然后單獨(dú)安裝你想要的組件和庫或者,你可如下載并安裝一種包,它附帶了預(yù)裝的庫。我提議您下載Anaconda。另一種選擇是EnthoughtCanopyExpress。第二種措施提供了一種防止麻煩的安裝,因此我會(huì)推薦給初學(xué)者。這種措施是你必須等待整個(gè)包進(jìn)行升級(jí),

雖然你只是對(duì)一種單一的庫的最新版本感愛好。它應(yīng)當(dāng)不重要,直到和除非,直到和除非,你正在做的尖端記錄研究。選擇開發(fā)環(huán)境一旦你已經(jīng)安裝了Python,選擇環(huán)境可以有諸多種選擇。這里是3個(gè)最常見的選擇:終端/基于ShellIDLE(默認(rèn)環(huán)境)iPythonnotebook——類似于R的markdown而環(huán)境權(quán)取決于你的需要,我個(gè)人更喜歡iPythonnotebook一點(diǎn)。它提供了許多良好的功能,編寫代碼的同步還可以用于記錄,你可以選擇在上面運(yùn)行代碼塊(而不是一行一行的執(zhí)行)。我們?cè)谡麄€(gè)教程中將使用Ipython環(huán)境熱身:跑第一種Python程序你可以使用Python作為一種簡(jiǎn)樸的計(jì)算器來開始:有某些事情需要注意:你可以在你的終端/CMD鍵入“IPythonnotebook”來啟動(dòng)IPythonnotebook,這取決于你的工作在操作系統(tǒng)你可以通過簡(jiǎn)樸地點(diǎn)擊上面截圖中的名字來對(duì)IPythonnotebook命名界面顯示In[*]代表輸入和Out[*]代表輸出。你可以通過按“Shift+Enter”或“ALT+Enter”來執(zhí)行代碼,假如你背面還想插入一行。在我們深入挖掘怎樣處理問題之前,讓我們退后一步,理解Python的基本知識(shí)。當(dāng)我們懂得數(shù)據(jù)構(gòu)造和迭代和條件構(gòu)造是形成任何語言的關(guān)鍵。在Python中,這些包括列表、字符串、元組、字典、for循環(huán),while循環(huán),if-else等等,讓我們來看看下面的原因。2.在Python上運(yùn)行某些簡(jiǎn)樸程序Python的數(shù)據(jù)構(gòu)造如下是Python中使用的某些數(shù)據(jù)構(gòu)造。你應(yīng)當(dāng)熟悉他們,以便恰當(dāng)?shù)氖褂盟鼈?。列表——列表是在Python中最通用的數(shù)據(jù)構(gòu)造。列表可以這樣簡(jiǎn)樸的定義:就是在方括號(hào)中一系列用逗號(hào)來分隔的值。列表也許包括不一樣類型的項(xiàng),但它們一般均有相似類型的。Python列表是可變的,列表中的單個(gè)元素是可以變化的。這里是一種迅速的例子,定義了一種列表,然后訪問它:字符串——字符串可以簡(jiǎn)樸的使用單引號(hào)(")、雙引號(hào)(”)或三引號(hào)(’’’)來定義。字符串封閉三引號(hào)(’’’)中可以跨越多行的代碼,在文檔字符串中是很常用的(記錄功能的Python方式)。作為一種轉(zhuǎn)義字符。請(qǐng)注意,Python中的字符串是不可變的,因此你不能變化字符串的部分。元組——元組由一系列由逗號(hào)分隔的值表達(dá)。元組是不可變的,輸出的用括號(hào)包圍,目的是嵌套構(gòu)造可以被對(duì)的處理。此外,盡管元組是不可變的,但它們可以在必要是具有可變數(shù)據(jù)。由于元組是不可變的,不可變化的,他們相對(duì)列表來說可以處理的更快。因此,假如你的清單是不也許變化的,你應(yīng)當(dāng)使用元組,而不是列表。字典——字典是鍵:值對(duì)一種無序集合,規(guī)定鍵是唯一的(在一種字典里)。一對(duì)大括號(hào)創(chuàng)立一種空的字典:{}。Python的迭代和條件構(gòu)造和大多數(shù)語言同樣,Python也有一種FOR循環(huán),這是最廣泛使用的迭代措施。它有一種簡(jiǎn)樸的語法:這里的“Python的迭代可以是列表、元組或其他先進(jìn)的數(shù)據(jù)構(gòu)造,我們將在背面的章節(jié)中探討。讓我們來看看一種簡(jiǎn)樸的例子,確定一種數(shù)字的因子。來看看條件語句,它們是用來基于條件執(zhí)行代碼片段。最常用的構(gòu)造是if-else,有如下語法:例如,假如我們想打印出某個(gè)數(shù)字n是偶數(shù)還是奇數(shù):既然你熟悉了Python的基礎(chǔ),我們來更近一步。假如你像完畢如下任務(wù):乘2矩陣求二次方程的根繪制條形圖和直方圖建立記錄模型訪問網(wǎng)頁假如你想從零開始寫代碼,它將是一場(chǎng)惡夢(mèng),你使用Python不會(huì)超過2天!但不要緊張這些。值得慶幸的是,有許多預(yù)定義的庫,我們可以直接導(dǎo)入到我們的代碼,使我們的生活很輕易。例如,考慮我們剛剛看到的因子的例子。我們可以一步就完畢:當(dāng)然,為了這樣我們需要導(dǎo)入的math庫。讓我們探索下一種不一樣的庫。Python庫在開始我們的學(xué)習(xí)Python之旅之前,讓我們先一步,理解某些有用的python庫。第一步顯然是要學(xué)會(huì)將它們導(dǎo)入到我們的環(huán)境中。在Python中有如下幾種措施:在第一種方式中,我們已經(jīng)為math庫定義了一種別名m。目前我們可以使用數(shù)學(xué)庫的多種功能(例如階乘,通過引用別名m.factorial())。第二方式,你需要導(dǎo)入math的整個(gè)命名空間,你可以直接使用factorial(),而不用提到math。提醒:google推薦您使用第一種方式導(dǎo)入庫,由于您將懂得函數(shù)來自何處。下面是一種庫列表,你將在任何科學(xué)計(jì)算和數(shù)據(jù)分析中用到:NumPy代表數(shù)值Python。NumPy最強(qiáng)大的功能是n維數(shù)組。該庫還包括基本的線性代數(shù)函數(shù),傅里葉變換,高級(jí)的隨機(jī)數(shù)功能,以及集成其他低級(jí)語言如Fortran,C和C++的工具。SciPy代表科學(xué)的Python。SciPy是基于NumPy的。它是最有用的庫之一,具有多種高層次的科學(xué)和工程模塊,如離散傅立葉變換,線性代數(shù),優(yōu)化和稀疏矩陣。Matplotlib用于繪制多種各樣的圖表,從直方圖到線圖,再到熱圖。你可以在IPythonnotebook中使用PyLab(IPythonnotebook–PyLab=inline)以此使用這些繪圖功能的inline。假如你忽視inline選項(xiàng),PyLab會(huì)將IPythonnotebook環(huán)境轉(zhuǎn)換成類似于Matlab的環(huán)境。你也可以使用Latex命令將math庫添加到您的繪圖中。Pandas對(duì)于構(gòu)造化數(shù)據(jù)操作和控制。它廣泛用于數(shù)據(jù)再加工和數(shù)據(jù)準(zhǔn)備。Pandas說近來一直在推進(jìn)對(duì)PythonPython的使用數(shù)據(jù)科學(xué)家共同體的工具。ScikitLearn機(jī)器學(xué)習(xí)庫。建立在NumPy、SciPy和matplotlib的基礎(chǔ)上,這個(gè)庫包括了機(jī)器學(xué)習(xí)和記錄模型包括分類、回歸、聚類和降維等諸多有效的工具。Statsmodels用于記錄建模。statsmodels是一種Python模塊,容許顧客探索數(shù)據(jù),估計(jì)記錄模型,并進(jìn)行記錄檢查。一種廣泛的描述性記錄,記錄檢查的列表。繪圖功能,和成果記錄可用于不一樣類型的數(shù)據(jù)和每個(gè)估計(jì)。Seaborn用于記錄數(shù)據(jù)的可視化。Seaborn是Python中用來繪制讓人喜歡的并能提供大量信息的記錄圖形庫。它是基于matplotlib。Seaborn意在使可視化成為探索和理解數(shù)據(jù)的關(guān)鍵部分。Bokeh創(chuàng)立交互式圖、儀表盤和現(xiàn)代Web瀏覽器上的數(shù)據(jù)應(yīng)用。它容許顧客生成的優(yōu)雅和簡(jiǎn)潔的d3.js風(fēng)格的圖形。此外,在非常大的或流媒體數(shù)據(jù)集上,它具有高性能的交互性的能力。Blaze擴(kuò)展NumPy和Pandas的分布式和流媒體數(shù)據(jù)集。它可以用來訪問來自多種來源的數(shù)據(jù),包括bcolz,MongoDB,SQLAlchemy,ApacheSpark,PyTables等等,結(jié)合Bokeh,Blaze可以作為一種非常強(qiáng)大的工具,用于對(duì)大規(guī)模數(shù)據(jù)創(chuàng)立高效的的可視化和儀表板。Scrapy用于網(wǎng)絡(luò)爬蟲。它是用于獲取特定數(shù)據(jù)模式的一種非常有用的框架,。它可以通過開始的一種網(wǎng)站主頁的網(wǎng)址,然后通過挖掘網(wǎng)頁內(nèi)的網(wǎng)站搜集信息。SymPy用于符號(hào)計(jì)算。它具有廣泛的功能,從基本的符號(hào)運(yùn)算到微積分,代數(shù),離散數(shù)學(xué)和量子物理學(xué)。另一種有用的功能是將計(jì)算的成果格式化為L(zhǎng)aTeX碼的能力。Requests用于訪問網(wǎng)絡(luò)。它的工作原理類似于Python原則庫urllib2,不過更輕易編碼。但對(duì)于初學(xué)者,你會(huì)發(fā)現(xiàn)和urllib2細(xì)微的差異,Requests也許更以便。其他的庫,你也許需要:os用于操作系統(tǒng)和文獻(xiàn)操作networkx和igraph基于數(shù)據(jù)操作繪制圖形regularexpressions用于在文本數(shù)據(jù)中查找模式BeautifulSoup將探索Web。它不如Scrapy,它一次運(yùn)行將從一種單一的網(wǎng)頁中提取信息。目前我們已經(jīng)熟悉Python的基礎(chǔ)和更多的庫,讓我們深入到通過Python處理問題。是的,我的意思是做一種預(yù)測(cè)模型!在這個(gè)過程中,我們使用了某些強(qiáng)大的庫,也碰到了下一級(jí)的數(shù)據(jù)構(gòu)造。我們將帶你通過這3個(gè)關(guān)鍵階段:數(shù)據(jù)探索—從我們所擁有的數(shù)據(jù)中發(fā)現(xiàn)更多數(shù)據(jù)修改—清理數(shù)據(jù)和并修改它使它更適合用來記錄建模預(yù)測(cè)建?!\(yùn)行的實(shí)際算法,自得其樂3.在Python中使用Pandas進(jìn)行探索性分析為了深入探索我們的數(shù)據(jù),讓我把你簡(jiǎn)介給另一種動(dòng)物(仿佛Python是不夠的!)––PandasPandas是Python最有用的一種數(shù)據(jù)分析庫的我懂得這些名字聽起來很奇怪,但堅(jiān)持下去?。┧鼈儗?duì)于增長(zhǎng)一直在增長(zhǎng)Python在數(shù)據(jù)科學(xué)界的使用量起了很大的作用。我們目前將使用Pandas從AnalyticsVidhya的競(jìng)賽中讀數(shù)據(jù)集,進(jìn)行探索性分析,建立我們的第一種基本分類算法來處理這一問題。在加載數(shù)據(jù)之前,讓我們理解Pandas中的2個(gè)關(guān)鍵的數(shù)據(jù)構(gòu)造——序列和數(shù)據(jù)框序列和數(shù)據(jù)框的簡(jiǎn)介序列可以被理解為一種1維標(biāo)識(shí)/索引數(shù)組。你可以通過這些標(biāo)簽訪問這個(gè)序列的各個(gè)元素。一種數(shù)據(jù)框類似于Excel工作簿–你可以使用列名來引用列,可以通過行號(hào)來訪問行數(shù)據(jù),本質(zhì)的區(qū)別是,在數(shù)據(jù)幀中,列名和行號(hào)是列和行的索引。More:10MinutestoPandas實(shí)踐數(shù)據(jù)集——貸款預(yù)測(cè)問題您可以從這里下載數(shù)據(jù)集。這里是變量的描述:讓我們從數(shù)據(jù)探索開始開始,通過在你的你的終端/Windows命令提醒符鍵入下面的代碼,來以InlinePylab模式啟動(dòng)IPython界面:這在PyLab環(huán)境下打開IPythonnotebook,其中有幾種有用的庫已經(jīng)導(dǎo)入。此外,你將可以繪制您的數(shù)據(jù)內(nèi)聯(lián),這對(duì)于互動(dòng)的數(shù)據(jù)分析是一種非常好的環(huán)境。你可以通過鍵入如下命令,檢查環(huán)境與否對(duì)的的加載了(并獲得如下圖所示的輸出):plot(arange(5))我目前在Linux上工作,并已將數(shù)據(jù)集存儲(chǔ)在如下位置:

/home/kunal/Downloads/Loan_Prediction/train.csv導(dǎo)入庫和數(shù)據(jù)集:下面是我們將在本教程中使用的庫:numpymatplotlibpandas請(qǐng)注意,你不需要導(dǎo)入matplotlib和NumPy,由于是在PyLab環(huán)境下。但我仍然在代碼中保留了它們,以防你在不一樣的環(huán)境中使用代碼。導(dǎo)入庫后來,你可以使用read_csv()函數(shù)讀數(shù)據(jù)集。這是直到這個(gè)階段的代碼:迅速數(shù)據(jù)探索一旦你讀取了數(shù)據(jù),可以通過使用head()函數(shù)查看一下前幾行的數(shù)據(jù):這應(yīng)當(dāng)打印10行。或者,您也可以通過打印數(shù)據(jù)集來查看更多的行。接下來,你可以使用describe()函數(shù)來查看數(shù)值字段的概要:describe()功能將提供計(jì)數(shù)、平均、原則差(STD),最小值,分位數(shù)值和最大值(讀這篇文章來更新基本記錄數(shù)據(jù)理解人口分布)這里有幾種結(jié)論,你可以通過查看describe()函數(shù)的輸出得出:LoanAmount有(614–592)22個(gè)缺失值Loan_Amount_Term有(614–600)14個(gè)缺失值Credit_History有(614–564)50個(gè)缺失值我們還可以看到84%的申請(qǐng)者有credit_history,怎么樣,credit_history的均值為0.84(記住,credit_history將那些有信用歷史的值設(shè)置為1,沒有的設(shè)置為0)ApplicantIncome的分布似乎和expectation呈線性關(guān)系,CoapplicantIncome也是。請(qǐng)注意,我們通過比較的平均值和中位數(shù),即50%位數(shù),來得到偏差的概念。對(duì)于非數(shù)值(例如property_area,credit_history等),我們可以看看頻率分布,理解他們與否故意義。頻率表可以通過如下命令打?。和瑯拥?,我們可以看看信用卡歷史的唯一值。注意,dfname["column_name]是一種基本的索引技術(shù),來訪問一種數(shù)據(jù)框的特定的列。它也可以是列的列表。想要理解更多信息,參照上面的“Pandas10分鐘教程”的資源共享。分布分析目前我們熟悉了基本的數(shù)據(jù)特性,讓我們研究不一樣變量的分布狀況。讓我們從數(shù)字變量開始–即applicantincome和LoanAmount我們通過繪制applicantincome的直方圖開始,使用下面的命令:在這里,我們觀測(cè)到,有幾種極端值。這也是分箱值為50的原因,就是為了清晰地描述它的分布。下一步,我們看箱線圖,理解分布。fare的箱圖可以使用下面代碼繪制:這證明了大量的離群值/極值的存在。這可以歸因于社會(huì)上的收入差距。部分原因源于這樣一種事實(shí):我們正在查看不一樣的教育水平的人。讓我們根據(jù)他們所受的教育進(jìn)行分組:我們可以看到,碩士和非畢業(yè)生的平均收入之間沒有實(shí)質(zhì)性的區(qū)別。不過畢業(yè)生中高收入的人群更多,它們出目前異常值的點(diǎn)中。目前,讓我們使用下面的命令看看LoanAmount的直方圖和箱線圖:再次,有某些異常的值。顯然,applicantincome和LoanAmount都需要進(jìn)行一定的數(shù)據(jù)處理。LoanAmount有某些缺失值以及某些異常的值,而applicantincome有某些異常值,需要更深入的理解。我們將在即將到來的部分完畢這些。分類變量的分析目前我們理解了applicantincome和loanincome的分布,讓我們理解更多有關(guān)分類變量的細(xì)節(jié)。我們將使用Excel數(shù)據(jù)透視表和交叉制表的風(fēng)格。例如,讓我們看看基于信用記錄,可以獲得貸款的也許性。這可以在微軟的Excel上使用一種透視表實(shí)現(xiàn):注:這里的貸款狀況已被編碼,使用1代表yes,而0代表no,因此,因此均值代表了獲得貸款的概率。目前我們將看看使用Python產(chǎn)生類似的效果所需要的環(huán)節(jié)。請(qǐng)參照這篇文章,以使用Pandas獲得不一樣的數(shù)據(jù)操縱技術(shù)。目前我們可以觀測(cè)到,我們得到一種像微軟的Excel的pivot_table。這可以使用matplotlib庫繪制成條形圖,使用下面的代碼:這表明,假如申請(qǐng)人有一種有效的信用記錄,獲得貸款的機(jī)會(huì)是沒有信用記錄的人的八倍。你可以根據(jù)Married,Self-Employed,Property_Area等繪制類似的圖。或著,這兩個(gè)圖可以進(jìn)行組合后來的可視化,使用堆疊圖表達(dá):你還可以再上圖中加入性別變量(類似于Excel中的數(shù)據(jù)透視表)假如你還沒故意識(shí)到,我們剛剛在這里創(chuàng)立了兩個(gè)基本的分類算法,一種基于信用歷史,而另一種基于2個(gè)分類變量(包括性別)。你可以在AVDatahacks上很快的編寫代碼來創(chuàng)立初次提交。我們只看到我們?cè)鯓邮褂肞ython中的Pandas做探索性分析。我但愿你對(duì)大熊貓(動(dòng)物)的愛目前增長(zhǎng)了——予以某些協(xié)助,這個(gè)庫可認(rèn)為你提供分析數(shù)據(jù)集。接下來讓我們深入探討applicantincome和loanstatus變量,進(jìn)行數(shù)據(jù)修改和創(chuàng)立一種數(shù)據(jù)集并應(yīng)用多種建模技術(shù)。我強(qiáng)烈規(guī)定你采用另一種數(shù)據(jù)集和習(xí)題,并在深入閱讀之前完畢一種獨(dú)立的例子。在Python中使用Pandas進(jìn)行數(shù)據(jù)再加工4.數(shù)據(jù)修改–翻新的需要對(duì)于那些一直跟下來的人來說,這時(shí)你必須穿上鞋才能開始跑。

在我們的探索數(shù)據(jù)期間,我們發(fā)現(xiàn)了數(shù)據(jù)集的某些問題,在數(shù)據(jù)準(zhǔn)備好建立一種好的模型之前需要處理。這個(gè)練習(xí)一般被稱為“數(shù)據(jù)修改”。這里是問題,我們已經(jīng)意識(shí)到的:在某些變量中有缺失值。我們應(yīng)當(dāng)基于丟失的值的數(shù)量明智地估計(jì)這些值并評(píng)估該變量的重要性。當(dāng)我們查看數(shù)據(jù)的分布時(shí),我們看到,applicantincome和LoanAmount似乎在兩端都具有極端值。雖然他們也許有直觀的感覺,但應(yīng)合適處理。除了數(shù)值領(lǐng)域的這些問題,我們也應(yīng)當(dāng)看看非數(shù)值領(lǐng)域Gender,Property_Area,Married,Education和Dependents這些變量,看看它們與否包括任何有用的信息。假如你是Pandas的新手,我提議在繼續(xù)前進(jìn)之前閱讀這篇文章。它詳細(xì)簡(jiǎn)介了某些有用的數(shù)據(jù)處理技術(shù)。檢查數(shù)據(jù)集中的缺失值讓我們看看所有的變量中的缺失值,由于大多數(shù)模型不能處理有缺失值的數(shù)據(jù),雖然他們可以,輸入它們往往不能協(xié)助更多。因此,讓我們看看數(shù)據(jù)集中空值/NAN值的數(shù)量:這個(gè)命令告訴我們每一列中缺失值的數(shù)量,由于假如值為缺失值isnull()返回1。雖然缺失值數(shù)量不是諸多,但許多變量均有缺失值,它們中的每一種都應(yīng)當(dāng)被估計(jì)和補(bǔ)充。通過這篇文章對(duì)不一樣的插值技術(shù)進(jìn)行詳細(xì)理解。注:記住,缺失值也許并不總是NaN。例如,假如loan_amount_term是0,它是故意義的或者你認(rèn)為是缺失的?我想你的答案是缺失的,你是對(duì)的。因此我們應(yīng)當(dāng)檢查那些不切實(shí)際的值。怎樣彌補(bǔ)LoanAmount的缺失值?有許多措施來彌補(bǔ)價(jià)值貸款金額的缺失值,最簡(jiǎn)樸的就是使用均值來替代,可以通過如下代碼實(shí)現(xiàn):另一種極端是可以建立一種監(jiān)督學(xué)習(xí)模型來基于其他變量預(yù)測(cè)貸款金額,然后使用年齡以及其他變量來預(yù)測(cè)。既然,目前的目的是講述數(shù)據(jù)修改的環(huán)節(jié),我寧愿采用一種措施,它介于這2個(gè)極端措施之間。一種關(guān)鍵的假設(shè)是,一種人與否受教育的或與否自雇人士可以結(jié)合起來,提供一種很好的貸款金額的估計(jì)。首先,讓我們看看箱線圖看與否有某種趨勢(shì)存在:因此我們看到在每一組中貸款金額的中位數(shù)的某些變化而這可以用來估計(jì)值。但首先,我們必須保證每個(gè)self_employed和Education變量不應(yīng)當(dāng)有缺失值。如我們先前所說,self_employed有缺失值。讓我們看看頻率表:由于~86%的值是“No”,將缺失值估計(jì)為“No”是比較可靠的,有很高的成功概率。這可以用下面的代碼來完畢:目前,我們將創(chuàng)立一種數(shù)據(jù)透視表,它提供了我們所有Education和self_employed變量的唯一值分組的中位數(shù)。接下來,我們定義了一種函數(shù),它返回這些單元格的值,并應(yīng)用它來填充丟失的貸款金額的值:這應(yīng)當(dāng)給你提供了一種估計(jì)貸款金額的缺失值好措施。怎樣處理在LoanAmount和applicantincome分布中的極值?讓我們先分析LoanAmount。由于極端值也許是現(xiàn)實(shí)的的,即某些人也許會(huì)由于特定的需求,申請(qǐng)高額的貸款,。因此,不把它們當(dāng)做離群點(diǎn)看待,讓我們嘗試對(duì)數(shù)據(jù)轉(zhuǎn)換從而發(fā)揮它們的作用:再看直方圖:目前的分布看起來更靠近原則的,極端值的影響已經(jīng)顯著消退。來看看applicantincome。一種直覺可以是某些申請(qǐng)人有較低的收入,但有一種有力的支持,共同申請(qǐng)者。因此將兩者的收入結(jié)合起來作為總收入也許是一種好主意,并采用相似的對(duì)數(shù)變換。目前我們看到,分布比此前好多了。我會(huì)把Gender,Married,Dependents,Loan_Amount_Term,Credit_History等缺失值的估計(jì)留給你。此外,我鼓勵(lì)你考慮也許的額外的信息,可以來自數(shù)據(jù)。例如,創(chuàng)立一種LoanAmount/TotalIncome列也許會(huì)故意義,由于它能給你一種有關(guān)申請(qǐng)人怎樣償還他的貸款的好想法。下一步,我們將研究預(yù)測(cè)模型。5.使用Python中建立預(yù)測(cè)模型之后,我們已經(jīng)使數(shù)據(jù)可以用于建模,目前讓我們來看看Python代碼,來在我們的數(shù)據(jù)集上創(chuàng)立一種預(yù)測(cè)模型。Skicit-kearn(sklearn)是Python中最常用于此目的的庫,我們將跟隨這條小徑。我提議你通過這篇文章來復(fù)習(xí)進(jìn)修sklearn。由于,sklearn規(guī)定所有輸入都是數(shù)字,我們應(yīng)當(dāng)通過編碼類別將我們所有的分類變量轉(zhuǎn)換為數(shù)值型。這可以用下面的代碼來完畢:下一步,我們將導(dǎo)入所需的模塊。然后,我們將定義一種通用的分類函數(shù),它需要一種模型作為輸入,并確定精確性度和交叉驗(yàn)證分?jǐn)?shù)。由于這是一篇簡(jiǎn)介性文章,我將不會(huì)進(jìn)入編碼的細(xì)節(jié)。請(qǐng)參照這篇文章得到詳細(xì)的算法以及R和Python的代碼。此外,通過本文復(fù)習(xí)一下交叉驗(yàn)證會(huì)更好,由于它是一種非常重要的性能測(cè)量措施。邏輯回歸讓我們做我們的第一種邏輯回歸模型。一種措施就是把所有的變量都加入模型,這也許會(huì)導(dǎo)致過度擬合(假如你還不懂得這個(gè)術(shù)語,不要緊張)。簡(jiǎn)樸的說,考慮所有的變量也許會(huì)導(dǎo)致模型的理解出比較復(fù)雜的關(guān)系,對(duì)于詳細(xì)的數(shù)據(jù),不能很好的概括。閱讀更多有關(guān)邏輯回歸。我們可以很輕易地作出某些直觀的假設(shè)來設(shè)定啟動(dòng)資金。獲得貸款的機(jī)會(huì)將更高:有信用記錄的申請(qǐng)人(記得我們?cè)谔剿鲿r(shí)觀測(cè)到的?)申請(qǐng)人或著共同申請(qǐng)人具有較高收入的申請(qǐng)申請(qǐng)人具有較高的教育水平屬性在具有高增長(zhǎng)前景的都市地區(qū)讓我們使用credit_history建立我們的第一種模型。精確度:80.946%

交叉驗(yàn)證得分:80.945%精確度:80.946%

交叉驗(yàn)證得分:80.945%一般來說,我們期望通過增長(zhǎng)變量來提高精確度。但這是一種更具挑戰(zhàn)性的案例。精確度和交叉驗(yàn)證得分不受那些影響較小變量的影響。credit_history主導(dǎo)模式。我們目前有兩個(gè)選擇:工程特性:導(dǎo)出新信息并試圖預(yù)測(cè)。我將把這留給你的發(fā)明力。更好的建模技術(shù)。讓我們探索這個(gè)下一種。決策樹決策樹是建

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論