强化学习训练-数据处理
一、定义
1.模型在学习过程中出现nan
二、实现
- 模型在学习过程中出现nan, 如何解决
数据中出现nan, 导致某一维度出现nan, 则该维度数据是无效的,模型无法进行学习的。
print("Train X stats: ", self.train['x_pre'].mean(axis=0), self.train['x_pre'].std(axis=0))
print("Train y stats: ", self.train['y_after'].mean(axis=0), self.train['y_after'].std(axis=0))
print("Any NaN in X_train:", np.any(np.isnan(self.train['x_pre'])))
print("Any Inf in y_train:", np.any(np.isinf(self.train['y_after'])))
需要对数据进行处理,处理掉nan的字段信息。
def datasetCheck(self):self.df = self.df.dropna()total_missing = self.df.isnull().sum().sum()print(f"\n总缺失值 (NaN) 数量: {total_missing}")print(f"缺失值占比: {(total_missing / self.df.size) * 100:.2f}%")# 4. 详细列出每一列的缺失情况print("\n=== 各列缺失值详细情况 ===")missing_info = self.df.isnull().sum()# 按缺失数量降序排列,优先看问题最严重的列missing_info = missing_info[missing_info > 0].sort_values(ascending=False)if len(missing_info) > 0:for col_name, missing_count in missing_info.items():print(f"列 '{col_name}': {missing_count} 个缺失值 (占比 {missing_count/len(self.df)*100:.1f}%)")else:print("(!) 警告:pandas 未检测到缺失值,但NumPy计算为NaN,可能存在数据类型问题")