回归问题属性的可视化

回归问题预测一般用折线图进行可视化,去了解属性和属性值之间的变化,这里参考《预测分析核心算法》为教程做以整理,对属性值可视化进行描述。

数据情况

  • 数据是预测鲍鱼年龄的回归问题。数据column分别为’Sex’(性别), ‘Length’(长度), ‘Diameter’(直径), ‘Height’(高度),’Whole Wt’(整体体重), ‘Shucked Wt’(去壳后重量),’Viscera Wt’(脏器重量), ‘Shell Wt’(壳的重量), ‘Rings’(环数)。
  • 目标: 实现Ring标签的实数值(属性值)到颜色值的映射

代码实现

在归一化后对数据进行可视化

scale

import pandas as pd
import matplotlib.pyplot as plot
from math import exp
url = ("http://archive.ics.uci.edu/ml/machine-"
       "learning-databases/abalone/abalone.data")
abalone = pd.read_csv(url, header = None, prefix="V")
abalone.columns = ['Sex', 'Length', 'Diameter', 'Height',
                   'Whole Wt', 'Shucked Wt',
                   'Viscera Wt', 'Shell Wt', 'Rings']
summary = abalone.describe()
minRings = summary.iloc[3, 7]
maxRings = summary.iloc[7, 7]
nrows = len(abalone.index)
#
for i in range(nrows):
    datarow = abalone.iloc[i, 1:8]
    labelColor = (abalone.iloc[i, 8] - minRings)/(maxRings - minRings)
    datarow.plot(color=plot.cm.RdYlBu(labelColor),alpha=0.5)
plot.xlabel("Attribute index")
plot.ylabel("Attribute value")
plot.show()

scale标准化后图像

这里可以看出每个属性和Ring的相关性。因为scale后数值被压缩导致颜色大多数集中

renormalize

meanRings = summary.iloc[1, 7]
stdRings = summary.iloc[2, 7]
for i in range(nrows):
    dataRow = abalone.iloc[i, 1:8]
    normTarget = (abalone.iloc[i, 8] - meanRings) / stdRings
    labelColor = 1.0/(1.0 + exp(-normTarget))
    dataRow.plot(color=plot.cm.RdYlBu(labelColor), alpha=0.5)
plot.show()

归一化后的结果

加上阶跃函数后颜色有明显的区分。从图上分析:

  1. 属性上整体重量和去壳后重量是两个重要属性
  2. 属性中不同颜色依然有区分(深浅不一)说明并不能完整预测环数Rings
  3. 然而其他属性能够很好将其分开如直径
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值