用飞桨实现年收入预测

上回的话,我做第一次的时候因为后来没时间了,就放弃了,这回的话我就算是过了提交时间我也要把它复现出来。

开始:

数据处理

先是导库:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

然后先把数据集读取一下:

data_x = pd.read_csv("work/data/X_train")
print(data_x)

data_y = pd.read_csv("work/data/Y_train")
print(data_y)

然后下面的操作先看操作效果:

.values的话就是以array形式返回指定column的所有取值,然后接下来我们可以用numpy进行操作,然后我们再获得行数,然后将y也转一下

X_data = df_dataset_X.iloc[:, 1:].values
m_dataset = X_data.shape[0]
y_data = df_dataset_y.iloc[:, 1].values.reshape(m_dataset, 1)
dataset = np.concatenate((x_data, y_data), axis=1)

然后计算一下,但是为啥要这么做呢?这么做的目的是什么呢?我知道就是转numpy可能会好操作。首先我们看一下就是y的数据是0和1,这个是第二列的,第一行是序号,然后x呢,哦哦,他这种写法感觉就是套用呢,写的也不灵活啊,其实很多代码都可以不用写的啊,但是他为什

### 使用飞桨 (PaddlePaddle) 实现波士顿房价预测 以下是基于飞桨框架实现波士顿房价预测的一个完整示例,涵盖了数据处理、模型定义、训练以及测试的主要步骤。 #### 1. 导入必要的库 首先需要导入飞桨及其子模块以及其他辅助工具: ```python import paddle import paddle.nn as nn from paddle.vision.datasets import DatasetFolder import numpy as np import matplotlib.pyplot as plt ``` 注意,在最新版本的飞桨中,推荐使用 `paddle.nn` 替代旧版中的 `paddle.fluid`[^3]。 --- #### 2. 加载并预处理数据 波士顿房价数据集可以通过第三方库(如 `sklearn` 或其他方式)获取。这里假设已下载好数据集,并将其转换为适合飞桨使用的格式。 ```python # 假设已有波士顿房价数据集 X_train, y_train, X_test, y_test def load_data(): from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler boston = load_boston() X = boston.data y = boston.target.reshape(-1, 1) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 归一化处理 scaler = StandardScaler() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test) return X_train.astype('float32'), y_train.astype('float32'), \ X_test.astype('float32'), y_test.astype('float32') X_train, y_train, X_test, y_test = load_data() ``` 此部分实现了数据加载与标准化处理[^1]。 --- #### 3. 定义模型 通过继承 `nn.Layer` 类来自定义一个简单的线性回归模型: ```python class RegressionModel(nn.Layer): def __init__(self): super(RegressionModel, self).__init__() self.fc = nn.Linear(in_features=13, out_features=1) # 输入特征数为13 def forward(self, inputs): outputs = self.fc(inputs) return outputs ``` 此处利用了飞桨的动态图机制 (`dygraph`) 和全连接层函数 `Linear` 来构建单层神经网络作为线性回归模型[^3]。 --- #### 4. 训练过程 设置优化器、损失函数,并编写训练循环逻辑: ```python model = RegressionModel() # 设置超参数 learning_rate = 0.01 epochs = 500 # 定义优化器和损失函数 optimizer = paddle.optimizer.Adam(parameters=model.parameters(), learning_rate=learning_rate) loss_fn = nn.MSELoss() # 平方误差损失 train_losses = [] test_losses = [] for epoch in range(epochs): model.train() preds = model(paddle.to_tensor(X_train)) loss = loss_fn(preds, paddle.to_tensor(y_train)) optimizer.clear_grad() loss.backward() optimizer.step() train_losses.append(loss.numpy()[0]) # 验证阶段 model.eval() with paddle.no_grad(): test_preds = model(paddle.to_tensor(X_test)) test_loss = loss_fn(test_preds, paddle.to_tensor(y_test)).numpy()[0] test_losses.append(test_loss) print(f"Final Test Loss: {test_loss}") ``` 以上代码展示了如何配置 Adam 优化器以及 MSE 损失函数来进行模型训练[^2]。 --- #### 5. 可视化结果 绘制训练过程中损失的变化曲线可以帮助分析模型性能: ```python plt.figure(figsize=(8, 6)) plt.plot(train_losses, label='Train Loss') plt.plot(test_losses, label='Test Loss', linestyle="--") plt.xlabel("Epochs", fontsize=14) plt.ylabel("Loss Value", fontsize=14) plt.title("Training and Testing Loss Over Epochs", fontsize=16) plt.legend(fontsize=12) plt.show() ``` 这一步有助于直观了解模型收敛情况。 --- ### 总结 上述流程覆盖了一个完整的波士顿房价预测任务实施方法,包括但不限于数据准备、模型搭建、训练评估及可视化展示等内容。值得注意的是,实际项目可能还需要进一步调整超参或引入更复杂的架构以提升效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值