Python 数据科学项目及详细项目描述

29 Aug 2024 | 20 分钟阅读

1. LDA 方法基于 RACE 数据集的词题模型

该项目的目标是找出内容或文档中的主导主题。在逻辑上和语言上相关的词属于同一主题。主题建模可以对大量数据进行标记,并将文本组织成主题和标签。

本文将解释项目描述和该项目的各个部分

数据集预处理步骤

所有词都应小写、分词、词形还原,并去除停用词和标点符号。通过将文档的所有词组合在一起,创建处理后的文档。然后使用 TFIDF 或计数向量器转换生成的信息。

本项目包含的库包括: matpltlib, Numpy, nltk, sci-kit learn, pandas, 和 pvLDAvis tone。通过这个 Python 数据科学项目学习到的一些算法和方法包括:潜在语义评估、线性判别分析和非负矩阵分解。

业务背景

  • 大数据、深度学习和人工智能的飞速发展,迫切需要从文档中提取单个主题或一组相关主题。设想这样一个场景:你必须将大量文档分类到 10-20 个类别中,然后进行检查或审查。这该多么单调乏味!
  • 多亏了语言模型,每个项目都可以归类到一个特定主题下,而无需手动阅读大量论文,实现了自然语言理解和文本挖掘。
  • 因此,我们预计来自概念上相关主题的词在文档中出现的频率会比来自不相关主题的词更常见。
  • 一个主题由一组经常一起使用的词组成。例如,在一篇关于太空的论文中,更有可能遇到“行星”、“卫星”、“宇宙”、“宇宙”和“小行星”等词。相比之下,关于野生动物的文本中更有可能包含“栖息地”、“物种”、“哺乳动物”、“植物”和“景观”等词。主题建模可以将具有相似属性的词链接在一起,并识别出具有不同含义的语言的不同用法。
  • 一个句子或一段文本包含多个主题,每个主题由几个词组成。

数据概览

该数据库包含约 65,000 篇论文,其中包含名词、形容词、动词、介词等多种词汇。文档的词数也差异很大,最少词数约 40,最多词数约 500。总数据的 90% 用于训练,其余 10% 用于预测未见文档的趋势。

目的

目标是提取或识别每篇文本中的一个主要主题,然后进行主题建模。

本项目使用的资源和库

  • Python 将是我们执行各种任务的工具。
  • Pandas 是用于数据收集和操作的主要模块。
  • Matplotlib 和 Bokeh 用于可视化文档结构。
  • NumPy 用于需要高效计算的操作。
  • 可以使用 Scikit Discover 和 Gensim 包进行主题建模,nltk 用于文本清理和预处理,TSNE 和 pyLDAvis 用于主题可视化。

方法

主题探索性数据分析 (EDA)

  • 词云显示主题中的热门词
  • 使用 t-SNE 分布的主题
  • 使用交互式工具,确定主题分布和主题内的词重要性 pyLDAvis

文档预处理

  • 将论文中的所有词计数减少,只保留字母。
  • 对每个句子进行分词,对每个词进行词形还原,只保留非停用词且长度至少为三个字母的词到列表中。
  • 将您的名字添加到列表中以创建文档,并为 NMF 主题建模保留词形还原后的词。
  • 根据所选算法,使用 Count Vectorizer 和 TF IDF 转换上述预处理的数据文件。
  • 预测一组主题以及每篇文档的主要主题。
  • 使用命令提示符从头到尾执行 Python 脚本

主题建模算法

潜在语义索引 (LSI),也称为潜在语义分析 (LSA),

非负矩阵分解 (NMF)、潜在狄利克雷分配 (LDA),以及常用的主题模型度量因子(如一致性得分)是主题建模技术的示例。

代码概述

  • 整个数据集分为 90% 用于训练,10% 用于预测从未见过的文档。
  • 通过以下方式进行预处理以减少噪声:
  • 删除所有词,将其还原为原始形式,只保留字母。
  • 分词后,处理每个句子并进行词形还原,创建一个新文档。
  • 对干净的文件集使用 TF IDF Vectorizer 和 Count vectorizer 进行转换和拟合,用于 LSA 和 LDA 主题建模。分别使用干净的 LSA 和 LDA 包提取主题,两种算法都使用了十个主题。
  • 对每个词的 TF IDF Vectorizer 进行转换和拟合,用于 NMF 主题建模。提取了十三个主题,主题数量通过一致性得分确定。
  • 使用 t-SNE 算法和交互式工具 pyLDAvis 检查主题分布。
  • 上述三种算法均用于预测未见文档的主题。

2. 使用长短期记忆 (LSTM) 进行时间序列预测

LSTM(长短期记忆网络)是一种人工循环神经网络,其中每个神经元节点都有一个记忆单元。LSTM 与前馈神经网络不同,因为它在其隐藏层中包含感受野。它解决了梯度消失的问题。

情感分类、分析、语音识别等是一些典型实例。

LSTM 日期时间序列数据预测 Python 导论

深度学习是一个快速发展的领域,我们在日常业务运营中看到了许多应用,如分割、分组、预测、预后或推荐等。由于研究人员和学者创建的深度学习结构范围广泛,这些引人入胜的应用才成为可能。LSTM 模型就是这样一种时间序列预测模型,在这个项目中,我们将专注于一种特定类型的神经网络方法。

项目概述:使用 Python LSTM 进行时间序列数据预测 循环人工神经网络是深度学习架构的众多类型之一 (RNN)。

项目将首先介绍更基础的神经网络技术,如感知器,以帮助您理解与神经网络相关的各种术语,因为 LSTM 是一种更高级的深度学习方法。在此之后,您将熟悉几种深度学习架构,并使用 LSTM 进行时间序列数据预测。

本文将解释项目描述和该项目的各个部分

项目概述

此 LSTM 预测 Python 项目将涵盖几个令人兴奋的主题。

循环神经网络、深度信念网络、卷积神经网络和玻尔兹曼网络是一些著名的深度学习架构,本项目将介绍这些架构。在介绍这些架构的基础知识后,它将涵盖基本组件,如激活函数、感知器元素、偏置项等。理解这些方面将帮助您理解调整各种深度学习算法的艺术。它还有助于我们估计每种深度学习算法与其他算法之间的差异。

此外,项目附带了完整的安装指南,因此您不必担心。

数据集描述

该项目的目标是根据历史数据和近期记忆预测给定月份的未来乘客数量。数据集包括特定航空公司使用的旅客的月度总数。信息如下:乘客人数,一年中的月份。

数据集

此 LSTM-Python 项目的数据来源是一家航空公司的乘客数据。数据包含两列:一列列出日历年和月份以表示时间,另一列列出该月旅行的人数。

数据归一化

使用 sklearn 预处理包中的 MinMaxScaler 方法对数据进行归一化。在 MinMaxScaler 操作后,数据集必须在 0 到 1 的范围内转换。

项目所需技术栈,如库: matpltlib, Numpy, nltk, sci-kit learn, pandas, pvLDAvis tone。

数据预处理:您将学习如何使用 Python 库来归一化数据集中的变量:sklearn 的函数,如 MinMaxScaler 和 StandardScaler。您还将能够将数据集划分为测试集和训练集,并为使用深度学习算法做准备。

使用 LSTM 在 Python 中进行时间序列预测

Python 中的 Keras 框架允许用户从头开始构建深度学习模型。在此时间序列预测 Python 项目中,您将使用 Keras 创建 LSTM-RNN 模型的所有层,并且您还将预测未来乘客数量。此外,您将使用统计工具评估模型的准确性。

3. 使用 Python 的多类分类识别人类活动。

健身追踪器和运行健身监控应用程序的平板电脑可以使用活动识别。该项目分析位置、陀螺仪和加速度计信息,以识别人们的运动,如骑自行车、散步、躺下和跑步。该项目仅限于 6 种活动:步行、躺下、上下楼梯、坐着和站立。

什么是人类活动识别?

  • 估计人类姿势是活动识别中最具挑战性的方面之一。这以前是通过手动构建模型来完成的,该模型需要仔细的设置和参数估计;然而,由于最近的技术进步,使用神经网络估计人类姿势现在更容易了。
  • 计算机视觉专家一直在解决动物尺寸估计问题,该问题涉及从一张图像中估计物体的三维尺寸。建模人体是估计人体姿势最重要的部分。虚拟角色可以通过人体姿势估计与用户互动,并以正确的对齐和位置呈现物体。在动物/人体姿势估计中使用的三种最常见的动物/人体模型是轮廓、骨骼和基于体积的模型。
  • 物联网让几乎每个人都能拥有记录他们运动的设备,变得非常容易。它可以是脉搏计、智能手表,甚至是智能手机。
  • 在这种情况下,特征通常使用固定长度的滑动窗口方法提取。任何数据,例如身体加速度、重力加速度、角速度等,都可以使用。识别活动模式和健康监测只是人类活动识别的众多用途中的几种。
  • 由于其实用性和适应性,人体姿势估计已获得广泛关注。例如,姿势估计可以支持研究,改进患者的临床周期监测,并有助于在医疗机构中准确地确定姿势标签。

本文将解释项目描述和该项目的各个部分

使用 Python 的多类分类识别人类活动的概述。

作为本项目的一部分,我们将创建一个用于分类人类行为的系统。目标是将各种行为归类为在腰部佩戴智能手机(在本例中为三星 Galaxy S II)时执行的六项任务之一。

我们以 50Hz 的恒定采样率记录了 3 轴加速度计、加速度计和陀螺仪角速度,使用了其集成加速度计和陀螺仪。实验被录像,以便可以手动标记数据。获得的 dataset 被随机分为两组,30% 的志愿者被选用于创建测试数据,70% 的总参与者被用于生成训练数据。

数据集描述

信息来自一项研究,其中 30 名参与者在进行各种活动时佩戴智能手机。

数据预处理

  • 在数据收集过程中遇到的任何缺失值都用均值、平均值或零来替换。
  • 使用众数将缺失数据添加到数据集中。众数替换是该过程。
  • 跟踪每项活动的频率,以查看数据是否偏向一项活动。
  • 一个妥善平衡的数据集大约具有相同数量的每项活动的重复次数。

探索性数据分析

  • 单变量分析 将数据集中的每个数据变量绘制 against 必要字段,如标准差、均值、最大值和最小值。钟形正态分布表明数据变量在整个数据集中均匀分布。
  • 在双变量分析中,显示了 y 轴和 x 轴上两个不同特征之间的关系。借助图形曲线,可以更好地理解特征与变量之间的关系。
  • tSNE 图 当涉及大量变量时,有时多达 500 个变量,多变量分析变得具有挑战性。在图上显示 500 个变量没有意义。
  • 当图中有许多变量时,tSNE 图可以更容易地在二维中可视化多变量系统。
  • 归一化,也称为标准化,将大的变量范围减小到 -1 和 1 之间。它遵循标准度量来测量每个变量。
  • 归一化后,理想的输出应为均值为一,标准差为零。

- matplotlib, Python Pandas, seaborn, NumPy

人类活动识别图像数据集

“使用移动智能手机进行活动识别”数据集,在本次机器学习人类活动识别实验中使用,自 2013 年以来一直在流传。数据来自 30 名年龄在 19 至 48 岁之间的志愿者,他们在进行六种常见活动(步行、爬楼梯、坐着、站立或躺下)时,腰部佩戴装有惯性传感器的手机。每个人都录制了活动视频,并从这些录音中手动提取了运动数据。您可以在 UCI 机器学习存储库中免费访问此数据集。

目标

人类活动识别 (HAR) 项目旨在根据各种传感器采集的参数对人的活动进行分类。为了对新、未见过的受试者的活动进行分类,人类活动识别涉及记录特定受试者的传感器数据和相关活动,从这些数据中拟合模型,并推广该模型。

在过去的二十年里,人类活动分类一直是计算机视觉中的一项挑战性任务。行为识别领域具有巨大的潜力,如前人研究所示。人类活动识别方法必须首先根据其传感器数据分为两大类:多模态和单模态活动识别方法。

根据它们对人类活动的建模方式,这些类别进一步细分为时空、随机、基于规则和基于形状的方法。

  • 活动识别方法,将人类动作表示为时空特征或轨迹的集合,是时空方法的例子。
  • 随机方法使用人类行为的统计模型,例如隐马尔可夫模型,来识别活动。
  • 基于规则的技术使用一组规则来对人类活动进行分类。
  • 通过模拟个体身体部位的运动,基于形状的方法有效地反映了高级推理任务。

用于识别人类活动的深度学习系统

  • 深度学习是机器学习和人工智能 (AI) 的一个子集,它模仿人类获取特定信息(如传感器数据)的过程。
  • 它包括统计分析和预测建模,是数据科学的重要组成部分。
  • 它加速并简化了数据科学家收集、评估和理解大量数据的过程。
  • 它教计算机模型如何使用图像、文本或声音来执行分类任务。
  • 由于它们使用表示学习技术,这些技术可以自动从原始数据(如传感器数据)中生成最佳特征,无需人工干预,并且可以发现数据中的隐藏模式,深度学习算法最近在识别人类活动方面变得流行。
  • 深度学习模型的精度通常可以超过人类。
  • 这些模型使用大量的标记数据和多层神经网络架构进行训练。
  • 深度学习模型在具有神经网络架构的大型标记数据集上进行训练,这些架构可以直接从数据中学习特征,而无需手动提取特征。与传统神经网络的两个或三个隐藏层相比,这些人工神经网络可以有高达 150 个隐藏层。因为它们经常使用神经网络架构,所以深度学习方法被称为“深度神经网络”。

用于深度学习活动检测的不同分类模型

型号

1. 卷积神经网络 (CNN)

卷积神经网络,也称为 ConvNets,是最常用的深度神经网络之一。CNN 是一种非常适合处理 2D 数据(如图像)的架构,因为它将输入数据与训练好的特征相结合,并使用 2D 卷积层。CNN 通过直接从图像中提取特征来工作。CNN 减少了手动特征提取的需要,因此您无需知道使用哪些特征来分类图像。这些模型在计算机视觉任务(如对象分类)中非常准确,这得益于自动特征提取。

CNN 可以在数十或数百个隐藏层的帮助下学习识别各种图像特征。根据您试图识别的对象的结构,第一个隐藏层可能学习识别边缘,而最后一个隐藏层可能学习识别更复杂的形状。随着每个隐藏层的增加,提取的图像特征变得越来越复杂。

对于人类活动识别 (HAR),卷积神经网络模型经常被用作特征学习方法。与需要领域特定知识的传统机器学习方法相比,CNN 可以自动提取特征。

2. 深度神经网络

深度循环神经网络,或 RNN,是神经网络的一个子集,旨在从序列数据中学习,例如一系列时间序列观察或句子中的单词序列。图像字幕、时间序列分析、自然语言处理、手写识别和机器翻译广泛使用 RNN。由于循环神经网络模型之间的连接产生的定向循环,LSTM 的输出可以在当前阶段用作输入。

一种循环神经网络,长短期记忆网络 (LSTM),可能是最受欢迎的,因为它精心设计,克服了在序列数据上训练稳定 RNN 的常见困难。随时间推移,数据由 LSTM 存储。由于其对先前输入的记忆,它们对于时间序列预测很有用。由四个相互作用的 LSTM 层的不同交互创建了一个链式结构。通常,LSTM 用于医学研究、语音识别和时间序列预测等领域。

机器学习如何识别人类活动?

对于计算机视觉来说,检测人类活动仍然是一项挑战。主要问题是活动检测的难度以及分析中包含的人数。最初,支持向量机和隐马尔可夫模型等传统方法试图理解人体姿势估计的复杂性。研究人员后来通过利用机器学习和数据挖掘的最新进展克服了最初的困难。

以下是深度学习人类活动识别的步骤:

  • 数据收集:传感器收集关于人体部位运动的数据。
  • 预处理:原始数据被深度学习算法转换为无噪声输入,然后对其进行分段以强调与分析相关的部分。
  • 特征提取:通过一个称为“特征提取”的过程,系统会找到特定活动特有的相关特征。
  • 数据分类:使用处理和机器学习工具对输出进行分类。

使用计算机视觉识别人类影响的应用

  • 体育分析 可以跟踪人体关节的位置以监控各种运动表现指标,这可以极大地使运动员和教练受益。例如,运动学姿势校正可以在训练期间分析运动员的表现并提供定量反馈。运动分析还可以研究和训练各种运动的业余运动员。
  • 安全与监控 为了公共安全,视频监控的重要性呈指数级增长。政府经常安装闭路电视摄像头来监控人群行为以维护公共安全。尽管摄像头提供了大量视觉数据,但仍需要智能自动系统来识别暴力或可疑行为。在这种情况下,运动跟踪可能很有用。
  • 3D 人体姿势估计用于人机交互的目的是帮助计算机全面理解人类行为和动作。使用姿势估计 API,能够识别人类动作、3D 姿势和情绪的机器人可以快速完成任务。例如,当机器人检测到一个人有跌倒风险的 3D 位置时,它可以做出适当的响应。此外,如果助理机器人能够识别 3D 人体姿势,它们就可以与人类用户进行更广泛的社交互动。

4. 使用 Keras 和 Tensor 在 Python 中构建相似图像查找器

该项目旨在创建一个模型,该模型接收一张照片作为输入,并输出与患者的实际照片相似的照片。通过使用这种策略,它显示了更多的建议,这有助于用户做出明智的决定。在 Walmart、Alibaba 等在线零售平台上,它们使用基于产品照片的相似产品推荐。

项目描述和该项目的各个部分将在下面解释

业务目标

我们都意识到电子商务和全球网上购物的快速发展。因此,在库存单位 (SKU) 级别上基于照片的自动且精确的产品识别对于计算机视觉系统至关重要。满足这一市场需求是我们项目的基本目标。这项任务的主要目标是查找和定位与任何给定产品图像相似的产品图像。

技术栈

语言:Python

云支持:AWS

数据集描述

  • 数据集包含三列:每个图像的公共 URL、其唯一标识符和类别,用于对图像进行分类或描述。
  • Elastic search 用于索引,MobileNetV2 的 ImageNet 权重用于特征提取。
  • 使用 K 最近邻技术可以更容易地查找与图像像素最相似的照片。这通过找到聚类图中的 k 个最近邻组件来为图像完成。

项目所需的库 - Keras, Elastic search, Numpy, Tensorflow, Pandas, Sci-kit learn, and Requests 是这些库。

数据概览

数据集中包含公司不同产品类别的增强图像,因此每个图像都有一个真实标签。共有 1,011,532 张图像,其中 90,834 张用于测试,10,095 张用于验证。

应注意,仅提供每个图像的链接。用户必须自行下载照片。应指出的是,图片 URL 可能会随着时间的推移而失效。

方法

  1. 使用提供的 URL 从标签 ID 获取图像以下载所有图像。
  2. 使用 MobileNetV 的 imagenet 权重进行特征提取的 Elasticsearch 索引。
  3. Elastic Search 中的 K 最近邻算法在 Image2Image 查询中用于识别与搜索图像最相似的 K 个最近邻向量。

5. 使用 Python OCR 和 Spacy 进行深度学习简历解析

每个月,数以千计的求职者简历涌入招聘人员和公司的收件箱。在招聘流程中筛选这么多人,对于一个人来说是相当困难和令人痛苦的。这个过程很快就会变得枯燥乏味。简历解析有助于将简历中的关键数据组织成基本类别或标签。这些标签构成了简历核心思想的关键组成部分。这些标签可能包括一个人的姓名、职位、学校、学院、工作单位等。简历解析器将这些简历处理成仅包含最重要数据的形式。使招聘人员的工作更加合理,减轻他们的负担。

项目描述和该项目的各个部分将在下面解释

想象一下,您是一家公司人力资源部的实习生,被交给一堆大约一千份简历。您的职责是列出适合软件工程师职位的候选人。现在,由于该公司没有为候选人提供简历格式,您需要手动检查每一份简历。这不是很乏味吗?

但是,有一个简单的解决方法:开发一个简历解析应用程序,该应用程序接收简历作为输入,然后提取和分析所有相关数据。招聘人员和人力资源部门很难筛选数以千计的合格简历。他们要么缺乏合格的候选人,要么需要多人来完成这项工作。手动花费过多时间分离候选人简历是对公司时间、金钱和生产力的浪费。因此,我们鼓励您研究简历解析项目,该项目有潜力自动化分离过程并为企业节省大量时间。

数据集描述

数据集以 JSON 格式呈现(标签、实体结束标签、实体开始标签、实际文本)

如前所述,构成简历核心的类别是标签。例如,姓名、职位、城市、经验、技能等。在建模之前需要对数据集进行处理。处理确保数据结构正确,以便在 Spacy NER 中使用。

Spacy 命名实体识别

基于 Python 的识别是一个用于关联文本及其解释的框架。它是一种先进的自然语言处理方法,使用生成位置解析。该方法采用词嵌入来揭示单词的语义和句法之间的关系。

例如,“我在牛津的时光并不愉快。”在查看了数百份具有相同信息或含义的申请后,NER 会意识到剑桥指的是一所学院或学校。

使用光学字符识别,可以从照片中读取文本并将其转换为文本。使用光学字符识别读取简历,将其转换为文本或 PDF 以用作模型输入。

使用 Python OCR 和 Spacy 的深度学习简历解析项目目标

本项目使用 Python 库 SpaCy 实现分词、词形还原、词性标注和其他 NLP 技术。用于开发 Python 简历解析器。您还将学习使用光学字符识别 (OCR) 从文档中提取文本数据,因为所有简历都以 PDF 格式提交。该应用程序只需最少的人工干预即可从简历中提取关键信息,例如申请人的姓名、工作经验和地点。尝试一下,因为它是最令人兴奋的初学者 NLP 项目之一。

我们的简历解析器应用程序可以接收数百万份简历,解析必要的字段,并对其进行分类,从而解决这个问题。SpaCy,一个著名的 Python 库,在此简历解析器中用于 OCR 和文本分类。在使用了这些字段来训练我们的模型后,该应用程序可以从新提交的简历中识别出它们的价值。项目

以下是您在构建 Python 简历解析器应用程序系统时将学到的令人兴奋的概念的介绍。

分词过程

  1. 这是将文本数据划分为词元或片段的过程。
  2. 一个句子可以被分解成词语或字符的词元,或者选择取决于您想要解决的问题。
  3. 这通常是任何 NLP 项目的第一步,这个用 NLP 项目制作的简历解析器也将遵循此模式。
  4. 分词有助于 NLP 管道的后续阶段,该阶段通常涉及评估每个词相对于其在语料库中重要性的权重。

词形还原过程

此 Python 简历解析程序的主要目标是解析文本的语义。为此,动词的形式对句子没有显著影响。因此,所有词都被还原为它们的词根形式,称为“词元”。例如,“drive”、“driven”和“drove”这些词都匹配词元“drive”。

词性标注

当在一个短语中使用时,“Apple”这个词可能意味着两种不同的事物。您可以根据名词是用作描述性术语还是普通名词,来判断某人是在谈论水果还是一个大型全球电脑公司。这个 CV 解析器 Python 实验将阐明 Python 如何处理 POS 标注。

停用词去除过程

停用词是几乎不给句子增加任何意义的词,例如“a”、“the”、“am”、“is”等。为了节省时间和处理器速度,这些词通常被删除。候选人可能会在他们的简历中用长段落列出他们的工作经历,其中包含许多停用词。

SpaCy

  1. SpaCy 是一个 Python 库,可以快速实现上述技术,并被数据科学家广泛用于许多基于 NLP 的项目中。
  2. SpaCy 内置了一个名为 display 的可视化工具,可用于可视化文本数据中的各种实体。
  3. SpaCy 还使得使用基于规则的匹配、浅层解析、依赖解析等类似技术成为可能。
  4. 在这个 NLP 简历解析项目,您将学习使用 SpaCy 进行命名实体识别 (NER)。
  5. 使用 TIKA 进行 OCR 在本项目中,您将使用 Apache Tika,一个开源库,来实现 OCR。“OCR”的首字母缩写代表光学字符识别。此简历提取 Python 项目将用于通过将图像转换为文本来解码 PDF 文件中的文本信息。
  6. 各种 NLP 技术用于处理文本数据并提取有意义的信息。
  7. 机器学习流水线 该项目使用机器学习和自然语言处理来解析简历。您将了解完整的机器学习项目是如何用于解决现实世界问题的。
  8. 在此项目中,使用 SpaCy 库构建的神经网络用于构建一个模型,该模型可以从各种格式的各种简历中提取位置、姓名等相关字段。

扩展 Python 简历解析器

本项目概述了针对小型数据集的解决方案。但是,如果您有兴趣开发一个已准备好投入生产并且能够分析数百万份简历文档的 Python 模型,您可以参考“在 GCP 上使用 Streamlit 进行简历解析的模型部署”。请记住,在用于处理许多简历之前,此模型需要进行标记并使其能够学习可能已添加的任何新实体。