zillow房价预测比赛_Zillow房价预测系列:Kmeans聚类地理信息并可视化

本文介绍了如何利用K-Means算法对Zillow房价预测比赛中的地理位置数据进行聚类,并展示聚类后的可视化结果。通过将经纬度数据标准化,对数据集进行初步分析,然后应用KMeans进行10类聚类,并在地图上以不同颜色标记,揭示了地理位置对房价的影响。作者强调了地理信息的重要性,并鼓励进一步探索更复杂的处理方法。
摘要由CSDN通过智能技术生成

利用K-Means算法对Zillow竞赛数据的经纬度地理信息进行聚类,并将聚类结果进行可视化。

Kaggle举办了很多次房价预测相关的比赛。在房价预测比赛中都会有涉及到地理位置的特征,比如:最基本的经纬度(longitude、latitude),还包括地区编码、邮编等。

地理位置对房价的重要性想必大家都是知道的,对一套相同条件的房子来说,位于北京和昆明的可谓天壤之别。因此需要我们花费大量的时间和精力来处理这些特征。

一、地理位置特征处理方法

看到地理位置信息,首先就会想到聚类,一个简单的方式将每个房子划分到同一块区域中去;除了聚类以外,通过算出几个中心点坐标,计算曼哈顿距离或者欧式距离可能都会有神奇的效果。

二、Zillow地理信息可视化实战分析

我最近在刷Zillow,所以就以Zillow数据集为例,介绍地理信息聚类方法。

第一步,我们把地理信息先可视化出来,看看效果。

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

from sklearn.cluster import KMeans

properties = pd.read_csv('../input/properties_2017.csv')

# make geo_df

geo_df = properties[['parcelid','latitude', 'longitude']]

geo_df['longitude'] = geo_df['longitude'] / 1e6

geo_df['latitude'] = geo_df['latitude'] / 1e6

x = np.array(geo_df['latitude'])

y = np.array(geo_df['longitude'])

fig = plt.figure(figsize=(16, 12))

plt.scatter(x, y, alpha=0.5)

plt.show()

第二步,利用KMeans算法进行聚类,并可视化聚类效果。

kmeans = KMeans(n_clusters=10).fit(geo_df[['latitude', 'longitude']])

geo_df['cluster_n'] = kmeans.labels_

fig = plt.figure(figsize=(16, 12))

x = np.array(geo_df['latitude'])

y = np.array(geo_df['longitude'])

colors = ['b', 'g', 'r', 'c', 'm', 'y', 'k', 'aqua', 'brown', 'darkblue']

#print color

for i,c in enumerate(geo_df['cluster_n'][:500]):

plt.scatter(x[i], y[i], c=colors[c], alpha=0.5)

plt.show()

可视化结果,将地理信息聚类为10类并用不同的颜色来表示,在地图上的位置相对是比较集中的,具体代表的含义需要我们下来深挖。这里只是提供一个想法。

结束语

地理信息对房价来说真的非常非常非常重要,仅仅是简单的聚类完全没有将特征的价值发挥出来,需要再尝试不断的用其他方法来处理。还有很多更加深入的处理方法,我们可以参考在之前的比赛中其他优秀获奖选手的处理思路,改进我们的处理方法,毕竟模仿也是学习最快的手段。

欢迎关注个人微信公众号:“kaggle数据分析”,分享kaggle比赛的经验和方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值