DataWhale AI夏令营——机器学习
- 学习记录一
- 1. 异常值分析
- 2. 单变量箱线图可视化
- 3. 特征重要性分析
学习记录一
锂电池电池生产参数调控及生产温度预测挑战赛
已配置环境,跑通baseline,并在此基础上对数据进行了简单的分析。
1. 异常值分析
对训练集中的缺失值和异常值进行分析
train_data.info()
train_data.describe()
观察到数据中不存在缺失值,存在异常值train_dataset['下部温度9'] == -32768.000000]
。删除该缺失值。
train_dataset.drop(train_dataset[train_dataset['下部温度9'] == -32768.000000].index).reset_index(drop=True)
2. 单变量箱线图可视化
对训练集和测试集中的流量、上部设定温度和下部设定温度的数据分布进行了箱线图可视化
观察到上部和下部温度设定数据中存在一些异常值,对应数据中2023/1/7、2023/1/8,2023/1/9 三日的数据。
在Baseline(6.29551)基础上进行了两处改动:
- 删除了数据中存在的一处错误值(6.72811)
- 删除2023/1/7、2023/1/8,2023/1/9 三日的数据(6.73844)
3. 特征重要性分析
接着尝试了分析对于单个预测变量的有效特征分析
- 计算相关性矩阵
df = pd.concat([X, y.iloc[:,0]], axis = 1) # X是处理后的训练数据,y是标签
corr_matrix = df.corr()
corr_matrix['上部温度1'].sort_values(ascending=False)
- 对于
lightgbm
的特征重要性
feature_importance = model.feature_importance()
sorted_features = sorted(zip(X.columns, feature_importance), key=lambda x: x[1], reverse=True)# 打印按照feature_importance值降序排列的特征列表
for feature, importance in sorted_features:print(f"{feature}: {importance}")
相关性矩阵计算的是线性相关性,所以结果观察到和lightgbm的特征重要性的结果是有些不同的。
下一步打算在针对每个预测输出的结果构建衍生不同的特征并进行特征筛选。