2013-03-17

每一个优秀的人,都有一段沉默的时光。那一段时光,是付出了很多努力,忍受了很多的孤独和寂寞,不抱怨不诉苦,只有自己知道。而当日后说起时,连自己都能被感动的日子。——《给自己的信》


% 读取Excel文件 data = readtable('C:\Users\lenovo\Desktop\zuixin_winsorized_data.xlsx', 'Sheet', 'Sheet1'); % 提取PM2.5数据 pm25 = data.PM2_5; % 提取时间列(假设时间列是 'year', 'month', 'day', 'hour') time = datetime(data.year, data.month, data.day, data.hour, 0, 0); % 创建timetable pm25_tt = timetable(time, pm25); % 将时间序列转换为每日数据(按天求平均值) pm25_daily = retime(pm25_tt, 'daily', 'mean'); % 提取前两周的数据(3月1日到3月14日) startDate = datetime('2013-03-01'); endDate = datetime('2013-03-14'); pm25_train = pm25_daily(startDate:endDate, :); % 提取3月17日的数据作为目标 targetDate = datetime('2013-03-17'); pm25_target = pm25_daily(targetDate, :); % 准备训练数据 % ...(前面的数据读取代码保持不变) % 准备训练数据(关键修改部分) XTrain = pm25_train.pm25'; % 转置为行向量(1×14) XTrain = {XTrain}; % 包裹成cell数组,表示1个样本的14个时间步 YTrain = pm25_target.pm25; % 获取目标值 YTrain = {YTrain}; % 包裹成cell数组 % ...(后续模型定义和训练代码保持不变) % 定义LSTM模型 numFeatures = 1; % 输入特征的数量(PM2.5) numHiddenUnits = 100; % LSTM隐藏单元的数量 numResponses = 1; % 输出响应的数量(PM2.5) layers = [ ... sequenceInputLayer(numFeatures) lstmLayer(numHiddenUnits) fullyConnectedLayer(numResponses) regressionLayer]; % 定义训练选项 options = trainingOptions('adam', ... 'MaxEpochs', 200, ... 'GradientThreshold', 1, ... 'InitialLearnRate', 0.005, ... 'LearnRateSchedule', 'piecewise', ... 'LearnRateDropPeriod', 125, ... 'LearnRateDropFactor', 0.2, ... 'Verbose', 0, ... 'Plots', 'training-progress'); % 训练模型 net = trainNetwork(XTrain, YTrain, layers, options); % 准备测试数据(前两周的数据) XTest = pm25_train.pm25'; XTest = num2cell(XTest, 1); % 转换为 cell 数组 % 进行预测 YPred = predict(net, XTest); % 显示预测结果 disp('Predicted PM2.5 for March 17:'); disp(YPred{end}); % 预测的最后一天是3月17日 这段代码运行时出现报错,报错信息为无效的训练数据。序列响应必须与对应的预测变量具有相同的序列长度。 出错 untitled14 (第 60 行) net = trainNetwork(XTrain, YTrain, layers, options);
03-27
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值