今天聊聊数据可视化。
在数据分析中,数据可视化是一道很重要的工序,毕竟人都是视觉动物,要想以最直观最震撼地方式,向不同知识背景的观众老爷展示我的数据分析结果,可视化是最佳也几乎是唯一的选择。
机器学习也一样。虽说模型不相信视觉,但毕竟人工智能人工智能,有多少人工才能有多少智能,数据探索差不多就成了不可缺少的重要工序,这时数据可视化就很重要了。
不过,“可视化”听着好像很酷很复杂,实现挺简单。
拿加利福利亚房价预测来说好了,这个数据集已然成为回归预测的Hello World,要获取也很容易:
代码语言:javascript复制import sklearn.datasets as datasets
dataset = datasets.fetch_california_housing()
虽然内置了Api,不过数据还是要在线获取的。下好了可以通过变量dataset查看。dataset的类型是比较少见的sklearn.utils.Bunch,没必要深究,比较有用的属性有两个,data和feature_name,顾名思义,数据和属性名称。
看看都有哪些属性:
最后两个维度很重要,分别记录的是房子所在经度和维度,毕竟连猴哥都知道房子最重要的是位置。
那就看看位置分布好了。数据都在data里,不过是numpy.ndarray,要可视化先要做一些处理,转为DataFrame类型:
代码语言:javascript复制dataset = pd.DataFrame(dataset.data)
DataFrame是可以直接plot的,不过得设置plot什么。这里要看位置分布,就画个散点图吧:
代码语言:javascript复制dataset.plot(kind="scatter", x="Longitude", y="Latitude")
效果一言难尽,像是一群蚂蚁围攻两只正在约会的菜青虫:
对比一下加州的地图:
看得出来,散点图其实已经带了不少信息量,首先勾勒出了加州的大致轮廓,同时也反映出加州的发展重心在西边,和我国大多数地区正好相反——这不奇怪,加州毗邻西海岸。
大致趋势看出来来,不过,光知道哪是沿海城市未免太粗放了,好歹也得说一下哪是沿海一线城市。
这可以做到,将alpha调为0.5,这回菜青虫的内部结构也可以看清楚了:
下次再聊。