5.申请人收入分布似乎符合预期。与CoapplicantIncome相同。
请注意,我们可以通过比较平均值与中位数来了解数据中可能的偏差。
对于非数值(例如Property_Area,Credit_History等),我们可以查看频率分布来了解它们是否有意义。频率表可以通过以下命令打印输出:
df['Property_Area'].value_counts()
同样,我们可以看看信用历史的独特价值。请注意,dfname [‘column_name’]是一种基本的索引方法来访问dataframe的特定列。它也可以是一个列名的列表。
分布分析
现在我们熟悉基本的数据特征,我们来研究各种变量的分布。从数字变量ApplicantIncome和LoanAmount开始。
首先使用以下命令绘制ApplicantIncome的直方图:
df['ApplicantIncome'].hist(bins=50)

在这里我们观察到很少极端值。这也是为什么需要50个箱子来明确分配分配的原因。
接下来,我们来看一下箱线图来了解分布。箱线图可以通过以下方式绘制:
df.boxplot(column='ApplicantIncome')

这证实了许多异常值/极端值的存在。这可归因于社会的收入差距。部分原因可能是由于我们研究了不同教育水平的人。通过教育变量将其分离开:
df.boxplot(column='ApplicantIncome', by = 'Education')

我们可以看到大学和非大学的平均收入之间没有实质性差异。但是,高中高收入人数更多,这似乎是离群值。
现在,我们来看看变量LoanAmount的直方图和boxplot,使用以下命令:
df['LoanAmount'].hist(bins=50)df.boxplot(column='LoanAmount')


再次,有一些离群值。显然,ApplicantIncome和LoanAmount都需要一定量的数据清洗。 LoanAmount有缺失值和离群值,同时,ApplicantIncome有一些离群值,接下来我们将分几个部分,做更深入的了解。
分类变量的分析
现在我们了解ApplicantIncome和LoanIncome的分布,为了更详细地理解分类变量,我们将使用Excel的透视表和交叉表。例如,我们来看根据信用记录获得贷款的机会,这可以在MS Excel中使用数据透视表来实现:

注意:这里的贷款状态重编码了,1代表是,0代表否,平均值表示贷款的概率。
现在我们将看看使用Python生成类似洞察所需的步骤。
temp1 = df['Credit_History'].value_counts(ascending=True)temp2=df.pivot_table(values='Loan_Status',index=['Credit_History'],aggfunc=lambda x: x.map({'Y':1,'N':0}).mean())print 'Frequency Table for Credit History:'print temp1print 'nProbility of getting loan for each Credit History class:'print temp2
现在可以看到,我们得到一个类似MS Excel一样的透视表,这可以使用“matplotlib”库,用以下代码画条形图:
import matplotlib.pyplot as pltfig = plt.figure(figsize=(8,4))ax1 = fig.add_subplot(121)ax1.set_xlabel('Credit_History')ax1.set_ylabel('Count of Applicants')ax1.set_title("Applicants by Credit_History")temp1.plot(kind='bar')ax2 = fig.add_subplot(122)temp2.plot(kind = 'bar')ax2.set_xlabel('Credit_History')ax2.set_ylabel('Probability of getting loan')ax2.set_title("Probability of getting loan by credit history")
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-78832-5.html
自相矛盾前后不一似是而非的东西多的是
更是凭着优异的航速和猛烈的火力