当前位置: 首页 > news >正文

怎么用自己主机做网站wordpress页面链接404

怎么用自己主机做网站,wordpress页面链接404,商业网站建设常识,鞍山专业做网站公司上文#xff1a; 电力需求预测挑战赛笔记 Task2 #Datawhale AI 夏令营-CSDN博客文章浏览阅读80次。【代码】电力需求预测挑战赛笔记 Task2。https://blog.csdn.net/qq_23311271/article/details/140360632 前面我们介绍了如何使用经验模型以及常见的lightgbm决策树模型来解决…上文  电力需求预测挑战赛笔记 Task2 #Datawhale AI 夏令营-CSDN博客文章浏览阅读80次。【代码】电力需求预测挑战赛笔记 Task2。https://blog.csdn.net/qq_23311271/article/details/140360632 前面我们介绍了如何使用经验模型以及常见的lightgbm决策树模型来解决本次时间序列问题。 这里继续根据时间序列预测特征提取和分析方法 时间序列的进阶特征提取与分析 日期变量时间序列数据通常包含日期或时间信息。这可以细分为不同的时间尺度如年、月、周、日、小时、分钟等。在特征提取时可以将这些日期变量转换为数值型特征以便于模型处理。 周期性许多时间序列数据表现出周期性例如一天中的小时数、一周中的天数、一年中的月份等。识别并利用这些周期性特征可以帮助模型捕捉数据的内在规律。 趋势性趋势性是指时间序列数据随时间推移呈现的上升或下降的总体模式。这可以通过诸如移动平均或线性回归等方法来提取并作为特征输入模型。 距离某天的时间差这涉及到从特定日期如产品发布日、重要事件日等计算时间差。这种特征可以帮助模型了解数据点与特定事件的相对位置。 时间特征组合将不同的时间单位组合起来如年和周、月和日可以提供更丰富的时间上下文信息有助于揭示数据中的复杂模式。 特殊日期识别时间序列中的特殊日期或事件如节假日、促销活动等并将其作为特征可以帮助模型解释与这些事件相关的数据波动。 异常点时间序列中可能存在异常点这些点与其他数据点显著不同。正确识别并处理这些异常点对于提高预测精度至关重要。 时序相关特征 历史平移将过去的值作为当前值的函数例如使用前一天的值来预测后一天的值。 滑窗统计使用时间窗口内的统计数据如平均值、中位数、标准差等作为特征这有助于捕捉局部时间范围内的数据特性。 强相关特征识别与目标变量强烈相关的特征并利用这些特征来构建预测模型。 关于时间序列预测中构建关键特征的要点  强相关性特征 强相关性特征是指特征之间存在明显的相关性可以通过统计分析或者机器学习算法得到的相关系数来衡量。这些特征之间的相关性可以帮助我们理解数据的关联性以及它们对目标变量的影响程度。 构建方法 滞后特征使用过去的值作为当前预测的特征例如使用前一天的销售数据来预测后一天的销售。 滚动统计特征计算时间序列的滚动窗口内的统计量如平均值、最大值、最小值、总和等。 趋势性特征 趋势性特征是指随着时间推移数据呈现出一定的趋势或者变化模式。这种特征常见于时间序列数据可以通过使用趋势线或者回归分析来观察和预测数据的趋势。 构建方法 时间戳转换将时间戳转换为数值如从时间戳中提取年份、月份、星期等。 移动平均使用时间序列的移动平均值来平滑短期波动突出长期趋势。 多项式拟合拟合一个多项式模型来捕捉趋势。 周期性特征 周期性特征是指数据具有明显的重复周期性变化。这种特征常见于季节性数据如气象数据、销售数据等。周期性特征可以帮助我们发现数据的周期性规律并据此进行预测和决策。 构建方法 时间戳的周期性转换将时间戳转换为周期性变量如一周中的星期几、一月中的日子等。 季节性分解使用季节性分解方法来识别和提取时间序列的季节性成分。 周期性函数使用正弦和余弦函数来模拟周期性变化。 异常点特征 噪声 异常点特征是指数据集中存在的与其他数据点明显不同的数据。这些异常点可能是由于测量误差、数据录入错误或者真实世界中的异常情况所导致。异常点特征的发现和处理对于数据分析和模型训练非常重要可以帮助我们准确地理解数据的特性和规律。 构建方法 简单标注在数据集中标记异常点以便在分析时考虑。 剔除从数据集中删除异常点特别是在它们可能影响模型训练的情况下。 修正更正异常点如果它们是由于可识别的错误造成的。 特殊事件特征 特殊事件如“双十一”、“618”、“春节”等会在时间序列中产生显著的峰值。 构建特殊事件特征的方法包括 事件指示器创建一个二进制特征当时间序列中的点与特殊事件对应时该特征值为1否则为0。 事件前后的时间窗口考虑事件前后的时间窗口以捕捉事件的影响。 上下时段信息 上下时段信息指的是在时间序列中特定时间段之前或之后的数据点。 这可以通过创建特征来表示数据点与特定时间段的距离来实现。 存在峰值与峰值距离 识别时间序列中的峰值点并计算其他数据点与这些峰值点的距离可以作为特征输入模型。 时间尺度特征 据需要预测的时间尺度如1天、3天、5天等创建相应的滞后特征和滚动统计特征。 优化过程 加入更多特征值 1历史平移特征通过历史平移获取上个阶段的信息 2差分特征可以帮助获取相邻阶段的增长差异描述数据的涨减变化情况。在此基础上还可以构建相邻数据比值变化、二阶差分等 3窗口统计特征窗口统计可以构建不同的窗口大小然后基于窗口范围进统计均值、最大值、最小值、中位数、方差的信息可以反映最近阶段数据的变化情况。 # 合并训练数据和测试数据 data pd.concat([train, test], axis0).reset_index(dropTrue) data data.sort_values([id,dt], ascendingFalse).reset_index(dropTrue)# 历史平移 for i in range(10,36):data[ftarget_shift{i}] data.groupby(id)[target].shift(i)# 历史平移 差分特征 for i in range(1,4):data[ftarget_shift10_diff{i}] data.groupby(id)[target_shift10].diff(i)# 窗口统计 for win in [15,30,50,70]:data[ftarget_win{win}_mean] data.groupby(id)[target].rolling(windowwin, min_periods3, closedleft).mean().valuesdata[ftarget_win{win}_max] data.groupby(id)[target].rolling(windowwin, min_periods3, closedleft).max().valuesdata[ftarget_win{win}_min] data.groupby(id)[target].rolling(windowwin, min_periods3, closedleft).min().valuesdata[ftarget_win{win}_std] data.groupby(id)[target].rolling(windowwin, min_periods3, closedleft).std().values# 历史平移 窗口统计 for win in [7,14,28,35,50,70]:data[ftarget_shift10_win{win}_mean] data.groupby(id)[target_shift10].rolling(windowwin, min_periods3, closedleft).mean().valuesdata[ftarget_shift10_win{win}_max] data.groupby(id)[target_shift10].rolling(windowwin, min_periods3, closedleft).max().valuesdata[ftarget_shift10_win{win}_min] data.groupby(id)[target_shift10].rolling(windowwin, min_periods3, closedleft).min().valuesdata[ftarget_shift10_win{win}_sum] data.groupby(id)[target_shift10].rolling(windowwin, min_periods3, closedleft).sum().valuesdata[ftarget_shift10win{win}_std] data.groupby(id)[target_shift10].rolling(windowwin, min_periods3, closedleft).std().values模型融合 进行模型融合的前提是有多个模型的输出结果比如使用catboost、xgboost和lightgbm三个模型分别输出三个结果这时就可以将三个结果进行融合最常见的是将结果直接进行加权平均融合。 下面我们构建了cv_model函数内部可以选择使用lightgbm、xgboost和catboost模型可以依次跑完这三个模型然后将三个模型的结果进行取平均进行融合。 对于每个模型均选择经典的K折交叉验证方法进行离线评估大体流程如下 1、K折交叉验证会把样本数据随机的分成K份 2、每次随机的选择K-1份作为训练集剩下的1份做验证集 3、当这一轮完成后重新随机选择K-1份来训练数据 模型融合可以在不增加模型复杂度的情况下显著提高预测性能。 然而它也需要谨慎使用以确保融合后的模型不会过拟合训练数据。 这些变量的详细描述如下 clf是一个用于调用模型的变量它可以用来对训练数据进行训练并进行预测。train_x是训练数据包含了一组特征值用于训练模型。train_y是训练数据对应的标签即每个训练样本对应的目标变量的值。test_x是测试数据用于对模型进行测试和评估。clf_name是选择使用的模型的名称可以根据需要从可用模型中选择合适的模型。seed是随机种子用于生成随机数可以通过设置相同的随机种子来保证每次运行的结果相同。  from sklearn.model_selection import StratifiedKFold, KFold, GroupKFold import lightgbm as lgb import xgboost as xgb from catboost import CatBoostRegressor from sklearn.metrics import mean_squared_error, mean_absolute_error def cv_model(clf, train_x, train_y, test_x, clf_name, seed 2024):folds 5kf KFold(n_splitsfolds, shuffleTrue, random_stateseed)oof np.zeros(train_x.shape[0])test_predict np.zeros(test_x.shape[0])cv_scores []for i, (train_index, valid_index) in enumerate(kf.split(train_x, train_y)):print(************************************ {} ************************************.format(str(i1)))trn_x, trn_y, val_x, val_y train_x.iloc[train_index], train_y[train_index], train_x.iloc[valid_index], train_y[valid_index]if clf_name lgb:train_matrix clf.Dataset(trn_x, labeltrn_y)valid_matrix clf.Dataset(val_x, labelval_y)params {boosting_type: gbdt,objective: regression,metric: mae,min_child_weight: 6,num_leaves: 2 ** 6,lambda_l2: 10,feature_fraction: 0.8,bagging_fraction: 0.8,bagging_freq: 4,learning_rate: 0.1,seed: 2023,nthread : 16,verbose : -1,}model clf.train(params, train_matrix, 1000, valid_sets[train_matrix, valid_matrix],categorical_feature[], verbose_eval200, early_stopping_rounds100)val_pred model.predict(val_x, num_iterationmodel.best_iteration)test_pred model.predict(test_x, num_iterationmodel.best_iteration)if clf_name xgb:xgb_params {booster: gbtree, objective: reg:squarederror,eval_metric: mae,max_depth: 5,lambda: 10,subsample: 0.7,colsample_bytree: 0.7,colsample_bylevel: 0.7,eta: 0.1,tree_method: hist,seed: 520,nthread: 16}train_matrix clf.DMatrix(trn_x , labeltrn_y)valid_matrix clf.DMatrix(val_x , labelval_y)test_matrix clf.DMatrix(test_x)watchlist [(train_matrix, train),(valid_matrix, eval)]model clf.train(xgb_params, train_matrix, num_boost_round1000, evalswatchlist, verbose_eval200, early_stopping_rounds100)val_pred model.predict(valid_matrix)test_pred model.predict(test_matrix)if clf_name cat:params {learning_rate: 0.1, depth: 5, bootstrap_type:Bernoulli,random_seed:2023,od_type: Iter, od_wait: 100, random_seed: 11, allow_writing_files: False}model clf(iterations1000, **params)model.fit(trn_x, trn_y, eval_set(val_x, val_y),metric_period200,use_best_modelTrue, cat_features[],verbose1)val_pred model.predict(val_x)test_pred model.predict(test_x)oof[valid_index] val_predtest_predict test_pred / kf.n_splitsscore mean_absolute_error(val_y, val_pred)cv_scores.append(score)print(cv_scores)return oof, test_predict# 选择lightgbm模型 lgb_oof, lgb_test cv_model(lgb, train[train_cols], train[target], test[train_cols], lgb) # 选择xgboost模型 xgb_oof, xgb_test cv_model(xgb, train[train_cols], train[target], test[train_cols], xgb) # 选择catboost模型 cat_oof, cat_test cv_model(CatBoostRegressor, train[train_cols], train[target], test[train_cols], cat)# 进行取平均融合 final_test (lgb_test xgb_test cat_test) / 3 stacking融合 一种分层模型集成框架。 以两层为例第一层由多个基学习器组成其输入为原始训练集第二层的模型则是以第一层基学习器的输出作为特征加入训练集进行再训练从而得到完整的 stacking 模型。 第一层类比cv_model函数 将训练数据划分为K折例如5折每次选择其中四份作为训练集一份作为验证集。对于每个模型例如随机森林RF、Extra Trees ET、梯度提升机GBDT、XGBoost XGB分别进行K次训练。 每次训练时保留一份样本作为验证集训练完成后对验证集和测试集进行预测。对于测试集每个模型会产生K个预测结果将这些结果取平均值作为最终的测试集预测结果。对于验证集每个模型经过K次交叉验证后所有验证集数据都会有一个预测标签。 此步骤结束后对于训练集中的每条数据在四个模型下分别有一个预测标签测试集中的每条数据也会有四个模型的预测标签。 第二层类比stack_model函数 将训练集中的四个模型的预测标签加上真实标签共五列特征作为新的训练集。选择一个新的训练模型根据这个新的训练集进行训练。使用测试集中四个模型的预测标签组成的新测试集进行预测得到最终的预测结果。 这个过程首先通过交叉验证对多个基础模型进行训练和预测然后将这些模型的预测结果作为新的特征加上原始特征用于训练一个新的模型。 这种方法称为模型堆叠model stacking可以提高模型的预测性能尤其是在数据集较大、特征较多的情况下。通过这种方式可以将不同模型的优点结合起来提高整体的预测能力。 def stack_model(oof_1, oof_2, oof_3, predictions_1, predictions_2, predictions_3, y):输入的oof_1, oof_2, oof_3可以对应lgb_oofxgb_oofcat_oofpredictions_1, predictions_2, predictions_3对应lgb_testxgb_testcat_test# 将三个模型的oof预测结果合并为一个训练集train_stack pd.concat([oof_1, oof_2, oof_3], axis1)# 将三个模型的测试集预测结果合并为一个测试集test_stack pd.concat([predictions_1, predictions_2, predictions_3], axis1)# 初始化oof和预测结果数组oof np.zeros((train_stack.shape[0],))predictions np.zeros((test_stack.shape[0],))scores [] # 用于存储每次交叉验证的评分# 使用RepeatedKFold进行交叉验证重复2次共10折from sklearn.model_selection import RepeatedKFoldfolds RepeatedKFold(n_splits5, n_repeats2, random_state2021)# 开始交叉验证for fold_, (trn_idx, val_idx) in enumerate(folds.split(train_stack, train_stack)): print(fold n°{}.format(fold_1))# 划分训练集和验证集trn_data, trn_y train_stack.loc[trn_idx], y[trn_idx]val_data, val_y train_stack.loc[val_idx], y[val_idx]# 使用Ridge回归作为元模型clf Ridge(random_state2021)clf.fit(trn_data, trn_y)# 预测验证集并存储结果oof[val_idx] clf.predict(val_data)# 累加测试集的预测结果后续求平均值predictions clf.predict(test_stack) / (5 * 2)# 计算并打印当前折的评分score_single mean_absolute_error(val_y, oof[val_idx])scores.append(score_single)print(f{fold_1}/{5}, score_single)# 打印平均评分print(mean: ,np.mean(scores))# 返回oof和测试集的预测结果return oof, predictions# 调用stack_model函数进行模型融合 stack_oof, stack_pred stack_model(pd.DataFrame(lgb_oof), pd.DataFrame(xgb_oof), pd.DataFrame(cat_oof), pd.DataFrame(lgb_test), pd.DataFrame(xgb_test), pd.DataFrame(cat_test), train[target])使用深度学习方案  构建基于 LSTM 的深度学习模型 导入必要的库 numpy 和 pandas 用于数据处理。MinMaxScaler 用于数据标准化。Sequential、LSTM、Dense、RepeatVector 和 TimeDistributed 用于构建Keras模型。Adam 是一种优化算法用于模型训练。 读取训练和测试数据集 train.csv 和 test.csv 应该是包含时间序列数据的CSV文件。 数据预处理函数 preprocess_data 此函数按 id 对数据进行分组并为每个 id 构建序列。对于每个 id函数构建5个长度为 look_back 的序列作为输入 X并提取相应的目标值 Y。函数还准备了一个外推Out-of-Time测试数据集 OOT用于模型预测。 模型构建函数 build_model 此函数创建一个Sequential模型包含一个LSTM层一个RepeatVector层另一个LSTM层以及一个TimeDistributed(Dense)层。 模型使用均方误差损失函数和Adam优化器进行编译。 构建和训练模型 定义序列长度 look_back特征数量 n_features 和预测步长 n_output。 使用 preprocess_data 函数预处理训练数据。 使用 build_model 函数构建模型。 使用 model.fit 方法训练模型进行10个周期的训练。 进行预测 使用训练好的模型对 OOT 数据集进行预测得到预测值 predicted_values。 实现代码 import numpy as np import pandas as pd from sklearn.preprocessing import MinMaxScaler from keras.models import Sequential from keras.layers import LSTM, Dense, RepeatVector, TimeDistributed from keras.optimizers import Adamtrain pd.read_csv(train.csv) test pd.read_csv(test.csv)# 数据预处理 def preprocess_data(df, look_back100):# 将数据按照id进行分组grouped df.groupby(id)datasets {}for id, group in grouped:datasets[id] group.values# 准备训练数据集X, Y [], []for id, data in datasets.items():for i in range(10, 15): # 每个id构建5个序列a data[i:(i look_back), 3]a np.append(a, np.array([0]*(100-len(a))))X.append(a[::-1])Y.append(data[i-10:i, 3][::-1])# 准备测试数据集OOT []for id, data in datasets.items():a data[:100, 3]a np.append(a, np.array([0]*(100-len(a))))OOT.append(a[::-1])return np.array(X, dtypenp.float64), np.array(Y, dtypenp.float64), np.array(OOT, dtypenp.float64)# 定义模型 def build_model(look_back, n_features, n_output):model Sequential()model.add(LSTM(50, input_shape(look_back, n_features)))model.add(RepeatVector(n_output))model.add(LSTM(50, return_sequencesTrue))model.add(TimeDistributed(Dense(1)))model.compile(lossmean_squared_error, optimizerAdam(0.001))return model# 构建和训练模型 look_back 100 # 序列长度 n_features 1 # 假设每个时间点只有一个特征 n_output 10 # 预测未来10个时间单位的值# 预处理数据 X, Y, OOT preprocess_data(train, look_backlook_back)# 构建模型 model build_model(look_back, n_features, n_output)# 训练模型 model.fit(X, Y, epochs10, batch_size64, verbose1)# 进行预测 predicted_values model.predict(OOT) 从 CSV 文件中读取训练集和测试集数据。实现了数据预处理的函数 preprocess_data将原始数据处理成适合模型训练和预测的格式。定义了一个 LSTM 模型包括 LSTM 层、重复向量层和时间分布层。使用均方误差作为损失函数Adam 优化器进行模型的编译。训练模型并进行预测。 深度学习的优化思路 数据预处理 确保数据集的质量和多样性包括清洗数据、处理缺失值、标准化数据等。这可以提高模型的稳定性和性能。 模型选择 选择适合问题的深度学习模型架构。可以尝试不同的模型如卷积神经网络CNN、循环神经网络RNN等。 超参数调整 调整模型的超参数如学习率、批量大小、正则化参数等。可以使用交叉验证或网格搜索等方法进行优化。 正则化技术 使用正则化技术来防止模型过拟合。常见的正则化技术包括 L1 和 L2 正则化、Dropout 等。 批标准化 对输入数据进行标准化以减少内部协变量偏移并加速训练收敛速度。 数据增强 通过对数据进行变换和扩充来增加数据集的样本多样性提高模型的泛化能力。 提前停止训练 监控模型在验证集上的性能并在性能不再提升时提前停止训练以避免过拟合。 迁移学习 利用预训练的模型在新的任务上进行迁移学习可以加快模型训练的速度和提高性能。 模型集成 结合多个训练好的模型如投票、平均等方式以获得更好的性能。 硬件优化 利用 GPU 或 TPU 等硬件加速深度学习模型的训练和推理过程。
http://www.hkea.cn/news/14436496/

相关文章:

  • 房产网有哪些网站苏州网站创建
  • 网站建设服务合同缴纳印花税吗服务器安全模式怎么进
  • 主播网站建设wordpress一键安装
  • 建设部人才交流中心网站小说网站推荐
  • 郑州网站科技google下载官方版
  • 重庆建设工程招标信息网站施工企业对安全隐患不采取措施
  • 如何做自己网站雅虎搜索引擎首页
  • 北大荒建设集团网站网站开发环境的安装说明
  • 做虾网站该起啥名好河南工信建设网站
  • 曲阳网站建设河源网站建设多少钱
  • 东莞市领导班子图片网站seo
  • 网站推广计划书网上推广平台有哪些
  • 哈尔滨企业建站网站开发cms开源框架
  • 做网站用注册公司吗哪个网站建站比较好
  • 中国建设银行个人登录网站买个网站需要多少钱
  • 阿里云服务器怎么部署网站彩票网站开发
  • 在线音乐网站源码贵港做网站建设价格费用
  • 设计师个人作品集网站遵义网站建设制作
  • 网站建设主要营销内客国内做视频的网站
  • 郑州企业网站建设费用好用的网站管理系统
  • 南通集团网站建设南京电器网站建设
  • 网站建设高端设计辽宁省建设工程人力资源网
  • 深圳建设管理中心网站云南网站设计平台
  • 网站建设与管理ppt模板下载网易官网建立个人网站
  • 网站seo标准云浮网站建设公司
  • 网站开发员工结构企业建网站得多少钱
  • 门户网站整改情况报告wordpress演示
  • 网站开发用盗版犯法济南专业手机端网站建设
  • 苏州网站营销公司简介网络服务器租赁费高吗
  • 江西省建设职业培训学校网站花店网页设计素材