前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >公交车到站预测2----数据后处理

公交车到站预测2----数据后处理

作者头像
钱塘小甲子
发布2019-01-29 09:43:16
5320
发布2019-01-29 09:43:16
举报
文章被收录于专栏:钱塘小甲子的博客

之前从csv获取了数据,但是我们的目的是用机器学习的方式对其分类。目测使用sklearn的机器学习库,所以要把数据处理成符合要求的格式。

代码语言:javascript
复制
import time        
import numpy as np           
from sklearn import cluster,datasets

首先是我们需要的一些模块,time就是时间处理的模块,这里的作用就是把表示时间的字符串转换成时间戳,这样就可以计算字符串代表的时间的含义了。numpy个人理解就是可以让python实现基本的matlab功能,也就是说是矩阵处理和基本数学处理的模块。sklearn就是机器学习模块了。十分强大。

代码语言:javascript
复制
def clearDic(dic,number):#delet the unfitable records
    dicb = dic.copy()
    for k in dic:
        if len(dic[k].keys()) != 20:
        del dicb[k]
    return dicb#retrun the clear dictionary

这是将之前处理好的字典格式的记录中的残缺数据删除,只保留下具有完整数据组的记录。

代码语言:javascript
复制
def dic2list(dic):#transfer the dict to list for the convienence of the sklearn lib
    resultList = []#the list to store the result
    tempList = []
    for k in dic:
        for seKey in dic[k]:
            tempList = tempList+dic[k][seKey]
        resultList.append(tempList)
        tempList = []
    return resultList

这段代码是将字典格式转换成list格式,之前不直接转成list格式是因为我们要保留公交路线的名称记录,虽然现在一想似乎没有什么作用,但是,就当做个编码冗余吧,万一需要呢。

代码语言:javascript
复制
def str2float(stList)#transfer the str formate to float formate
    for ele  in stList:
        for cnt in range(0,len(ele)):
            if cnt%2 == 0:
                ele[cnt]=time.mktime(time.strptime('2016-01-01 '+ele[cnt],'%Y-%m-%d %H:%M:%S'))-time.mktime(time.strptime('2016-01-01 0:00:00','%Y-%m-%d %H:%M:%S'))
            else:
                ele[cnt] = float(ele[cnt])
    return stList

由于我们记录中的数据格式都是str的,所以需要转成float才能送入sklearn中进行聚类。这段代码就是把记录中的字符串变成了可识别的数字。

代码语言:javascript
复制
def skML(dataList,num):
    data = np.array(dataList)
    k_means = cluster.KMeans(num)
    k_means.fit(data)
    result = k_means.labels_
    return result,k_means

最后就是把这些处理好的记录进行聚类,这次先用最简单的Kmeans聚类。sklearn还是有很多值得学习的地方,而且其官方文档写的也不错,链接如下:

http://scikit-learn.org/stable/index.html

而网上似乎详细介绍这个开源库的文章很少。虽然没有细看,但似乎这是一个学习机器学习的好工具。以后可以写sklearn的教程。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年01月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档