| 扬声器 |
文字稿 |
| 克莱·巴克 |
谢谢,我叫克莱·巴克,是JMP团队的统计开发人员。今天我要介绍的是JMP Pro 16版本的一个新功能,叫做项选择。这个功能是我和我的同事帕里斯·费森和欧内斯特·帕苏尔一起开发的。 |
| |
因此,文本数据在实践中变得越来越普遍。我们可能拥有客户对我们产品的评价,也可能拥有某些事件的描述或我们某些设备的维护日志。 |
| |
在这个例子中,在我的幻灯片上,这是来自…… |
| |
飞机事故……我们样本数据中的事故数据集。 |
| |
每一行数据都描述了一起航空公司事故、坠机或其他类型的故障。 |
| |
如果您从未用过文本浏览器平台,它是在 JMP 13 中引入的,我们主要用它来帮助汇总和分析文本数据。 |
| |
因此,它可以轻松完成一些常见任务,例如查看出现频率最高的词语和短语,也可以轻松执行诸如文档聚类或主题分析等操作。而这一切都由所谓的文档词项矩阵驱动。 |
| |
那么,什么是文档词项矩阵呢?最简单的理解方式是,它就是一个指示变量矩阵,用于表示每个文档是否包含特定的词语或短语。 |
| |
我们可以根据词语在每篇文档中出现的频率来赋予其权重。因此,每篇文档都对应文档词项矩阵中的一行,每一列代表一个词语。 |
| |
举个简单的例子,第一行是“披萨包装令人沮丧”。所以我们用 1 代表包装, |
| |
一行中,“pizza”(披萨)和“frustrating”(令人沮丧的)都赋值为 1,其他所有词语都赋值为 0。同样地,第二行中,“smell”(气味)、“great”(很棒)、“taste”(味道)和“pizza”(披萨)都赋值为 1,其他词语都赋值为 0。这只是对每份文档中出现的词语的简单概括。 |
| |
我还提到过,文档词项矩阵有几种变体。最简单的是二进制形式;它只包含 0 和 1。 |
| |
但我们可能希望包含每个单词出现频率的信息,所以这里是另一个稍长的句子,其中“pizza”出现了多次。 |
| |
在二元文档词项矩阵中,“披萨”这一列的值仍然是 1,因为我们不关心它出现的频率。而对于三元词项矩阵,它的值为 2,因为三元词项矩阵由 0、1 和 2 组成。如果该词未出现,则值为 0;如果出现一次,则值为 1;如果出现多次,则值为 2。 |
| |
即使某个词在这里出现了四次,我们仍然将其编码为 2。词频的计算非常简单,就是每个词在该文档中出现的次数。 |
| |
以上是三种非常简单的加权方法,我们还提供 TF-IDF 加权,它有点像相对频率,您可以在[此处插入链接]了解更多关于这些加权方案的信息。 |
| |
文本浏览器平台。 |
| |
那么下一步是什么?接下来你可能想用什么? |
| |
你或许想利用这些文字来帮助你达成某些目标。所以,我在这里编造了一些家具评论,每条评论都配有星级评分,对吧? |
| |
所以我们可以认为,这些评论能给我们一些线索,让我们了解为什么有人会给产品打高分或低分。比如,在第一条评论中,用户写道“说明书令人沮丧”,而他只给了我们3分。如果……如果这种情况经常发生,而且很多人都在评价…… |
| |
很多低评分都与说明书有关,这可能表明我们需要改进家具附带的说明书。 |
| |
所以,简单来说,就是把这些数据用作回归模型。我们将……我们将使用文档词项矩阵, |
| |
我们将把它和我们的响应信息结合起来,然后进行回归分析。 |
| |
这将有助于我们了解顾客为什么喜欢或不喜欢我们的家具,或者我们生产的任何产品。 |
| |
它可以帮助我们对物体进行分类,根据描述,我们稍后会看到一些例子,或者我们可能想根据一些机器的维护记录来了解为什么有些机器会发生故障或不会发生故障。 |
| |
我们实现这个目标的方法非常简单。 |
| |
我们实际上只是在构建一个回归模型,其中每个 X(或预测变量)都是项矩阵中的一列。因此,如果我们对产品评分进行建模,那就是一个简单的线性回归;如果我们…… |
| |
如果我们正在对一个二元结果进行建模,例如客户是否会推荐我们的产品。 |
| |
可能长达数百字,不全部使用也是合理的。并非所有数据都有用,因此我们将对回归模型应用变量选择技术,从而得到一个更简单、易于解释且拟合良好的模型。 |
| |
在底部,很容易就能将这些指标变量与我们的响应评分(星级评分)结合起来进行可视化。 |
| |
因此,我们将在 JMP 16 中提供的解决方案是将回归模型引入文本浏览器平台。如果您曾经使用过通用回归平台进行变量选择,那么我们实际上是将该平台嵌入到文本浏览器中。 |
| |
因此,如果您拥有 JMP 专业版,您将在文本浏览器的红色三角形菜单中看到术语选择项。 |
| |
这正是我们真正感到兴奋的地方。它使得构建和改进这类回归模型变得轻松快捷。 |
| |
所以,当您启动这个平台时,我们稍后会进行一些演示,但先简单介绍一下, |
| |
在发布之初,它只是询问我们的反馈以及我们想要采用的模式类型。 |
| |
因此,它既可以处理连续响应(例如星级评分),也可以在指定连续响应时提供筛选器,以便您可以根据响应筛选出某些行。 |
| |
当响应列为名义变量时,我们需要选择目标水平。例如,在本例中,您会推荐我们的产品吗?是或否。我们将对……进行建模。 |
| |
我们将对推荐数量进行建模。 |
| |
如果响应级别为多级,例如蓝色、绿色、黄色,我们将选择要建模的级别,稍后我们将看到一个例子。 |
| |
然后,在您指定响应之后,我们将向平台提供一些关于我们想要拟合的模型类型的信息。 |
| |
那么,在进行变量选择时,我们是要使用弹性网络还是 Lasso?这两种方法都是广义回归中内置的变量选择技术。我们又该如何进行验证呢?是使用 AIC 还是 BIC? |
| |
此外,我们还可以指定文档词项矩阵的详细信息。我们可以选择权重,还可以选择要考虑的最大词项数量。例如,如果我们想考虑出现频率最高的 200 个词,那么现在就设置为 200。 |
| |
那么,当你启动程序并点击运行按钮后会发生什么呢?基本上,它会执行所有操作。 |
| |
你需要做的就是这个。它会在后台正确设置数据,这样你就不用担心了。它会进行变量选择,所以我们现在有了一个我们认为对预测响应有用的词语子集,并且它会以简单易懂的方式呈现结果。 |
| |
解读报告需要一些时间,而且它具有很强的交互性,我们稍后会看到。以前可以通过以下方式完成这项工作: |
| |
将文档词项矩阵保存到您的数据集中,并自行启动一个通用回归平台。 |
| |
但你现在不必再那样做了。现在选择就全部都在这里了。 |
| |
那么,在模型规范中,我们如何知道该选择什么? |
| |
可用的估计方法有弹性网络法和套索回归法。记住这两种方法区别的简单方法是: |
| |
弹性网络倾向于选择相关的预测变量组。因此,在这种情况下,当我们的预测变量都是单词时, |
| |
这意味着它会倾向于选择那些经常一起出现的词组。例如,如果你想到“instruction”(说明)和“manual”(手册), |
| |
由于说明书中的词语经常同时出现,所以这两个预测因子会高度相关,弹性网络模型很可能会同时选择它们,而套索回归模型则可能选择“说明书”或“手册”,但不一定会同时选择两者。 |
| |
验证方法有 AIC 和 BIC。 |
| |
因此,一般来说,AIC 倾向于过度选择模型,而 BIC 倾向于选择不足。所以在我们的规范中, |
| |
只是 AIC 倾向于选择更大的词集,而 BIC 倾向于选择更小的词集。 |
| |
就我个人而言,我倾向于在设置中经常使用 AIC,因为我宁愿多用一些词语也不愿用太少的词语,但这真的只是个人偏好问题。 |
| |
文档术语权重…… |
| |
我指的是文档词项矩阵权重。 |
| |
这真的取决于你的问题。比如在这个例子中, |
| |
评论中多次出现“油漆”一词。这可能意味着评论者非常…… |
| |
这位评论者认为油漆非常重要,这可能对我们的回归模型有意义,因此我们希望使用频率之类的权重而不是二元权重。 |
| |
所以,一旦你启动术语选择,最终就会进入类似这样的界面,我们这里有 |
| |
左侧是所有文档的摘要,右侧是我们选择的所有词语。我现在先略过这部分;等我们开始演示的时候再看会更清楚。 |
| |
我们认为另一个非常有用的功能是摘要,您可以使用术语选择来拟合一系列模型,然后所有模型都会汇总在顶部,您可以来回切换查看。我们稍后会看到这一点。 |
| |
那么我们来看看这个平台。 |
| |
首先,我们来看这个。 |
| |
JMP 示例数据文件夹中的飞机事故数据集。 |
| |
所以表格中的每一行都代表一起事故。我们知道飞机受损程度、人员伤亡情况,以及事故描述。最后一列是对事故经过的详细描述。 |
| |
所以我们将启动文本浏览器,如果您以前从未使用过文本浏览器,左侧显示的是最常用的术语,右侧显示的是最常用的短语,也就是词组。 |
| |
所以我们希望用这些词语来理解 |
| |
是什么导致碰撞造成更大的损失,或者更严重的伤亡?所以我们要点击红色三角形菜单,选择相关术语。 |
| |
现在我们看到了刚才看到的这次发射,我想了解更多关于损伤的信息,对吧?特别是,我想区分飞机被摧毁和受损较轻的情况,所以我们要选择被摧毁的目标级别。 |
| |
我还要提一下,这种提前停止的功能其实是一种节省时间的功能。 |
| |
当我们进行变量选择时,对于更大的问题来说,这可能会非常耗时。如果您选中此复选框,它会显示类似这样的信息: |
| |
我们认为我们的模型已经足够好了;我们决定提前结束。除非我知道存在更大的问题,否则我通常不会勾选这个选项。 |
| |
所以,我就用 Elastic Net 和 AIC 来代替,然后我们开始运行。 |
| |
现在后台正在做的是,它创建了我需要用来拟合这个回归模型的数据,并在后台拟合回归模型,现在我有了总结结果。所以每个 |
| |
左侧面板汇总了所有文件,这是第一起飞机事故,这是第二起,目前是空白的。 |
| |
第一个事故是,飞机撞上了跑道边上的雪堆。 |
| |
我们已经将所有重要的词语突出显示,蓝色词语的系数为负,橙色词语的系数为正。 |
| |
如果我们对单词感兴趣,可以查看右侧的面板。我通常喜欢按系数排序,所以您可以直接点击顶部按钮。 |
| |
因此,在这种情况下,系数为负的单词被销毁的可能性较小。所以如果 |
| |
文件中包含“着陆”一词,如果飞机已经到达着陆点,那很可能不是什么严重的事故。因此,这些情况发生的可能性较小。 |
| |
被摧毁。另一方面,我们也可以看看最积极的词汇,这些词汇与飞机被摧毁的事件联系最为紧密。 |
| |
而这些词语包括“火灾”、“目击者”。如果他们正在采访目击者来描述事件经过,那很可能意味着当时在飞机上的乘客无法接受采访。 |
| |
所以,火、雷达、旋转、夜晚,这些都是与此密切相关的词语。 |
| |
被摧毁。 |
| |
现在,我们可能还对受伤程度感兴趣,具体来说,我们将关注最严重的受伤程度。 |
| |
我们将再次进行学期选择。 |
| |
为了简单起见,我就接受这个结果吧。 |
| |
所以现在我们可以做同样的事情,但现在关注的是伤病程度。 |
| |
所以,如果采访对象包括机长或着陆人员,那么就伤情程度而言,这些伤情可能并不严重。 |
| |
但如果再次提到雷达、夜晚、山脉,这些词语就严肃得多。所以我们可以快速地在这两种回答之间来回切换,看看哪些词语能够预测这两种回答。 |
| |
受伤程度和损失程度。 |
| |
那么我们来看另一个例子。 |
| |
这是我非常喜欢的一点。之前我举例子里提到了披萨,现在我们来聊聊啤酒。显然,这些都是我非常喜爱的东西。 |
| |
所以我这里有的是……我根据一些啤酒评论下载了每种啤酒风格的描述。 |
| |
身体。 |
| |
所以每款啤酒都有描述。 |
| |
上面还写着啤酒的产地。所以我们有…… |
| |
美国、德国、爱尔兰。 |
| |
使用术语选择功能查看 |