话说学机器学习,不写代码就太扯淡了。好了,接着上一次的线性回归作业。
hw1作业的链接在这: http://speech.ee.ntu.edu.tw/~tlkagk/courses/ML_2016/Lecture/hw1.pdf
作业是预测台湾的PM2.5的指数,既然是回归问题,肯定是用的是上一节课的线性回归了。
以上数据我传到https://pan.baidu.com/s/1dFhwT13 上面了,供有兴趣的人做做。
实际上上述中分为训练数据和测试数据,都是CSV格式的,而且只用到PM2.5有用,其他的没什么用,同时通过测试数据才知道,
其实就是用前9个小时的PM2.5数据作为特征,来预测第10个小时的数据,将第10个小时的数据保存为csv格式,作为预测结果。
好了,不多说,上代码。我的开发环境还是win7+pycharm4.0
第一步,读取train.csv. 获取PM2.5的训练数据 ,一共240个训练数据,将前9个小时的数据作为特征,将第10个小时的数据作为标签
1 # -*- coding:UTF-8 -*- 2 __author__ = 'tao' 3 4 import csv 5 import cv2 6 import sys 7 import numpy as np 8 import math 9 10 filename = 'F:/台湾机器学习/data/train.csv' 11 ufilename = unicode(filename , "utf8") #这一块主要是因为汉字路径 也就是python调用open打开文件时,其路径必须要转换为utf-8格式 12 list=[] 13 result=[] 14 row=0 15 colum=0; 16 with open(ufilename, 'r') as f: 17 data = f.readlines() #dat中所有字符串读入data 18 for line in data: 19 odom = line.split(',') #将单个数据分隔开存好 20 colum=len(odom) 21 if 'PM2.5'in odom: 22 lists= map(int, odom[3:12])#第三个开始开始数据 一直取9个数 23 results= map(int, odom[12:13])#取第10个数 24 list.append(lists) 25 result.append(results) 26 # print odom 27 row=row+1 28 29 #print("原始数据是:{0}行 :{1}列 的数据".format(row, colum)) 30 print("有{0}个训练数据".format(len(list)))