副问题[/!--empirenews.page--]
数据初探
起首导入要行使的科学计较包numpy,pandas,可视化matplotlib,seaborn,以及呆板进修包sklearn。
- import pandas as pd
- import numpy as np
- import seaborn as sns
- import matplotlib as mpl
-
- import matplotlib.pyplot as plt
- from IPython.display import display
- plt.style.use("fivethirtyeight")
- sns.set_style({'font.sans-serif':['simhei','Arial']})
- %matplotlib inline
-
-
- # 搜查Python版本
- from sys import version_info
- if version_info.major != 3:
- raise Exception('请行使Python 3 来完成此项目')
然后导入数据,并举办起源的调查,这些调查包罗相识数据特性的缺失值,非常值,以及或许的描写性统计。
- # 导入链家二手房数据
- lianjia_df = pd.read_csv('lianjia.csv')
- display(lianjia_df.head(n=2))

起源调查到一共有11个特性变量,Price 在这里是我们的方针变量,然后我们继承深入调查一下。
- # 搜查缺失值环境
- lianjia_df.info()

发明白数据集一共有23677条数据,个中Elevator特性有明明的缺失值。
- lianjia_df.describe()

上面功效给出了特性值是数值的一些统计值,包罗均匀数,尺度差,中位数,最小值,最大值,25%分位数,75%分位数。这些统计功效简朴直接,对付初始相识一个特性优劣很是有效,好比我们调查到 Size 特性 的最大值为1019平米,最小值为2平米,那么我们就要思索这个在现实中是不是存在的,假如不存在没故意义,那么这个数据就是一个非常值,会严峻影响模子的机能。
虽然,这只是起源调查,后续我们会用数据可视化来清楚的展示,并证实我们的揣摩。
- # 添加新特性衡宇均价
- df = lianjia_df.copy()
- df['PerPrice'] = lianjia_df['Price']/lianjia_df['Size']
-
- # 从头摆放各位置
- columns = ['Region', 'District', 'Garden', 'Layout', 'Floor', 'Year', 'Size', 'Elevator', 'Direction', 'Renovation', 'PerPrice', 'Price']
- df = pd.DataFrame(df, columns = columns)
-
- # 从头审阅数据集
- display(df.head(n=2)
我们发明 Id 特性着实没有什么现实意义,以是将其移除。因为衡宇单价说明起来较量利便,简朴的行使总价/面积就可获得,以是增进一个新的特性 PerPrice(只用于说明,不是猜测特性)。其它,特性的次序也被调解了一下,看起来较量惬意。

数据可视化说明
Region特性说明
对付地区特性,我们可以说明差异地区房价和数目的比拟。
- # 对二手房地区分组比拟二手房数目和每平米房价
- df_house_count = df.groupby('Region')['Price'].count().sort_values(ascending=False).to_frame().reset_index()
- df_house_mean = df.groupby('Region')['PerPrice'].mean().sort_values(ascending=False).to_frame().reset_index()
-
- f, [ax1,ax2,ax3] = plt.subplots(3,1,figsize=(20,15))
- sns.barplot(x='Region', y='PerPrice', palette="Blues_d", data=df_house_mean, ax=ax1)
- ax1.set_title('北京各大区二手房每平米单价比拟',fontsize=15)
- ax1.set_xlabel('地区')
- ax1.set_ylabel('每平米单价')
-
- sns.barplot(x='Region', y='Price', palette="Greens_d", data=df_house_count, ax=ax2)
- ax2.set_title('北京各大区二手房数目比拟',fontsize=15)
- ax2.set_xlabel('地区')
- ax2.set_ylabel('数目')
-
- sns.boxplot(x='Region', y='Price', data=df, ax=ax3)
- ax3.set_title('北京各大区二手房衡宇总价',fontsize=15)
- ax3.set_xlabel('地区')
- ax3.set_ylabel('衡宇总价')
-
- plt.show()



(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|