使用Python探索性数据分析
除了是二十世纪最性感的工作之外,Data Science还是 Andrew Ng引用的新电力。来自各个学科和领域的许多专业人员正在寻求向分析领域的过渡,并使用数据科学来解决跨多个渠道的各种问题。作为一项跨学科研究,可以轻松地挖掘各种运营的数据,并帮助决策者做出相关结论以实现可持续增长。
数据科学领域包括各种组件,例如数据分析,机器学习,深度学习和商业智能等。含义根据业务需求及其工作流程而有所不同。在一家公司中,一个数据科学项目总是由具有不同技能的人员组成,因为各种细节必须由不同的人来照顾。
现在可能会出现问题–什么是数据科学?数据科学不过是使用多种工具和技术来为企业挖掘相关数据以获取见解并做出适当决策的一种方式。分析可以分为描述性分析和预测性分析。虽然描述性分析处理清洁,修改,整理和以图表形式向利益相关者展示数据,但另一方面,预测性分析是建立可预测未来场景的强大模型。
在此博客中,我们将讨论探索性数据分析,从某种意义上说,探索性数据分析是一种描述性分析过程,并且是数据科学项目中最重要的部分之一。在开始构建模型之前,您的数据应准确无误,无重复,值缺失等。还应该对其进行适当分析,以找到可以做出最佳预测的相关特征。
Python中的探索性数据分析
Python是用途最广泛的最灵活的编程语言之一。Python和R之间存在争论,哪一个最适合数据科学。但是,我认为没有固定的语言,它完全取决于个人。我个人更喜欢Python,因为它易于使用且功能广泛。当然,在探索数据时,Python提供了许多直观的库来从各个方向使用和分析数据。
为了进行探索性数据分析,我们将使用房屋价格数据集,这是一个回归问题。数据集可以从这里下载。
以下是数据中各列的说明。
SalePrice –这是我们需要根据其他功能进行预测的目标变量。以美元为单位,定义了每个物业的价格。
MSSubClass –这是建筑物的类。
MSZoning –在此列中对区域进行了分类。
LotFrontage –关于属性,此处提供了与其相连的街道的线性英尺值。
LotArea –单位为平方英尺的大小。
街道–道路通行类型。
胡同–胡同通道类型。
LotShape –一般的属性形状。
LandContour –属性平面度由此列定义。
实用程序–可用的实用程序类型。
LotConfig –配置批次。
LandSlope –属性坡度。
邻居–在Amies城市范围内,实际位置。
条件1 –主干道或铁路邻近地区。
条件2 –如果有几秒钟,则是主要道路或铁路附近。
BldgType –住宅类型。
HouseStyle –住宅风格。
综合质量–表面处理和整体材料质量。
综合条件–总体条件的等级。
YearBuilt –原始建筑的日期。
YearRemodAdd –改型的日期。
RoofStyle –屋顶类型。
RoofMatl –屋顶的材料。
Exterior1st –覆盖房屋的外部。
Exterior2nd –如果存在多种材料,则覆盖房屋的外部。
MasVnrType –石工饰面的类型。
MasVnrArea –砌面饰板的面积。
ExterQual –外部材料的质量。
ExterCond –在外部,材料的当前状态。
基础-基础类型。
BsmtQual –地下室的高度。
BsmtCond –一般的地下室条件。
BsmtExposure –花园或罢工的地下室墙壁。
BsmtFinType1 –地下室的成品区域质量。
BsmtFinSF1 –类型1的平方英尺区域已完成。
BsmtFinType2 –如果存在,则表示第二成品区域质量。
BsmtFinSF2 –完成的Type 2的平方英尺面积。
BsmtUnfSF –地下室未完成区域的平方英尺。
TotalBsmtSF –地下室的面积。
加热–加热类型。
HeatingQC –加热的条件和质量。
CentralAir –中央空调。
电气–电气系统。
1stFlrSF –一楼的面积。
2ndFlrSF –二楼的区域。
LowQualFinSF –所有低质量成品地板的面积。
GrLivArea –地面居住区。
BsmtFullBath –地下室的完整浴室。
BsmtHalfBath –地下室的半浴室。
FullBath –上面等级的完整浴室。
HalfBath –上半部浴室。
卧室–地下一层的浴室编号。
厨房–厨房编号。
KitchenQual –厨房的质量。
TotRmsAbvGrd –没有浴室,地面上的房间数。
功能性-家庭功能等级。
壁炉–壁炉编号。
FireplaceQu –壁炉的质量。
GarageType –车库的位置。
GarageYrBlt –车库建造年份。
GarageFinish –车库的内部装修。
GarageCars –车库容量,指车库的大小。
GarageArea –车库的面积。
GarageQual –车库的质量。
GarageCond –车库的状况。
WoodDeckSF –木甲板的面积。
OpenPorchSF –开放式门廊的面积。
EnclosedPorch –封闭的门廊区域的面积。
3SsnPorch –三个季节的门廊面积。
ScreenPorch –屏幕门廊区域的面积。
PoolArea –游泳池的面积。
PoolQC –池的质量。
围栏–围栏的质量。
其他功能-其他功能。
MiscVal –其他功能值(以美元为单位)。
MoSold –销售月份。
YrSold –销售年份。
SaleType –销售的类型。
SaleCondition –销售条件。
如您所见,这是一个具有很多变量的高维数据集,但是所有这些列都不会用于我们的预测,因为那样的话,该模型可能会遇到多重共线性问题。以下是我们可以对此数据集执行的一些基本探索性数据分析步骤。
探索性数据分析python的图像结果
资料来源:Cambridge Spark
将使用以下命令导入库–
将熊猫作为pd导入
将seaborn导入为sns
将matplotlib.pyplot导入为plt
要读取CSV(逗号分隔值格式)的数据集,我们将使用pandas 的 read csv 函数并将其加载到数据框中。
df = pd.read_csv('…/ input / train.csv')
所述头部()命令将显示的数据集的第一五行。
该信息()命令将其数据类型来一起出主意约值的数量每列。
要删除不相关的要素和缺失值超过30%的列,请使用以下代码。
df2 = df [[如果df [column] .count()/ len(df)> = 0.3,则df中的列的列]]
del df2 ['Id']
print(“已删除列的列表:”,end =“”“)
对于df.columns中的c:
如果c不在df2.columns中:
print(c,end =”,“)
打印('\ n')
df = df2
该描述()命令会给所有的数字特征的统计描述。统计值包括计数,平均值,标准偏差,最小值,第一四分位数,平均值,第三四分位数和最大值。
dtypes 给出所有列的数据类型。
为了找到每个功能之间的相关性,使用了corr()命令。它不仅有助于确定哪个要素列与目标的差异更大,而且还有助于观察和避免多重共线性。
还有其他操作,例如df.value_counts(),它提供每个功能中每个唯一值的计数。此外,要填充缺少的值,我们可以使用fillna命令。
整个笔记本在这里可用。
为了有效地分析数据,除了具有使用工具和技术的技能外,最重要的是您对数据的直觉。了解问题陈述是任何数据科学项目的第一步,然后是可以从中提出的必要问题。只有当您知道需要回答的问题是什么,从而验证数据的相关性时,探索性数据分析才能很好地执行。
我已经看到专业人士跳入机器学习,深度学习,并更多地关注最新模型,但是,他们忘记或跳过了最严格,最耗时的部分,即探索性数据分析。如果没有适当的EDA,则很难获得良好的预测,并且模型可能会因拟合不足或拟合过度而受苦。如果模型过于简单且偏差较大,则会导致较高的训练误差和测试集误差,因此无法拟合模型。而过拟合模型具有较高的方差,无法很好地推广到未知集合。
1