任务描述
这是机器学习分类问题的“Hello World”示例。它由罗纳德·费舍尔于 1936 年首次推出。他是英国统计学家和植物学家,他在本文中使用了这个例子 在分类学问题中使用多重测量,这在今天经常被引用。数据集(查看文末了解数据、代码免费获取方式)包含 3 个类,每个类 50 个实例。
相关视频
每类都指一种鸢尾植物:鸢尾、弗吉尼亚鸢尾和花色鸢尾。 **第一类与其他两个是线性可分离的,但后两个彼此之间不是线性可分离的。每条记录有五个属性:
萼片长度(厘米)
萼片宽度(厘米)
花瓣长度(厘米)
花瓣宽度(厘米)
类(鸢尾、弗吉尼亚鸢尾、杂色鸢尾)
我们将要创建的神经网络的目标是根据其他属性预测鸢尾花的类别。为了解决这个问题,我们将定义步骤:
数据的分析和预处理
构建和训练模型
评估模型
做出新的预测
算法实现步骤
1 数据分析与预处理
数据分析本身就是一个主题。在这里,我们不会深入到特征工程和分析,但我们将观察一些基本步骤:
单变量分析 – 分析每个特征的类型和性质。
缺失数据处理 – 检测缺失数据并制定策略。
相关性分析 – 比较彼此之间的特征。
拆分数据 – 因为我们有一组信息,所以我们需要制作一组单独的数据来训练神经网络和一组数据来评估神经网络。
使用我们在此分析过程中收集的信息,我们可以在创建模型本身期间采取适当的操作。首先,我们导入数据:
如您所见,我们使用Pandas库,我们还打印出前五行数据。这是它的样子:
完成此操作后,我们想看看每个功能的性质是什么 。为此,我们也可以使用熊猫:
输出如下所示:
正如我们所看到的,物种或输出的类型为int64。但是,我们知道这不是我们想要的。我们希望此功能是一个分类变量。这意味着我们需要稍微修改一下这些数据,再次使用Pandas:
完成此操作后,我们检查数据集中是否缺少数据。这是使用此函数完成的:
此调用的输出为:
丢失数据可能是我们的神经网络的一个问题。如果我们的数据集中缺少数据,我们需要定义一个如何处理它的策略。一些方法是将缺失值替换为要素的平均值或其最大值。
但是,没有灵丹妙药,有时不同的策略比其他策略提供更好的结果。好的,进入相关性分析。在此步骤中,我们将检查功能如何相互关联。使用Pandas和Seaborn模块,我们能够获得一个图像,该图像显示了某些特征之间依赖级别的矩阵 - 相关矩阵:
该矩阵如下所示:
我们想使用这个相关矩阵找到Spices和一些特征之间的关系。如您所见,这些值介于 -1 和 1 之间。我们的目标是值接近 1 或 -1 的那些,这意味着这些功能没有太多共同点, 即。对彼此的影响太大。
领取专属 10元无门槛券
私享最新 技术干货