分類
數字趨勢

为您的机器学习项目获取数据集的4种独特方法

数据不足通常是大多数数据科学项目的主要挫折之一。但是,知道如何为您要开始的任何项目收集数据是作为数据科学家需要获得的一项重要技能。

数据科学家和机器学习工程师现在使用现代数据收集技术来获取更多数据以进行训练算法。如果您打算开始第一个数据科学或机器学习项目,则还需要能够获取数据。

您如何使自己的过程变得容易?让我们看一下可以用来收集数据的一些现代技术。

为什么您的数据科学项目需要更多数据

机器学习算法依靠数据来变得更加准确,精确和可预测。这些算法使用数据集进行训练。训练过程有点像是第一次教小孩子一个物体的名字,然后让他们下次见到它时就可以单独识别它。

人类只需要几个例子就可以识别一个新物体。对于机器而言并非如此,因为它需要成百上千的类似示例来熟悉对象。

这些示例或训练对象需要以数据形式出现。然后,专用的机器学习算法遍历称为训练集的数据集,并对其进行更多了解以变得更加准确。

这意味着,如果您无法提供足够的数据来训练算法,则在项目结束时可能无法获得正确的结果,因为计算机没有足够的数据可供学习。

因此,有必要获取足够的数据以提高结果的准确性。让我们在下面看到一些可以用来实现这一目标的现代策略。

1.直接从网页上抓取数据

Web抓取是一种从Web获取数据的自动方法。以最基本的形式,网络抓取可能涉及将网站上的元素复制并粘贴到本地文件中。

但是,Web抓取还涉及编写特殊脚本或使用专用工具直接从网页中抓取数据。它还可能涉及使用诸如Serpstack之类的应用程序编程接口(API)进行更深入的数据收集。

尽管有些人认为网络抓取可能会导致知识产权损失,但这只有在人们恶意地进行时才会发生。 Web抓取是合法的,可以通过收集有关其客户和竞争对手的公共信息来帮助企业做出更好的决策。

相关:什么是网页搜刮?如何从网站收集数据

例如,您可能编写了一个脚本来从在线商店收集数据以比较价格和可用性。尽管可能有点技术性,但您也可以通过网络收集原始媒体,例如音频文件和图像。

看一下下面的示例代码,以了解使用Python的beautifulsoup4 HTML解析器库进行Web抓取的情况。

 from bs4 import BeautifulSoup
from urllib.request import urlopen
url = "Enter the full URL of the target webpage here"
targetPage = urlopen(url)
htmlReader = targetPage.read().decode("utf-8")
webData = BeautifulSoup(htmlReader, "html.parser")
print(webData.get_text())

在运行示例代码之前,您需要安装该库。从命令行创建虚拟环境,然后通过运行pip install beautifulsoup4来安装库。

2.通过网络表单

您还可以利用在线表单进行数据收集。当您有要从中收集数据的目标人群时,此功能非常有用。

发送Web表单的一个缺点是您可能不会收集到想要的数据。对于小型数据科学项目或教程来说,这非常方便,但是您可能会遇到尝试接触大量匿名人员的限制。

尽管存在有偿在线数据收集服务,但不建议个人使用,因为它们通常太贵了-除非您不介意在该项目上花一些钱。

有多种Web表单可用于收集人们的数据。其中之一就是Google Forms,您可以访问forms.google.com进行访问。您可以使用Google表单收集联系信息,人口统计数据和其他个人详细信息。

创建表单后,您所需要做的就是通过邮件,短信或任何可用方式将链接发送给目标受众。

但是,Google表单只是流行的Web表单的一个示例。还有许多其他选择也可以完成出色的数据收集工作。

3.通过社交媒体

您也可以通过Facebook,LinkedIn,Instagram和Twitter等社交媒体收集数据。从社交媒体获取数据比任何其他方法都更具技术性。它是完全自动化的,涉及使用不同的API工具。

社交媒体可能很难从中提取数据,因为它是相对没有组织的,并且存在大量的数据。正确组织的这种类型的数据集可用于涉及在线情绪分析,市场趋势分析和在线品牌的数据科学项目。

例如,Twitter是社交媒体数据源的一个示例,您可以在其中使用其tweepy Python API软件包收集大量数据集,可以使用pip install tweepy命令进行安装

对于一个基本示例,提取Twitter主页Tweets的代码块如下所示:

 import tweepy
import re
myAuth = tweepy.OAuthHandler(paste consumer_key here, paste consumer_secret key here)
auth.set_access_token(paste access_token here, paste access_token_secret here)
authenticate = tweepy.API(myAuth)
target_tweet = api.home_timeline()
for targets in target_tweet:
print(targets.text)

您可以访问docs.tweepy.org网站以访问tweepy文档,以获取有关如何使用它的更多详细信息。要使用Twitter的API,您需要通过访问developer.twitter.com网站来申请开发者帐户。

Facebook是另一个强大的社交媒体平台,用于收集数据。它使用称为Facebook Graph API的特殊API端点。该API使开发人员可以收集有关特定用户在Facebook平台上的行为的数据。您可以在developers.facebook.com上访问Facebook Graph API文档,以了解更多信息。

使用API​​对社交媒体数据收集的详细说明超出了本文的范围。如果您有兴趣了解更多信息,可以查看每个平台的文档以获取有关它们的深入知识。

除了编写用于连接到API端点的脚本之外,还可以使用社交媒体数据收集第三方工具,例如Scraping Expert等。但是,大多数这些Web工具都是有代价的。

4.从官方来源收集预先存在的数据集

您也可以从权威来源收集预先存在的数据集。此方法涉及访问官方数据库并从中下载经过验证的数据集。与网页抓取和其他选项不同,此选项速度更快,几乎不需要或不需要任何技术知识。

这些类型的源上的数据集通常以CSV,JSON,HTML或Excel格式提供。权威数据源的一些示例包括世界银行UNdata和其他几个。

某些数据源可能会将当前数据设为私有,以防止公众访问它们。但是,他们的档案经常可以下载。

您的机器学习项目的更多官方数据集来源

此列表应该为您提供一个良好的起点,让您可以在项目中使用不同类型的数据。

除此之外,还有更多的资源,仔细搜索将为您提供适合自己的数据科学项目的完美数据。

结合这些现代技术以获得更好的结果

当用于任务的可用工具有限或难以理解时,数据收集可能会很乏味。尽管旧的和传统的方法仍然可以很好地工作并且在某些情况下是不可避免的,但现代的方法却更快,更可靠。

但是,将这些现代的数据收集方式结合在一起,可能会产生更好的结果,而不是仅依靠一种方法。