2023美賽F題資料(持續更新)+支撐材料/參考文獻+思路【持續更新】
更新日志:
- 2.17 22點更新: 視訊講解,16篇支撐材料,大量資料集文檔,2篇文字思路
擷取:
部分預覽(内容太多,請下載下傳觀看)
部分代碼展示
data.sort_values(by='Date',inplace=True)
data.reset_index(inplace=True,drop=True)
data['rolling10']=data['Number of reported results'].rolling(10).mean()
aa=[]
for i in range(data.shape[0]):
if i%10==1:
aa.append(1)
else:
aa.append(0)
data['aa']=aa
data=data[data['aa']==1]
data.dropna(inplace=True)
data.sort_values(by='Date')
data.reset_index(inplace=True,drop=True)
data
dataset=data['rolling10']
# 将整型變為float
dataset = dataset.astype('float32')
def mean_absolute_percentage_error(y_true, y_pred):
return np.mean(np.abs((y_true - y_pred) / y_true)) * 100
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler(feature_range=(0, 1))
dataset = scaler.fit_transform(dataset.values.reshape(-1, 1))
def create_dataset(dataset, look_back):
#這裡的look_back與timestep相同
dataX, dataY = [], []
for i in range(len(dataset)-look_back):
a = dataset[i:(i+look_back)]
dataX.append(a)
dataY.append(dataset[i + look_back])
return numpy.array(dataX),numpy.array(dataY)
#訓練資料太少 look_back并不能過大
look_back = 1
trainX,trainY = create_dataset(dataset,look_back)
trainX = numpy.reshape(trainX, (trainX.shape[0], trainX.shape[1], 1))
# create and fit the LSTM network
model = Sequential()
model.add(LSTM(4, input_shape=(None,1)))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(trainX, trainY, epochs=100, batch_size=1, verbose=2)
# model.save(os.path.join("DATA","Test" + ".h5"))
# make predictions