自定义数据集 使用paddlepaddle框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测

1. 引言

在这篇博客中,我们将使用PaddlePaddle框架实现一个逻辑回归模型,利用NumPy自定义数据集进行训练,并保存模型。最后,我们将演示如何加载保存的模型并进行预测。

2. 环境设置

首先,确保已安装PaddlePaddle和NumPy:

复制代码
pip install paddlepaddle numpy

3. 数据集准备

我们使用NumPy自定义一个简单的二分类数据集:

复制代码
import numpy as np

# 生成简单数据集 (特征和标签)
X = np.random.rand(100, 2)  # 100个样本,2个特征
y = (X[:, 0] + X[:, 1] > 1).astype(int)  # 简单规则:如果两个特征和大于1则为1,否则为0

4. 构建逻辑回归模型

使用PaddlePaddle构建逻辑回归模型:

复制代码
import paddle
import paddle.nn as nn
import paddle.optimizer as optim

# 定义逻辑回归模型
class LogisticRegression(nn.Layer):
    def __init__(self):
        super(LogisticRegression, self).__init__()
        self.linear = nn.Linear(2, 1)  # 2个输入特征,1个输出

    def forward(self, x):
        return self.linear(x)

# 初始化模型
model = LogisticRegression()

5. 模型训练

使用交叉熵损失函数和SGD优化器进行训练:

复制代码
# 转换数据为Paddle张量
X_train = paddle.to_tensor(X, dtype='float32')
y_train = paddle.to_tensor(y, dtype='float32').reshape([-1, 1])

# 定义损失函数和优化器
criterion = nn.BCEWithLogitsLoss()
optimizer = optim.SGD(parameters=model.parameters(), learning_rate=0.1)

# 训练模型
for epoch in range(1000):
    model.train()
    # 前向传播
    logits = model(X_train)
    loss = criterion(logits, y_train)
    
    # 反向传播
    loss.backward()
    optimizer.step()
    optimizer.clear_grad()

    if (epoch + 1) % 100 == 0:
        print(f'Epoch {epoch + 1}, Loss: {loss.numpy()}')

6. 保存模型

训练完成后保存模型:

复制代码
# 保存模型
paddle.save(model.state_dict(), 'logistic_regression.pdparams')

7. 加载模型并进行预测

加载保存的模型并进行预测:

复制代码
# 加载模型
model.load_dict(paddle.load('logistic_regression.pdparams'))

# 测试数据
X_test = np.array([[0.6, 0.7], [0.1, 0.2]])
X_test_tensor = paddle.to_tensor(X_test, dtype='float32')

# 进行预测
model.eval()
predictions = model(X_test_tensor)
predictions = predictions.numpy()

# 输出预测结果
print(f'Predictions: {predictions}')

8. 结语

通过以上步骤,我们成功地使用PaddlePaddle框架实现了一个简单的逻辑回归模型,并且在训练后保存了模型,加载并对新数据进行了预测。这种方式可以为更复杂的任务奠定基础。

相关推荐
m沐沐2 天前
数据集的六种填充方法——下(使用众数填充+使用逻辑回归填充+使用随机森林填充)
python·随机森林·机器学习·pycharm·逻辑回归
m沐沐2 天前
【机器学习】7 种分类模型实战(逻辑回归→随机森林→SVM→AdaBoost→朴素贝叶斯→XGBoost→神经网络)
人工智能·pytorch·python·随机森林·机器学习·分类·逻辑回归
装不满的克莱因瓶4 天前
基于 sklearn 工具和鸢尾花数据集,进行逻辑回归实战
人工智能·python·机器学习·ai·逻辑回归·sklearn
scx_link4 天前
逻辑回归的总结
算法·机器学习·逻辑回归
开开心心就好6 天前
免费智能证件合成工具,一键排版打印
windows·随机森林·计算机外设·word·逻辑回归·excel·csdn开发云
imDwAaY7 天前
机器学习入门:从感知机到逻辑回归,理解线性分类器与Softmax CS188 Note20 学习笔记
人工智能·笔记·python·学习·机器学习·逻辑回归
m沐沐7 天前
【机器学习】信用卡欺诈检测实战:逻辑回归 + 下采样
人工智能·python·机器学习·pycharm·逻辑回归·numpy
blue_dou7 天前
架构与能力边界解析:七款CRM产品四大核心维度对比测评
大数据·架构·逻辑回归·流程图
m沐沐7 天前
【机器学习】信用卡欺诈检测实战:逻辑回归 + 过采样
人工智能·算法·机器学习·pycharm·逻辑回归
hai3152475438 天前
有规则的AI编制操作系统演进过程展示
人工智能·程序人生·算法·逻辑回归·创业创新