写点什么

用机器学习分析流行音乐(一):数据收集和清理

  • 2020-08-10
  • 本文字数:1494 字

    阅读完需:约 5 分钟

用机器学习分析流行音乐(一):数据收集和清理

本文是该系列的第一部分,我将在本文中讲述如何收集流行音乐的数据并清理。 目前,全部代码已经放到了GitHub上


多年来,韩国流行音乐成为一种全球性现象,其流行程度让我感到惊讶。 所以,我决定用机器学习来分析韩国流行音乐,探索有趣的见解。 本文,我将阐述数据科学周期中的数据收集和数据清理阶段。

数据收集

为了找到数据集,我不得不在谷歌上进行了搜索,我发现了一个 Excel 文档,内含针对社交媒体和韩国流行音乐的调查,我觉得很有意思。数据集包含来自世界各地的 240 名韩国流行音乐歌迷,共有 22 个调查问题。


数据集链接:Ranman,Saanjana(2020):KPOP DATA.xlsx. figshare. Dataset.

数据清理

数据清理是重要的一步,因为需要为 EDA 和模型构建提供最干净的数据。如果放进去的是垃圾,那么从模型中得到的也是垃圾。


数据集可能有前导空格和尾随空格。因此,我决定使用函数来删除第一列的“Timestamp”,因为没有用处。


# function to remove the leading and trailing whtte space in the data frame def trim(dataset): # using .strip() to remove the leading and the trailing white spaces in each cell trim = lambda x: x.strip() if type(x) is str else x   return dataset.applymap(trim) 
复制代码


由于列名太长,我决定给它们提供代码名称,以简单地表示列名。



重命名列


接下来,检查数据集是否有空值。



检查空值


有三个列具有空值。首先,让我们检查只有一个空值的列。


我发现 life_chgmoney_src 中的空值是“ n/a ”,因此,我简单地将它们替换为字符串“ none ”。


对于 daily_MV_hr 列,我决定用平均值替换空值。处理空值有多种方法(删除行、分配唯一类或者运行回归模型来预测缺失值等),但我认为用平均值替换它们是最佳选择。


我取了 1 和 4 的平均值,也就是 2.5 小时,去掉了“hours”(小时)这个词。我注意到有些类别在范围内,所以为了简单起见,我取了这些范围的平均值,创建了一个特殊函数来处理这个问题。


# function to find the mean when some have ranges and others don't def split_mean(x): # split before and after the hyphen (-) split_num = x.split("-") if len(split_num) == 2:   return (float(split_num[0])+float(split_num[1]))/2   # those who aren't in the range   else:     return float(x) # apply the split_mean function to the "daily MV hours" column daily_mv = daily_mv.apply(lambda x: split_mean(x)) 
复制代码


该函数用来在一些有范围而另一些没有范围的情况下查找平均值。



清理 daily_MV_hr 列前后对比


我意识到这个数据集有点混乱。所以我重复了类似的步骤来清理每一列。


  • yr_listened ” 列




清理 yes_listened 列的过程


我将展示每个列的清理前后图片。


  • daily_usic_hr ” 列




DAILY_MUSIC_hr 清理前后




yr_merch_spent 清理前后


  • age



age 清理前后


  • fav-grp



原始列值



创建单独的列,以查找每个人喜欢的组数



BTS 与其他(多个)的单独列


  • nes_medium



原始列值



简化的列值


  • pursuit



原始列值



简化的列值


  • time_cons_yn



原始列值



简化的列值


  • life_chg



原始列值



简化的列值


  • pos_eff



原始列值



简化的列值


  • money_src



原始列



简化的列值


  • crazy_ev



原始列值



简化的列值


  • country



原始列值



简化的列值


至此,数据清理完成,我将清理过的数据帧保存为 CSV 文件,以供本教程的下一部分使用。



将清理后的数据帧保存到 CSV


在第二部分中,我将讨论本教程的探索性数据分析部分。


作者介绍


Jaemin Lee,专攻数据分析与数据科学,数据科学应届毕业生。


原文链接:


https://towardsdatascience.com/analyzing-k-pop-using-machine-learning-part-1-data-collection-cleaning-4b407baf7bce


2020-08-10 11:362248

评论

发布
暂无评论
发现更多内容

如何构建企业内的 TiDB 自运维体系

得物技术

数据库 运维 TiDB TiDB 底层架构 12 月 PK 榜

ZBC成功上线PancakeSwap的糖浆池,并有望在不久上线Binance

股市老人

企业常用shell脚本汇总

@下一站

企业运维 12月日更 12月月更 shell脚本 脚本程序

【开源项目】今天推荐一个很好的开源项目,一款新的编程语言——HVML

hvmlenvoy

GitHub 编程语言 开源项目

大咖说·开源人说|数据库 PolarDB 开源的商业逻辑与价值思考

大咖说

数据库 阿里云 开源

我把传统业务架构升级到业务中台架构的心得

大东(AIP内容运营专员)

【FAQ】申请Health Kit权限的常见问题及解答

HarmonyOS SDK

HMS Core

VUCA时代下的产品创新方法论(上)

Jackchang234987

VUCA 产品创新

我对中台的理解和企业数字中台建设的思考

大东(AIP内容运营专员)

自动化测试技术笔记(二):准备工作的切入点

老张

自动化测试

架构实战营 3-2 架构设计前期随堂练习

西山薄凉

「架构实战营」

使用brew安装历史版本的几种方式

Geek_pwdeic

macos homebrew

Gradle基础操作一

派大星

Gradle

ZBC成功上线PancakeSwap的糖浆池,并有望在不久上线Binance

鳄鱼视界

隐匿于喧嚣城市的世外桃源,「武汉浮生艺术馆」开放小程序预约通道,顺利举办多场艺术展览

天天预约

小程序 SaaS 预约工具 展览 艺术馆

新华三推出人工智能模型训练平台,让智慧算力触手可及

脑极体

专访实在智能孙林君:颠覆传统RPA的实在IPA模式如何做到真正人人可用

王吉伟频道

RPA 机器人流程自动化 实在智能 实在IPA模式 RPA人人可用

云渲染怎么收费??云渲染一张图多少钱?

Renderbus瑞云渲染农场

云渲染 云渲染平台

2022-12-20:二狗买了一些小兵玩具,和大胖一起玩, 一共有n个小兵,这n个小兵拍成一列, 第i个小兵战斗力为hi,然后他们两个开始对小兵进行排列, 一共进行m次操作,二狗每次操作选择一个数k,

福大大架构师每日一题

算法 rust 福大大

Verilog的模块与端口

芯动大师

Verilog Verilog语法 Verilog模块端口

直播|HashData信创概览

酷克数据HashData

信创

Celestia 简介:重新构想的区块链

devpoint

区块链 以太坊 12月月更 Celestia

传统企业DevOps基础设施架构规划之道

冯文辉

DevOps 华为云DevCloud 华为CodeArts

RayLink 远控软件又推出 2 个重磅宝藏功能免费用

RayLink远程工具

远程控制软件 远程办公软件 远控软件

低代码为什么会受到企业青睐?是何原因?

优秀

低代码

我对管理角色带团队的一些经验分享

大东(AIP内容运营专员)

我把整个研发中台拆分过程的一些心得总结

大东(AIP内容运营专员)

“唤醒”大数据价值,敏捷数据开发成为企业数字化发展的法宝

数造万象

在新基建数字化的时代,寻找自我的突破和价值创造

大东(AIP内容运营专员)

架构实战营 3-3 架构设计中期随堂练习

西山薄凉

「架构实战营」

用机器学习分析流行音乐(一):数据收集和清理_架构_Jaemin Lee_InfoQ精选文章