将简单分类器和神经网络应用于实际数据

许多用于在线研究目的的流行数据集是干净和平衡的,在响应和预测变量之间具有强相关性。然而,真实世界的数据可能远非如此理想化的图景。因此,在研究数据集上提供良好结果的模型可能会给实际数据带来不好的结果。在这种特殊情况下,我将研究一个包含PC性能不同指标的数据集,以创建一个模型来预测给定设备何时需要重新映像(reimage)的时间表。

大多数变量都是数字。我们来看看数据的第一行和最后五行:

数据集的前5行

检查数据集中的NaN数据中没有缺失值,除了预期的'next_reimage'列。数据集描述中提到了'date'变量,因此也没有缺失值。在研究变量的分布之前,让我们先做一些清理。我将'日期'转换为日期时间对象并删除'next_reimage'变量。此外,让我们将“Zone”变量的0级别重命名为“7”,以便健康级别的变化看起来更合乎逻辑。

数值变量的分布变量“free_physical_memory”、“free_virtual_memory”和“daily_average_ram”都有最小值为0,这是没有意义的。无论系统的性能如何,在现实生活中这些值的最小值不能为零。接下来,“average_time_since_last_boot”具有负值,这也没有意义。daily_average_ram的最大值是1418.6%,这是不可能的。

上述所有情况都表示数据集的一小部分,可以删除。

接下来,让我们看看每个响应变量(“zone”)的级别是如何分布的。为这一数量的数据绘制单个的条形图需要花费大量的计算时间,因此我们将使用汇总表和这些分布的图表来评估变量的分布属性。首先,让我们看一下区域的响应数量:

按区域计算行数在这里,我们遇到了真实世界数据集的第一个标志:几乎96%的数据集条目属于区域7(PC没有问题),这是合乎逻辑的。实际上,区域1到5仅占所有数据的0.3%。这使得数据集非常不平衡,这使得标准模型评估指标如准确性得分与这种情况关系不大。在区域1-5之间,每个区域的行数大致相同,区域6的观察值比前面的5个区域多10倍。

基于上述,我们可以做出几点观察。首先,随着设备接近临界状态(区域1),空闲物理内存的平均量趋于略微增加,并且随着设备离开区域7-6进入区域5,空闲虚拟内存量显着下降。均值的日均RAM值在设备接近临界状态时下降约6pp,而该平均值的标准差增加。在第7区中约95%的观测值具有Windows事件,而其他区域中该变量接近99%。

偏差的分布对于所有区域,预测变量的分布基本上是倾斜的,这意味着存在大量的异常值,并且大多数变量具有正偏差。我们来看看这些变量的区域图。Pandas的标准boxplot()函数不会产生令人满意的结果,所以我将不得不为56个图表创建一个手动网格。我还必须限制x轴,以便删除一些过度缩小图表的异常值。

可以看出,所有变量的分布实际上对于区域1至5是相同的。区域6和7在变量'free_physical_memory','free_virtual_memory','daily_std_dev_ram','driver_crash_count'和'average_time_since_last_boot'中具有明显更多的异常值。

数据的相关热图可以看出,“区域”变量与数据集中的预测因子具有非常小的相关性,这并不令人惊讶,因为随着设备从一个区域向另一个区域前进,预测变量值的绝对值变化很小。与此同时,一些预测因素具有实质相关性:'free_virtual_memory'与'free_physical_memory'强烈正相关,这是合理的,因为较大的虚拟内存会降低系统对空闲物理内存的需求。

检查下采样数据集的行数最后,我们将下采样数据集保存到一个文件中。此文件可在GitHub找到(https://github.com/mamnunam/Springboard_Data_Science_track/blob/master/Capstone_2/downsampled_data.csv)。

Logistic回归分类报告该模型完全错过了2-5级,并且对于预测类别7的效果最好,但精度和召回率的值仍然很低。由于数据集显着的初始不平衡,准确性评分或精度/召回等指标可能不是评估模型质量的最佳指标。让我们看一下Cohen的Kappa分数作为评估预测质量的替代指标:尽管Kappa分数的大小的解释各不相同,但从任何角度来看,0.12都非常低,并且表示预测质量很差。

最好的随机森林模型的参数最佳模型的混淆矩阵:#创建混淆矩阵pd.crosstab(y_test,fitted_alternative_models['rf']。predict(X_test),rownames=['True'],colnames=['Predicted'],margin=True)

随机森林模型的混乱矩阵

分类报告该模型检测所有区域(与Logistic回归模型不同),对区域6-7具有最高的精确度和召回率。最后,我们来看看Kappa评分:得分明显好于Logistic回归模型,但仍不是很高。现在让我们尝试一种更复杂的建模方法。神经网络模型基于神经网络的模型在机器学习中被广泛用于分类目的,尽管它们通常需要大量的计算能力。

Model’saccuracymetricsandlossfunctiondynamic图表显示训练集的分数在几个epochs内几乎达到100%,而测试集的分数保持非常接近于零,并且随着epochs的数量仅略有增加。同时,模型损失迅速增加到20个epochs,然后保持在同一水平。其中一个主要原因可能是测试集的体积小,以及整体数据集小。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180620A0ZS0Z00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券