首页 > 其他分享 >从零开始学机器学习——准备和可视化数据

从零开始学机器学习——准备和可视化数据

时间:2024-09-27 09:37:52浏览次数:1  
标签:机器 Price 从零开始 可视化 pumpkins new 数据 我们 称重

首先给大家介绍一个很好用的学习地址:https://cloudstudio.net/columns

数据准备-清洗

在进行机器学习的第一步——准备数据,为了方便起见,我已经提前下载好了所需的文件。

https://files.cnblogs.com/files/guoxiaoyu/US-pumpkins.zip?t=1726642760&download=true

在大多数情况下,我们很少能够获得完全符合规范的数据集。因此,通常第一步是对数据进行清洗。就以今天的数据为例,让我给大家打开看一下,了解它的具体格式是怎样的。

image

无论从哪个角度来看,这些数据都并非十分理想。它确实包含了大量信息,因此今天我们将以月份为主要维度,来统计南瓜每月的平均价格。这样做的话,我们基本上可以放弃许多其他字段。

开始解析

我们的目标是获取每月南瓜的平均价格,因此我们需要关注的字段包括月份和价格。手动删除不必要的字段,再让Python进行解析,这样的做法显得太繁琐和低效了。因此,今天我们将介绍一个非常实用的工具包:Pandas,它能够简化这一过程。

Pandas学习地址:https://pandas.pydata.org/

import pandas as pd
pumpkins = pd.read_csv('../data/US-pumpkins.csv')
print(pumpkins.head())
print(pumpkins.tail())

这里可以自行打印下前5行信息和后5行信息。

image

这里的数据列很多,我们需要删除那些不必要的列,只保留我们需要的月份和价格数据。

new_columns = ['Package', 'Month', 'Low Price', 'High Price', 'Date']
pumpkins = pumpkins.drop([c for c in pumpkins.columns if c not in new_columns], axis=1)
print(pumpkins.isnull().sum())

注意,我们的文件中并没有"Month"这一列,这是我们后续需要用到的重要数据。另外,还有一个"Package"字段,表示称重方式,因为不同的蔬菜可能有不同的称重方式。

通常情况下,我们购买东西时按照公斤(kg)为单位称重进行结算。然而,商家有时为了促销可能会以整个南瓜的方式出售,这种称重方式的不统一是很常见的。我们需要确保只保留统一的称重方式数据。

字段解析

我们首先来计算比较简单的日期,只获取月份而不考虑年份。尽管这样做可能会导致最终数据的不准确性,因为每年各种因素会导致价格浮动很大,但暂且不考虑这些复杂因素,先处理最简单的情况。

month = pd.DatetimeIndex(pumpkins['Date']).month
print(month)

接下来我们处理价格,我们将只考虑每个菜品的最高价和最低价,然后计算它们的平均值。

price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2
print(price)

现在我们来处理称重方式。针对美国地区的称重方式,我们无需过多关注细节,直接使用已经设定好的公式即可。而对于国内地区,则需要根据数据特征进行截取和调整。

pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)]
new_pumpkins.loc[new_pumpkins['Package'].str.contains('1 1/9'), 'Price'] = price/(1 + 1/9)
new_pumpkins.loc[new_pumpkins['Package'].str.contains('1/2'), 'Price'] = price/(1/2)
print(new_pumpkins)

效果如下:

image

数据可视化

我们将使用数据可视化库 Matplotlib 来呈现我们的数据分析结果。Matplotlib 是一个强大的工具,能够帮助我们创建各种类型的图表,以便更直观地展示数据趋势和关系。

Matplotlib入门学习地址是:https://matplotlib.org/

import matplotlib.pyplot as plt
price = new_pumpkins.Price
month = new_pumpkins.Month
plt.scatter(month, price)
plt.show()

在这里,我们简单地将价格和月份数据显示在了 x 轴和 y 轴上,并没有特别复杂的图表设计。

image

我们来优化下代码:

new_pumpkins.groupby(['Month'])['Price'].mean().plot(kind='bar')
plt.ylabel("Pumpkin Price")

我来解释一下:groupby方法被用来按照Month列对数据进行分组,这意味着所有具有相同月份的数据会被归为一组。

接下来,['Price'].mean()是对每个分组内的Price列计算平均值。这样,我们就得到了每个月的南瓜平均价格。

最后,.plot(kind='bar')是将计算出的平均价格数据绘制成条形图。这里的kind='bar'指定了绘图类型为条形图,它会显示每个月的平均价格,并且每个月份会对应一个条形。

image

当然,数据可视化并不局限于 Matplotlib,还有许多其他依赖库可供选择,你可以根据个人喜好和需求选择适合的工具。

总结

看起来,确实我们的数据处理工作已经基本完成了。

然而,在文章中我还提到了一个重要的观点:这种方法并不能充分解释具体问题的原因。这是因为我们只是在理想条件下计算价格,而没有考虑到年份、天气以及称重等因素的影响。尽管如此,我们已经确定了数据准备的大致流程。

现在需要做的是自行决定如何维护这一流程,确保数据的清晰性和准确性。


我是努力的小雨,一名 Java 服务端码农,潜心研究着 AI 技术的奥秘。我热爱技术交流与分享,对开源社区充满热情。同时也是一位腾讯云创作之星、阿里云专家博主、华为云云享专家、掘金优秀作者。

标签:机器,Price,从零开始,可视化,pumpkins,new,数据,我们,称重
From: https://www.cnblogs.com/guoxiaoyu/p/18419035

相关文章

  • 【机器学习(十)】时间序列案例之月销量预测分析—Holt-Winters算法—Sentosa_DSML社区
    文章目录一、Holt-Winters算法原理(一)加法模型(二)乘法模型(三)阻尼趋势二、HoltWinters算法优缺点优点缺点三、Python代码和Sentosa_DSML社区版算法实现对比(一)数据读入和统计分析(二)数据预处理(三)模型训练和模型评估(四)模型可视化四、总结一、Holt-......
  • 【有啥问啥】深度理解主动学习:机器学习的高效策略
    深度理解主动学习:机器学习的高效策略在大数据时代,数据量的爆炸性增长与有限的标注资源之间的矛盾日益凸显。如何高效地利用标注资源来训练高质量的模型,成为了机器学习领域亟待解决的问题。主动学习(ActiveLearning,AL)作为一种智能的数据标注策略,通过让模型主动选择最具有......
  • 机器学习和深度学习的区别
    机器学习(MachineLearning)和深度学习(DeepLearning)虽然都是人工智能的分支,但它们在方法论、复杂度和应用场景上存在一些显著的区别。以下是它们的主要差异:1.概念层次机器学习:是一类算法的集合,这些算法可以从数据中学习并进行预测或决策,通常需要手工设计特征,然后将这些特......
  • 根据软件架构设计与评估的叙述开发一套机器学习应用开发平台
    案例        阅读以下关于软件架构设计与评估的叙述,回答问题1和问题2。【说明】        某公司拟开发一套机器学习应用开发平台,支持用户使用浏览器在线进行基于机器学习的智能应用开发活动。该平台的核心应用场景是用户通过拖拽算法组件灵活定义机器学习......
  • Python从0到100(五十八):机器学习-随机森林及对复杂数据集分类
    随机森林通过构建多个决策树来完成分类或回归任务。随机森林的核⼼思想是通过多个弱学习器(决策树)的集成来构建⼀个强学习器,从⽽提⾼模型的泛化能⼒和稳定性。1.基本原理随机森林的基本原理如下:从训练集中随机抽取⼀定数量的样本(有放回抽样),构建⼀个决策树(称为⾃助采样法或......
  • CNN网络训练WISDM数据集:模型仿真及可视化分析
    卷积神经网络(CNN)因其强大的特征提取能力和深度学习架构而备受推崇,CNN在处理图像数据时展现出的卓越性能,使其成为解决各种视觉识别任务的首选工具。WISDM数据集是一个广泛用于运动估计研究的基准数据集,它包含了多个视频序列,每个序列都记录了摄像头在不同方向上移动时捕捉到的......
  • 5款免费可视化工具大揭秘:选择你的最佳助手
    选择合适的可视化工具对于分析和展示数据至关重要,以下是五款免费的可视化工具,它们各具特色,能够适应各种需求。本文将介绍每款工具的优势与不足,帮助你找到最合适的解决方案。1. 山海鲸可视化介绍:山海鲸可视化是一款难得的完全免费的国产报表工具,更难能可贵的是它还提供了完整且......
  • 使用java做一个微信机器人
    Java实现微信小号做机器人随着人工智能技术的发展,机器人在各行各业扮演着越来越重要的角色。在社交领域,微信机器人也逐渐受到人们的关注。本文将介绍如何使用Java实现一个简单的微信小号做机器人的功能。请求参数Header参数exportinterfaceApifoxModel{"X-GEWE-TOKEN":st......
  • 《超级机器人大战30》缺少roboex32.dll启动遇阻怎么办?轻松应对《超级机器人大战30》ro
    当《超级机器人大战30》因缺少roboex32.dll文件而启动遇阻时,可以尝试以下几种解决方案来轻松应对这一问题:一、下载并替换缺失的DLL文件寻找可靠来源:首先,需要在互联网上找到可靠的roboex32.dll文件下载源。建议访问官方网站、微软官方下载中心或知名的软件下载站点,以确保下载......
  • 基于python数据挖掘技术的线上招聘信息数据可视化分析系统 q3122-- Scrapy爬虫
    目录项目介绍实现功能截图技术栈Scrapy爬虫框架关键技术和使用的工具环境等的说明解决的思路开发流程爬虫核心代码展示系统设计论文书写大纲详细视频演示源码获取项目介绍基于数据挖掘技术的线上招聘信息分析系统旨在通过应用先进的数据分析方法,为求职者和招聘者提......