在Kaggle上找到一些随机的,连续的目标数据集…Airbnb出租。
您在纽约的Airbnb(Kaggle)上购买公寓的合适价格是多少。该数据集充分展示了连续和分类特征的组合(最后我们可以为您提供很好的地图可视化结果)。我们走吧。
因此,我们根据租金类型,位置,评论,主机受欢迎程度和历史可用性信息来预测价格。对于本博文,我们将轻轻地跳过冗长的数据探索和功能工程任务(当然,其中的重要性当然也不过分,不过这并不是本博文的重点)。但是,需要最少的预处理工作,即删除唯一的标识符和不相关的功能。NaN值和极端离群值也是如此。数据就绪-让我们将其拆分。目前,我们将使用火车和测试仪。唤醒QLattice现在我们可以开始比赛了。我们首先称为QLattice。要继续,我们需要告诉QLattice它生成的模型的输入和输出是什么。我们将数据集中的每个变量分配给一个语义类型-我们是在处理数字值还是分类值?默认情况下,每个变量都将被分配为数值并期望数值,因此我们仅指出类别变量:使用此功能,分类变量会自动在QLattice中编码。你听到了吗?不再需要手持一键式或类似的分类功能编码。
它会在分类寄存器中处理。同样,数字寄存器通过MinMaxScalar标准化自动将数据缩放到[-1,1]之间。如果您有特定的缩放比例愿望,则可以进行干预并自己进行数值缩放。Q图让我们将QLattice投入使用。QLattice的主要作用是生成QGraphs。QGraph是连接输入到输出的所有可能模型的集合。但是,由于计算和内存限制,QGraph无法容纳所有可能的模型,因此实际上是无限模型列表(通常是成千上万个模型)的子集。我们需要告诉QLattice,模型的输入和输出应该是什么。我们将所有变量都包含在下面的方法中,然后声明将哪个变量作为我们的输出。让我们为您展示一些随机的,未经训练的模型。每种型号都有两种类型的盒子。绿色是输入或输出,粉红色是我们所谓的交互。交互将获取一个值,然后对该值求值,然后将其移至下一个交互。这些模型有点类似于神经网络,但是节点更少,节点上的激活函数不是典型的类型。现在,我们将乘法,线性,正弦和高斯函数与典型的tanh函数一起应用。每个模型都有从左到右的自然流动,因此我们将数据集的每一行输入到输入中,在每个粉红色方框中进行评估,然后在输出的末尾产生预测。拟合像神经网络或任何其他机器学习技术一样,这些模型中的每一个都需要训练。每次交互的权重最初都是随机的,因此您上面看到的所有模型都可能很糟糕。QGraph fit方法需要采用以下参数:· QGraph中的模型数据应在其上进行训练· 我们要优化的损失函数由于我们处于典型的回归问题中,因此我们将使用标准均方误差损失。那么这里发生了什么?我们在子集的QGraph中训练每个模型。在拟合期间的任何给定时间,显示的图都是具有最小均方误差损失的模型。分类让我们来看看到目前为止最好的。我们通过使用sort函数来做到这一点。排序功能根据我们可以自由选择的一些标准对模型进行排序。让我们坚持标准案例;我们要基于所有训练集的损失对模型进行排序。更新数据那么,如果最初提取的几千个图表中没有一个与真实模型匹配,该怎么办?显然,我们还没有完成。答案就是更新。在更新QLattice时,我们会推动最佳学习,以影响QGraph中的下一个图形绘制-我们使下一个图形提取偏向于图形特征,从而使前一组图形中的损失最小。现在,我们准备好从QGraph绘制下一个图形。如下所示,让我们继续进行5次更新。适合,排序,更新,重复……直到您的损失持续一段时间没有减少(或者您只是不想再继续下去)。预测让我们来看看我们的努力。我们可以通过在图表上运行预测方法来预测测试集中的价格。最后,要闪闪发光:在纽约市的经度纬度范围内倾注实际情况和预测。希望通过本介绍QLattice解决回归问题的介绍,我们希望您对QLattice的意义有一个广泛的了解,并且我们已经引起了更多的兴趣。谢谢阅读。
(本文由闻数起舞翻译自Valdemar Stentoft-Hansen的文章《The QLattice: A new machine learning model you didn't know you needed》,转载请注明出处,原文链接:https://medium.com/abzuai/the-qlattice-a-new-machine-learning-model-you-didnt-know-you-needed-c2e037878cd)
(图片来源网络,侵删)
0 评论