![深度学习初学者指南](https://wfqqreader-1252317822.image.myqcloud.com/cover/87/41787087/b_41787087.jpg)
3.3.1 缩放到特定范围的数值
让我们回到本章前述的心脏病数据集。如果你注意的话,这些变量中有很多是取实数值的,这是回归分析的理想选择,如和
。
所有的变量都适合做回归分析。这意味着,从技术上讲,我们可以对任何类型的数字数据进行预测。事实上,对于一些取值为实数值的变量或属性会使得它们更适合回归。例如,该列中的实数值具有超越整数和自然数的含义。
让我们关注和
,这两个变量分别是胆固醇的测量水平和运动相对于休息诱发的ST段下移量。如果我们想改变医生最初的研究问题,即根据不同的因素来研究心脏病,该怎么办?如果现在想利用所有的因素,包括知道病人是否有心脏病,来确定或预测他们的胆固醇水平,那又会怎么样?可以通过对变量
进行回归分析的方式来实现这些目标。
因此,为了准备关于变量和
的数据,将进一步改变数据的尺度范围。为了进行验证,将检索这些数据在缩放前后的统计特性。
为了重新加载数据集并展示其统计特征,可以这样做:
![](https://epubservercos.yuewen.com/696A86/21821546001993006/epubprivate/OEBPS/Images/057-6-i.jpg?sign=1738847732-tOVfMzxOLM6acFTfCWXZZJQtsngf9Jca-0-70949e42653ca68b3099fce7604b0bdd)
在本例中,索引4和9对应于和
,describe()方法输出下列信息:
![](https://epubservercos.yuewen.com/696A86/21821546001993006/epubprivate/OEBPS/Images/057-7-i.jpg?sign=1738847732-PGMPUJEb1UDYEVAkjlSw8go5tIB8S43A-0-a641189825abb747df2983543e256e04)
最值得注意的属性是该列中包含的平均值和最大值或最小值。一旦将数据扩展到不同的范围,这些取值会发生改变。可以将数据可视化为带有各自直方图的散点图,如图3.2所示。
从图3.2可以看出,数据取值范围的差异比较大,数据分布的差异也比较大。将这些数据进行变换后所得新数据的期望变换范围最小值为0,最大值为1。当我们对数据的尺度进行变换时,这是一种比较典型的变化范围。使用scikit-learn的MinMaxScaler对象就可以实现,具体步骤如下:
![](https://epubservercos.yuewen.com/696A86/21821546001993006/epubprivate/OEBPS/Images/057-8-i.jpg?sign=1738847732-CXLdBcCTMwVH2o0CYFOWEmuxm9ew0zrj-0-f85bc4d90664a8d0b31f7e0950189c8f)
输出结果如下:
![](https://epubservercos.yuewen.com/696A86/21821546001993006/epubprivate/OEBPS/Images/057-9-i.jpg?sign=1738847732-QRFmtMU1ECHqD8MP5RrJLs1ytJbcmnUu-0-82ca0bbb922f2f8eb1db22d679e67d3e)
![](https://epubservercos.yuewen.com/696A86/21821546001993006/epubprivate/OEBPS/Images/3a2.jpg?sign=1738847732-NOvomu7VMZ3bvGIpqAtOXRTEPUa4EqBg-0-df0a6be69020d0bbc2a28e10e4916ff9)
图3.2 x5和x10两列的散点图及其直方图
fit()方法在内部所做的工作是确定数据的当前最小值和最大值。然后,transform()方法使用该信息删除最小值并除以最大值以获得所需的范围。可以看出,新的描述性统计数据已经发生了变化,从图3.3的坐标轴范围可以证实。
![](https://epubservercos.yuewen.com/696A86/21821546001993006/epubprivate/OEBPS/Images/3a3.jpg?sign=1738847732-xd5Zb38cr2bYJDdRgLw5dv9PwooIA61j-0-36bb49129d3c9468462c81aca6946579)
图3.3 缩放后列x5和x10新数据的散点图及其直方图
但是,如果你仔细观察的话,就会注意到数据的分布其实并没有发生改变。也就是说,图3.2和图3.3中的数据直方图是相同的。这是一个非常重要的事实,因为通常你不想改变数据的分布。