Datawhale AI 夏令营机器学习赛道 Task 1 笔记

68 阅读2分钟

时间序列问题

时间序列问题涉及对随时间收集的数据点进行分析,这些数据点通常是连续或以固定时间间隔获取的。这类问题的核心在于理解并预测数据随时间的变化模式。时间序列分析的目标是识别数据中的趋势、季节性、周期性和随机波动等特征,以便对未来的行为做出预测。

时间序列分析的主要挑战之一是处理非平稳性,即数据的统计特性随时间改变。这可能需要对数据进行差分、转换或其他预处理步骤,使其变得平稳,以便应用某些模型。

另一个关键问题是模型的验证和测试,通常使用历史数据的一部分作为训练集,另一部分作为测试集,以评估模型的预测能力。此外,时间序列分析还需要考虑多重共线性、自相关性和异方差性等问题。

什么是 Baseline

在机器学习和数据分析中,baseline模型通常是最简单、最直观的预测模型,用于作为其他更复杂模型的比较标准。例如,在分类问题中,baseline模型可能是总是预测多数类别的模型。

Baseline 代码

 # 1. 导入需要用到的相关库
 # 导入 pandas 库,用于数据处理和分析
 import pandas as pd
 # 导入 numpy 库,用于科学计算和多维数组操作
 import numpy as np
 ​
 # 2. 读取训练集和测试集
 # 使用 read_csv() 函数从文件中读取训练集数据,文件名为 'train.csv'
 train = pd.read_csv('./data/data283931/train.csv')
 # 使用 read_csv() 函数从文件中读取测试集数据,文件名为 'train.csv'
 test = pd.read_csv('./data/data283931/test.csv')
 ​
 # 3. 计算训练数据最近11-20单位时间内对应id的目标均值
 target_mean = train[train['dt']<=20].groupby(['id'])['target'].mean().reset_index()
 ​
 # 4. 将target_mean作为测试集结果进行合并
 test = test.merge(target_mean, on=['id'], how='left')
 ​
 # 5. 保存结果文件到本地
 test[['id','dt','target']].to_csv('submit.csv', index=None)
  • 首先使用 pandasnumpy 两个库分别用作数据处理和科学计算

  • 调用 pandas.read_csv() 方法从 csv 文件读取训练数据

  • 调用 pandas.read_csv() 方法从 csv 文件读取测试数据

  • 根据公式就散训练数据最近 11-20 单位时间内对应 id 的目标均值

    1nn=1n(yiyi)2\frac{1}{n}\sum_{n=1}^n(y_i-\overline{y_i})^2
  • 合并保存数据(保存为 csv 文件)

CSV 文件

CSV(逗号分隔值)是在电子表格和数据库中使用的非常流行的导入和导出数据格式。 CSV 文件中的每一行都是一个数据记录。 每个记录由一个或多个字段组成,用逗号分隔。 CSV 是一种非常简单的数据格式,但是可以有很多差异,例如不同的定界符,换行或引号字符。