hw1主要是使用liner model 進行pm2.5的**
作業連線:
密碼 ooqn
作業要求:
1. 使用前9個小時的資料,**出第十個小時的pm2.5的值是多少
2.提供2023年的12個月每個月的前20天的24小時資料作為train data
3.每小時有18組資料(so2 甲烷 之類的指標)
下面解析 作業的sample code
import xlrd
import numpy as np
data =
for i in range( 18):
if __name__ == '__main__':
ifiledir = "./";
ifilename = ifiledir + "train.xlsx";
print('ifilename = %r'%ifilename)
try:
wb = xlrd.open_workbook(ifilename)
except:
print( "file %s is not exist" % (ifilename) )
for sheet_name in wb.sheet_names():
sheet = wb.sheet_by_name(sheet_name)
for row_num in range(1, sheet.nrows):
for i in range(3, 27): #3-27 是對應的24小時資料
data_tmp = sheet.cell_value(row_num, i) #將資料轉換成浮點數
if data_tmp == 'nr': #nr是沒有檢測到資料
data_tmp = float(0)
x =
y =
上面只是就相應的train資料吃進18個list
month = 12
#10hour as one data
data_len = 9 # 連續9個小時的資料作為輸入
data_length = 20 * 24 # 乙個月24天 每天20個資料
for i in range(12): # 12 個月
for j in range(480 - 9): #
for t in range(18): # 18組資料
for k in range(9): # 連續9個資料作為乙個input
x = np.array(x)
#得到x 每一維度是 18 * 9 個資料, 每個月會有471個維度 一共有471*12個維度
y = np.array(y)
y = b + w10*x10 + w20*x20 + ...... w90*x90
+ w11 *x11 +...............................+w91*x91
+ w117*x117..............................+w917*x917
x = np.concatenate((np.ones((x.shape[0],1)),x),axis=1) #每個維度加乙個資料1 作為bias
w = np.zeros(len(x[0])) #選定乙個起始點,這裡做了維度為1 長度為18 *9 +1的 數值為0的矩陣
l_rate = 10 #初始learning rate
repeat = 10000
補 loss function 的公式
x_t = x.transpose()
s_gra = np.zeros(len(x[0]))
for i in range(repeat): #重複計算10000次
hypo = np.dot(x,w) #得到乙個一維矩陣 每個值對應乙個y`
loss = hypo - y
cost = np.sum(loss**2) / len(x)
cost_a = math.sqrt(cost)
gra = np.dot(x_t,loss) #這裡不懂,應該是矩陣的導數
s_gra += gra**2
ada = np.sqrt(s_gra)
w = w - l_rate * gra/ada #通過adagrad 更新初始點
print ('iteration: %d | cost: %f ' % ( i,cost_a))
李巨集毅 機器學習HW1
這是乙個線性回歸的例子,先讀取資料,將b整合到w中 import numpy as np import csv import pandas as pd f open r c users lenovo desktop hw1 train.csv data list csv.reader f index...
李巨集毅機器學習3 HW1
在這個作業中,我們將用梯度下降方法 pm2.5的值 1 要求python3.5 2 只能用 1 numpy 2 scipy 3 pandas 3 請用梯度下降手寫線性回歸 4 最好的公共簡單基線 5 對於想載入模型而並不想執行整個訓練過程的人 請上傳訓練 並命名成 train.py 只要用梯度下降的...
李巨集毅機器學習課程筆記 1
機器學習 自動找函式 f input output 1.regression 輸出是乙個數值 2.classification 分類 二分類 多分類 rnn 迴圈神經網路 cnn 卷積神經網路translation 繪二次元圖4.supervised learning 監督學習labeled dat...