如何使用数据分析师技能解决实际问题?
如何使用数据分析师技能解决实际问题?
介绍
数据分析不仅仅是学习 Python 或 SQL 等技能。请记住,我们的工作是使用我们拥有的最强大的工具(数据)来解决某人的问题。为此,我们可能会根据利益相关者的要求和我们的知识使用各种工具和技术,因此对于一个问题,可能有多种回答方式。如果它适合你,你选择哪种方法来解决问题并不是很重要。例如,一位数据分析师使用 SQL 来清理数据集,而另一位则使用 Pandas。在本文中,将讨论实际项目中从零到最终产品的所有步骤。
项目步骤
1- 问题陈述
2-准备答案
3- 使用网络抓取提取数据
4- 数据准备
5- 使用地理编码将纬度和经度添加到数据集
6- 建立和训练机器学习算法来预测租金价格
7- 使用 Flask 构建和部署 Web 应用程序
8- 构建 Tableau 仪表板
问题陈述
阿姆斯特丹的一些国际学生很难找到适合他们预算的住宿。虽然有很多在线平台,如 pararius.com 或 funda.com 发布可用的属性,但它们并没有给用户一个完整的视图。许多学生知道他们想要什么房产,但不知道所需的预算,因为它还没有公布出租。此外,房价在过去几年中有所上涨,这使得有关房屋市场的旧信息变得不那么有趣。您可以找到他们的问题摘要如下。
- 没有阿姆斯特丹所有可用出租物业的全貌。
-未公布的房价未知。
- 无法访问有关房地产市场的新数据集。
⭐ 准备答案
- 构建 Tableau 仪表板,可在阿姆斯特丹找到所有可用属性及其在地图上的简要信息。
- 构建和训练机器学习模型以根据用户输入预测租金价格。
-抓取一个房地产网站以提取阿姆斯特丹房地产的最新数据集。
** 使用网络抓取提取数据**
我使用了荷兰著名的房地产网站 pararius.com 来提取阿姆斯特丹最新的出租房屋数据集。
首先让我们导入我们需要的库:
然后定义了网页抓取的标题:
之后,我们的数据集 CSV 文件在本地机器地址中仅使用其列名构建:
遍历阿姆斯特丹属性的所有 19 页并带回我们需要的 html 部分:
现在遍历每个页面部分并取出我们的功能并为内部列中的空值提供条件以返回“未提及”。最后将所有功能附加到以前的 CSV 文件中:
前代码块的输出将如下表所示。
️ 数据准备
我们只需要 price、area 和 room 列中的数值:
为了我们进一步的地理用途,我们应该将邮政编码列拆分为其元素:
从标题列中提取的属性类型和地址:
构建新数据集:
使用两列邮政编码和地址删除重复项:
使用干净的数据创建新的数据集 CSV:
它的外观:
️ 向数据集添加纬度和经度
我使用谷歌地理编码 API 将纬度和经度列添加到以前的数据集。有关地理编码的更多信息,您可以访问 这里 .
最终输出为:
** 使用机器学习预测价格**
导入库后,我通过将以前的数据集与 阿姆斯特丹街区 在他们的“zipcode_num”列上。
现在通过创建一个函数来看看我们有什么。
删除空值并在内部列中更改其中两个:
现在是探索性数据分析(EDA)的时候了!
基于 EDA,我们应该删除与目标值相关性较小的列:
去除异常值:
标签编码:
拆分数据以训练、测试和构建 套索回归 模型。
准确性: %79
将我们的模型转换为 pickle 文件:
构建和部署 Web 应用程序
我使用烧瓶构建了一个简单的应用程序,该应用程序从用户那里获取区域、房间、社区、房屋类型和内部等输入,并在网页上提供价格作为输出。
我用过 Heroku.com 部署我的应用程序,因为它是免费且非常易于使用的。你只需要构建所有 文件 用于部署并使用 GitHub 或 Heroku Git 将它们发送到 Heroku 服务器。它还可以部署在任何其他云提供商的平台上。
️ Tableau 仪表板
我们的数据集具有纬度和经度,因此非常适合在其上构建地图。它包含阿姆斯特丹的所有可用属性,并在工具提示中提供了简短的详细信息。右上角提供了指向 Web 应用程序的链接,因此用户可以在一个地方访问所有解决方案。
好吧,这不是项目的结束。在完成最终产品的午餐后,您应该询问用户的反馈并根据他们的意愿更新产品。最后,请注意,在之前的所有步骤中,我都遇到了很多错误,处理它们是学习的一部分,所以不要放弃!
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明