使用pytorch进行batch_size分批训练,并使用adam+lbfgs算法
- 数据探索
- 训练过程及结果
- 整批次训练与分批次训练对比
- 绘制结果对比曲线
- 绘制无序曲线对比结果图
使用pytorch神经网络进行波士顿房价预测
数据探索
训练过程及结果
importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltfromsklearn.model_selectionimporttrain_test_splitfromsklearn.preprocessingimportStandardScalerimporttorchimporttorch.nnasnnimporttorch.optimasoptimfromtqdmimporttqdm url="https://raw.githubusercontent.com/Zhang-bingrui/Boston_house/refs/heads/main/house_data.csv"boston_df=pd.read_csv(url,header=0,on_bad_lines="skip"# 跳过格式错误的行,防止报错)X=boston_df.drop('MEDV',axis=1).values y=boston_df['MEDV'].values#划分训练集和测试集# Veriyi %20 test setine ve %80 eğitim setine bölelimX_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=42)#输入数据标准化scaler=StandardScaler()X_train_scaled=scaler.fit_transform(X_train)X_test_scaled=scaler.transform(X_test)#将数据转换为pytorch的TENSORX_train=torch.tensor(X_train_scaled,dtype=torch.float32)X_test=torch.tensor(X_test_scaled,dtype=torch.float32)y_train=torch.tensor(y_train,dtype=torch.float32).view(-1,1)y_test=torch.tensor(y_test,dtype=torch.float32).view(-1,1)#创建数据加载器train_dataset=TensorDataset(X_train,y_train)test_dataset=TensorDataset(X_test,y_test)train_loader=DataLoader(train_dataset,batch_size=64,shuffle=True)test_loader=DataLoader(test_dataset,batch_size=64,shuffle=False)# ANN modellerini tanımlayalımclassANN(nn.Module):def__init__(self,input_dim):super(ANN,self).__init__()self.fc1=nn.Linear(input_dim,64)self.fc2=nn.Linear(64,32)self.fc3=nn.Linear(32,1)defforward(self,x):x=torch.relu(self.fc1(x))x=torch.relu(self.fc2(x))x=self.fc3(x)returnx num_epochs=500switch_epoch=