機器學習預測貸款批准 | 2022機器學習專案 | Simplilearn

Find AI Tools
No difficulty
No complicated process
Find ai tools

機器學習預測貸款批准 | 2022機器學習專案 | Simplilearn

目錄

  • 介紹
  • 影片開場白
  • 程式碼說明
  • 遺失數據處理
  • 特徵工程
  • 訓練測試集拆分
  • 分類器模型比較
  • 預測結果

影片開場白 🎬

**在這段影片中,我們將帶您進行一場實驗室示範,示範如何使用Python進行貸款批准預測。在開始之前,我希望您可以清楚地看到屏幕並且音頻正常。如果是的話,請在留言區打上「是」。如果有任何問題,請在聊天區中告訴我們,我們會協助您解決。再強調一次,在開始之前,我希望您可以清楚地看到屏幕並且音頻正常。如果是的話,請在留言區打上「是」。如果有任何問題,請在聊天區中告訴我們,我們會協助您解決。讓我們再等一些時間,讓更多的人加入。等等,讓我先告訴大家一個消息,如果您是一個熱愛技術,正在不斷追尋最新科技趨勢的技術狂熱者,那麼請考慮訂閱我們的YouTube頻道,並按下鈴鐺圖示,不錯過Simply Learn的任何更新。再次強調,如果您是一個熱愛技術,正在不斷追尋最新科技趨勢的技術狂熱者,那麼請考慮訂閱我們的YouTube頻道,並按下鈴鐺圖示,不錯過Simply Learn的任何更新。好的,我想我們可以開始了。在今天的課程中,我們將介紹什麼是貸款預測系統,然後進行實際操作,進行貸款批准預測系統。接下來,我們將使用不同的分類算法來實現貸款批准預測系統。我們已經有一份貸款批准數據,我們將使用Python來執行不同的函數和庫。您可以從下面的描述框中下載這個數據集。在我們進入編程部分之前,讓我們討論一下貸款預測系統,並繼續進一步的說明。對於貸款預測系統,一個稱為"貸款預測系統"的機制可以用來申請貸款並在貸款根據申請人提供的數據來通知申請人可用的貸款。所以,這裡有一個問題,我將給你們一分鐘的時間回答這個問題,你們可以在評論區回答,或者在聊天區回答,這樣我就可以知道你們的答案是對還是錯。我在重複一次,這裡有一個問題,我將給你們一分鐘的時間回答這個問題,你們可以在評論區回答,或者在聊天區回答,這樣我就可以知道你們的答案是對還是錯。問題是,Python語言中使用哪個關鍵字來表示函數?選項一是Python,選項二是df,選項三是cfunc,選項四是define。讓我們在評論區討論你們的答案,好嗎?好的,那麼我們開始計時,一分鐘的時間,Python語言中使用哪個關鍵字表示函數?選項一是函數,選項二是def,選項三是cfunc,選項四是define。還有30秒,讓我們知道你的答案!這是一個很容易的問題,Python語言中使用哪個關鍵字表示函數?def、func、f或者define?我鼓勵每個人參與這個問題,以使這個直播課更有趣。所以我開始計時,Python語言中使用哪個關鍵字表示函數?選項一是函數,選項二是def,選項三是funk,選項四是define?還有一點時間,之後我們將宣布結果,那些給出正確答案的人將得到回答,而給出錯誤答案的人將得到正確答案,所以現在讓我們繼續我們的編程部分,實現貸款批准預測系統。所以首先我們將打開一個命令提示符,寫一個命令打開jupyter筆記本。所以我們將寫jupyter筆記本,按Enter。所以這是jupyter筆記本的登錄頁面,這裡您必須選擇"新的Python3文件"。這就是jupyter筆記本的用戶界面,所以我們首先導入一些重要的Python庫,它們將幫助我們創建一個貸款批准預測系統。所以這裡我會寫import numpy as np,所以numpy是一個用於處理數組的Python庫,它還具有用於線性代數和矩陣領域工作的函數,它是一個開源項目,您可以自由使用。numpy代表數值Python。第二行是import pandas as pd,pandas是用於Python編程語言的軟件庫,用於數據操作和分析,特別是為數值表和時間序列的操作和操作提供數據結構和操作。第三行是import matplotlib.pyplot as plt,所以matplotlib Python腳本可用於使用matplotlib.pyplot模塊創建2D圖形和圖表,用於控制線條風格字體屬性格式訪問和其他功能,它提供了一個名為pyplot的模塊,使作圖變得簡單。第四行是import seaborn as sns,所以seaborn是基於matplotlib的開源Python庫,用於數據探索和數據可視化,與Pandas庫一起使用非常方便。還有一個是from sklearn import svm,所以在導入庫後讓我們繼續導入數據集,所以我們將寫df = pd.read_csv('loan.csv'),您可以從下面的描述框中下載這個數據集,所以將數據集導入到df中,讓我們查看我們的數據集,所以我們將寫df.head(),是的,我們有一個頭五行的數據集,基本上head用於顯示數據集的前五行,如果我們使用tail而不是head,它將顯示數據集的最後五行。所以讓我們來點info函數來查看數據集的信息,所以這裡我們會寫df.info(),所以info方法打印了數據集的信息,數據包括列的總數,它們的標籤數據類型,內存使用範圍索引以及每列中單元格的數量,即非空值。注意,info方法確實打印了信息,所以在這裡您可以看到貸款ID是對象,然後此申請人收入是64位整數,共同申請人收入是浮點數,像這樣的無空值。所以我們知道了所有的列名數據類型和信息,讓我們繼續查看數據集中的缺失值,所以我們將寫df.isnull()。sum(),是的,我們在貸款ID中有0個缺失值, 性別是13,貸款金額是22,自僱業是32,所以我希望你們明白到這裡,如果你對代碼有任何問題或任何問題,只需在評論區留言, 我們的團隊會盡快為您提供正確的解決方案。我在重複一次,我希望你們明白到這裡,如果你對代碼有任何問題或任何問題,只需在評論區留言, 我們的團隊將盡快為您提供正確的解決方案。進一步,我們將創建一個名為“貸款金額日誌”的新列,使用貸款金額數據,然後我們將顯示該列的直方圖,好的,讓我先做一個,我可以更好地看到,是的,我會在這裡寫df['LoanAmount_Log'] = np.log(df['LoanAmount']),現在我們將寫df['LoanAmount_Log'].hist(bins=20),numpy.log是一個數學函數,它幫助用戶計算x的自然對數,其中x屬於所有輸入數組元素,你可以看到直方圖,它看起來很好,讓我們看看我們新列中的空值,所以我會在這裡寫df['LoanAmount_Log'].isnull().sum(),好的,這是失踪的值,我希望你們明白到這裡,如果你有任何問題或任何代碼的疑問,只需在評論區留言,我們的團隊將盡快為您提供正確的解決方案,進一步,我們將創建一個叫做總收入的新的列,我們將添加兩個列,即申請人收入和共同申請人收入,我們將顯示該列的直方圖,如此,我將寫在這裡total_income = df['ApplicantIncome'] + df['CoapplicantIncome'],然後我們將寫df['TotalIncome_Log'] = np.log(df['TotalIncome']),df['TotalIncome_Log'].hist(bins=20),你可以看到這是總收入日誌的直方圖,進一步,讓我們填補數據集中各列中的空值,所以我們將寫df['Gender'].fillna('NA', inplace=True),df['Married'].fillna(df['Married'].mode()[0], inplace=True),df['Self_Employed'].fillna(df['Self_Employed'].mode()[0], inplace=True),df['Dependents'].fillna(0, inplace=True),df['LoanAmount'].fillna(df['LoanAmount'].mean(), inplace=True),這裡我將寫df['Credit_History'].fillna(9, inplace=True),好的,現在沒有缺失值,我們要做的是選擇一些特定的列和行進行訓練和測試,所以我將寫在這裡x = df.iloc[:, 11:13].values,y = df.iloc[:, 12].values,我來看一看x的值,好的,這些是x的值,那我來看一看y的值,好的,iloc方法在Python中是在pandas模塊中定義的,它幫助我們選擇數據集中的特定行或列,通過使用索引值,接下來,我們將查看數據集中性別的缺失百分比,並對許多其他列進行相同的操作,好的,所以這裡我們會寫print('Percent of missing Gender:', df['Gender'].isnull().sum() / df['Gender'].shape[0] * 100),好的,這是性別列中缺失的百分比,非常好,讓我們繼續看取貸款的人數,按性別分組,好的,所以我會寫print('Number of People who Take Loan Group by Gender:\n', df['Gender'].value_counts()),所以在這裡你可以看到,男性是502個,女性是111個,你可以看到這個柱狀圖,那麼取貸款人數,按婚姻狀況分組,好的,我將從這裡複製,然後在這裡粘貼,所以我會寫print('Number of People who Take Loan Group by Marital Status:\n', df['Married'].value_counts()),所以在這裡你可以看到,有401個是已婚,213個是未婚,這是這種計數圖表的操作方式,這是一種計數圖技術,該程序接受以下參數,並將其列在下面,此參數接受數據或向量數據的長格式數據輸入的可選變量名,進一步,我們將查看按家屬人數分組的貸款人數,所以我們將粘貼它在這裡,然後更改名稱在這裡,好的,所以你可以看到依賴性,包括0的360個,1位的102個,2位的101個和14位的51個,等等,所以我們將看到按是否為自僱分組的貸款人數,所以這裡我將標籤更改為自僱,好的,让我們看看它这么一个条形图,所以我将写在这里print('Number of People who Take Loan Group by Self Employed:\n', df['Self_Employed'].value_counts()),好的,所以你可以看到,有大约52个是自僱的,408个不是自僱的,所以基于我的评估,我们的数据集中没有丢失的值,接下来,让我们导入用于训练和测试数据集的scikit-learn库,所以我将在这里写from sklearn.model_selection import train_test_split,scikit-learn(又称为Sklearn)是机器学习中最健壮的库之一, 它是建立在Numpy、Scipy和Matplotlib之上的开源工具包。它提供了一系列用于机器学习和统计建模的工具。这里我将写train_test_split函数,该函数可以将数组或矩阵随机拆分为训练集和测试集,标记编码器是一个用于对标记进行编码的工具, 使标签介于0和n_classes - 1之间的一个值,其中n是不同标签的数量,接下来,我们将拟合和转换训练数据,所以我将写在这里for i in range(0, 5): x_train[:, i] = LabelEncoder().fit_transform(x_train[:, i]) x_test[:, i] = LabelEncoder().fit_transform(x_test[:, i]),让我们看看预测结果,所以我将写在这里y_pred = rf_clf.predict(x_test),然后我将打印出来print('Accuracy of Random Forest Classifier: ', accuracy_score(y_pred, y_test)),那么我们来看一下预测的结果,使用随机森林分类器的准确性为78%,然后根据预测结果,1表示贷款批准,0表示贷款不批准,所以准确性较低,让我们看看另一个分类器的结果,使用朴素贝叶斯分类器,所以我将在这里写from sklearn.naive_bayes import GaussianNB gnb_clf = GaussianNB(),所以gnb_clf.fit(x_train, y_train),所以y_pred = gnb_clf.predict(x_test),然后我将打印出来print('Accuracy of Gaussian NB Classifier: ', accuracy_score(y_pred, y_test)),那么我们来看一下预测的结果,使用高斯朴素贝叶斯的准确性为80%,则根据预测的结果,1表示贷款批准,0表示贷款不批准,所以准确性为82%,那么我们看看另一种分类器的结果,使用决策树分类器,所以我将在这里写from sklearn.tree import DecisionTreeClassifier dt_clf = DecisionTreeClassifier(),所以dt_clf.fit(x_train, y_train) y_pred = dt_clf.predict(x_test)然后我将打印出来print('Accuracy of Decision Tree: ', accuracy_score(y_pred, y_test)),那么我们来看一下预测的结果,使用决策树的准确性为70%,所以准确性较低,那么根据预测得出的结果,1表示贷款批准,0表示贷款不批准,那么我们来看看使用K最近邻分类器的结果,所以我将在这里写from sklearn.neighbors import KNeighborsClassifier knn_clf = KNeighborsClassifier(),所以knn_clf.fit(x_train, y_train) y_pred = knn_clf.predict(x_test)然后我将打印出来print('Accuracy of K Neighbors: ', accuracy_score(y_pred, y_test)),那么我们来看一下预测的结果,K最近邻的准确性为79%,根据预测得出的结果,1表示贷款批准,0表示贷款不批准,所以可以看出,具有最高准确性的是朴素贝叶斯分类器,我们可以将其用于贷款批准预测系統,所以希望你們明白到這裡,如果對這段視頻有興趣,請訂閱我們的YouTube頻道並給這段視頻點贊,謝謝並繼續學習。嗨,如果您喜歡這個視頻,請訂閱Simply Learn的YouTube頻道,並在這裡觀看相似的視頻,獲得認證。點擊這裡還可以轉到相似的視頻。**

程式碼說明 ✨

在這個示範中,我們使用 Python 語言進行貸款批准預測。我們使用了 Pandas、NumPy、Matplotlib 和 Scikit-learn 等庫來處理數據並建立模型。以下是我們所執行的步驟:

遺失數據處理 📊

我們使用 Pandas 库中的 fillna 函數來填充數據集中的遺失值。我們的處理方式包括:

  • 使用众数填充“Gender”列中的遺失值。
  • 使用該列中的众数填充“Married”列中的遺失值。
  • 使用該列中的众數填充“Self_Employed”列中的遺失值。
  • 將數字0填充到“Dependents”列中的遺失值。
  • 使用該列的均值填充“LoanAmount”列中的遺失值。
  • 使用9填充“Credit_History”列中的遺失值。

最終,我們確認數據集中沒有遺失的值。

特徵工程 ⚙️

在這一步驟中,我們創建了兩個新的特徵列:LoanAmount_LogTotalIncome_LogLoanAmount_Log是根據LoanAmount創建的,而TotalIncome_Log是根據ApplicantIncomeCoapplicantIncome相加後創建的。我們使用 NumPy 函數 log 對這兩個特徵進行對數轉換。然後我們顯示了這兩個特徵列的直方圖。

訓練測試集拆分 📊

我們使用 scikit-learn 函数 train_test_split 將數據集拆分為訓練集和測試集。這樣我們就可以使用訓練集來訓練模型,然後使用測試集來評估模型的性能。

分類器模型比較 🧪

我們使用不同的分類器模型(隨機森林分類器、高斯朴素貝葉斯分類器、決策樹分類器和K最近鄰分類器)來預測貸款批准。我們計算了每個模型的準確率並比較它們的性能。

預測結果 📈

最終,我們通過這些模型對測試集進行預測並計算了它們的準確率。我們打印出了每個模型的準確率和相應的預測結果(1表示批准貸款,0表示不批准貸款)。

我們發現高斯朴素貝葉斯分類器在本示範中表現最佳,並建議將其用於貸款批准預測系統。

希望您喜歡這個示範!如果您有任何問題或疑問,請在評論區提出,我們的團隊將很樂意為您提供幫助。

FAQ

問:如何下載數據集?

答:您可以在本文的描述框中找到數據集的下載鏈接。

問:這些分類器模型可以應用在其他數據集上嗎?

答:是的,這些模型可以應用在任何類似的數據集上,只需稍微調整參數即可。

問:為什麼我們使用 LabelEncoder 函數?

答:LabelEncoder 函數可以將類別變量轉換為數值,以便進行模型訓練。

問:哪個分類器模型的準確性最高?

答:根據本示範,高斯朴素貝葉斯分類器的準確性最高,達到82%。

問:可以在這個示範中使用其他分類器模型嗎?

答:是的,您可以根據自己的需求和數據集使用其他分類器模型。

資源

Most people like

Are you spending too much time looking for ai tools?
App rating
4.9
AI Tools
100k+
Trusted Users
5000+
WHY YOU SHOULD CHOOSE TOOLIFY

TOOLIFY is the best ai tool source.