unzip 解包文件
concat([train_data, test_data]) 将两张表放在一起
data.replace('-', '-1') 将所有的‘-’换成-1
astype('float32') 将类型转化
# 定义One-Hot编码函数
def oneHotEncode(df, colNames):
for col in colNames:
dummies = pd.get_dummies(df[col], prefix=col)
df = pd.concat([df, dummies],axis=1)
df.drop([col], axis=1, inplace
# 处理离散数据
for col in cate_cols:
data[col] = data[col].fillna('-1')
data = oneHotEncode(data, cate_cols)
# 处理连续数据
for col in num_cols:
data[col] = data[col].fillna(0)
data[col] = (data[col]-data[col].min()) / (data[col].max()-data[col].min())
# 处理(可能)无关数据
data.drop(['name', 'regionCode'], axis=1, inplace=True)
RandomForestRegressor().fit(X_train,y_train) 随机森林回归模型
LinearRegression().fit(X_train,y_train) 直线回归模型
if torch.cuda.is_available():
torch.cuda.manual_seed(42) 给网络加上随机种子,保证结果的可复现性
TensorDataset是PyTorch中用于将样本和标签打包成单个数据集的类
DataLoader是一个可迭代的对象,它提供了对TensorDataset的批量加载功能
reset方法用于将self.data`中的所有元素重置为0.0
getitem是一个特殊方法,它允许类的实例支持索引操作。例如,如果你有一个Accumulator的实例acc,你可以使用acc[i]来获取self.data`中的第i个元素。
.item()将矩阵转化为python标量
y.numel():表示预测的数量
pred=pred.detach().numpy() #安全地将张量转换为Numpy数组
对模型进行训练
def train_epoch_ch3(net, device,train_iter, loss, updater):
将模型设置为训练模式
net.train()
连续特征异常值简单处理
df.loc[df['power']>600,'power'] = 600