李巨集毅機器學習3 HW1

2021-09-23 10:41:42 字數 2206 閱讀 4351

在這個作業中,我們將用梯度下降方法**pm2.5的值

1、要求python3.5+

2、只能用(1)numpy(2)scipy(3)pandas

3、請用梯度下降手寫線性回歸

4、最好的公共簡單基線

5、對於想載入模型而並不想執行整個訓練過程的人:

請上傳訓練**並命名成 train.py

只要用梯度下降的**就行了

1.要求python3.5

2.任何庫都可以使用

3.在kaggle上獲得你選擇的更高的分數

本次作業使用豐原站的觀測記錄,分成train set跟test set,train set是豐原站每個月的前20天所有資料test set則是從豐原站剩下的資料中取樣出來。

train.csv:每個月前20天每個小時的氣象資料(每小時有18種測資)。共12個月。

test.csv:從剩下的資料當中取樣出連續的10小時為一筆,前九小時的所有觀測資料當作feature,第十小時的pm2.5當作answer。一共取出240筆不重複的test data,請根據feauure預測這240筆的pm2.5。

import pandas as pd

import numpy as np

train_data = pd.read_csv('train.csv')

pmdata = train_data[train_data['observation']=='pm2.5']

pmdata = pmdata.iloc[:, 3:]

train_x =

train_y =

for i in range(15):

x = pmdata.iloc[:, i:i+9]

x.columns = np.array(range(9))

y = pmdata.iloc[:,i+9]

y.columns = np.array(range(1))

train_x = pd.concat(train_x)

train_y = pd.concat(train_y)

train_x = np.array(train_x,float)

train_y = np.array(train_y, float)

train_x = np.concatenate((np.ones((train_x.shape[0], 1)),train_x),axis=1)

#上面是資料的讀取和簡單的處理

w = np.zeros(len(train_x[0]))

lr = 10

iteration = 10000

sum_gra = np.zeros(len(train_x[0]))

for i in range(iteration):

y_new = np.dot(train_x, w)

loss = y_new-train_y

gra = 2*np.dot(train_x.transpose(), loss)

sum_gra += gra**2

ada = np.sqrt(sum_gra)

w = w - lr*gra/ada

#訓練模型得到權重w

test_data = pd.read_csv('test.csv')

pmtest = test_data[test_data['amb_temp'] == 'pm2.5']

pmtest = pmtest.iloc[:,2:]

test_x = np.array(pmtest, float)

test_x = np.concatenate((np.ones((test_x.shape[0],1)),test_x),axis=1)

y_pre = np.dot(test_x, w)

#同樣的處理,以及讓得到的模型權重w乘上特徵x,來得到**值y

y_submit=pd.read_csv('samplesubmission.csv')

y_submit.value = y_pre

y_submit.to_csv('ownsubmission.csv')

#生成上交檔案

real = pd.read_csv('answer.csv')

error = abs(y_submit.value - real.value).sum()/len(real.value)

#得到損失值

李巨集毅 機器學習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...

機器學習 HW1相關 李巨集毅教程

hw1主要是使用liner model 進行pm2.5的 作業連線 密碼 ooqn 作業要求 1.使用前9個小時的資料,出第十個小時的pm2.5的值是多少 2.提供2014年的12個月每個月的前20天的24小時資料作為train data 3.每小時有18組資料 so2 甲烷 之類的指標 下面解析 ...

李巨集毅機器學習課程筆記 1

機器學習 自動找函式 f input output 1.regression 輸出是乙個數值 2.classification 分類 二分類 多分類 rnn 迴圈神經網路 cnn 卷積神經網路translation 繪二次元圖4.supervised learning 監督學習labeled dat...