【Python】如何训练模型并保存本地和加载模型


这个年纪的我们

爱情跟不上分开的节奏

这个年纪的我们

更珍惜难得的自由

这个年纪的我们

比起从前更容易感动

这个年纪的我们

徘徊在理想与现实之中

🎵 齐一《这个年纪》


逻辑回归是一种常用的分类算法,能够根据输入特征预测目标变量的类别。本文将介绍如何利用 Pandas 预处理数据并使用 scikit-learn 训练逻辑回归模型,保存模型文件到本地,然后加载模型进行预测。

准备工作

首先,确保你已经安装了 Pandas 和 scikit-learn:

bash 复制代码
pip install pandas scikit-learn

1. 数据准备

我们使用一个示例数据集,或者你可以用自己的数据进行测试。这里,我们将生成一个虚拟数据集:

python 复制代码
import pandas as pd
import numpy as np

# 生成虚拟数据集
np.random.seed(42)
data = pd.DataFrame({
    'feature1': np.random.rand(100),
    'feature2': np.random.rand(100),
    'target': np.random.randint(0, 2, size=100)
})

2. 数据预处理

逻辑回归模型只接受数值型数据,所以如果有非数值的列需要编码成数值。我们这里假设数据已经是数值型,只需拆分特征和目标列即可:

python 复制代码
# 特征和目标列的分离
X = data[['feature1', 'feature2']]
y = data['target']

3. 训练逻辑回归模型

我们将使用 scikit-learn 的 LogisticRegression 进行模型训练。首先,将数据拆分成训练集和测试集,然后训练模型:

python 复制代码
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

# 将数据划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建并训练逻辑回归模型
model = LogisticRegression()
model.fit(X_train, y_train)

4. 保存模型到本地

训练好的模型可以用 joblib 或 pickle 库进行序列化保存。这里使用 joblib:

python 复制代码
import joblib

# 保存模型到文件
joblib.dump(model, 'logistic_regression_model.pkl')

5. 加载模型并进行预测

模型被保存为 .pkl 文件后,可以随时加载并使用它进行新的预测:

python 复制代码
# 从文件中加载模型
model_loaded = joblib.load('logistic_regression_model.pkl')

# 使用加载的模型进行预测
predictions = model_loaded.predict(X_test)
print(predictions)

6. 总结

本文展示了如何用 Pandas 预处理数据、使用 scikit-learn 训练逻辑回归模型,并将模型保存到本地。然后我们又演示了如何加载保存的模型并进行预测。通过这种方式,可以在数据科学项目中重用已训练的模型,节省重复训练的时间。

注意事项

确保在训练和测试数据的预处理中使用相同的操作,以保持特征的一致性。

由于模型会保存训练时的数据类型和形状,因此保持数据格式不变是重要的。

相关推荐
方也_arkling6 小时前
【Java-Day08】static / final / 枚举
java·开发语言
风吹夏回6 小时前
Python 全局异常处理:从“满屏 try-except”到优雅兜底
开发语言·python
Chengbei116 小时前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构
llz_1126 小时前
web-第一次课后作业
java·开发语言·idea
小熊Coding7 小时前
Python爬取当当网二手图书项目实战!
开发语言·爬虫·python·beautifulsoup·requests·二手图书
秋97 小时前
Java项目运行5天左右自动宕机:系统性定位与解决方案
java·开发语言·python
小江的记录本7 小时前
【JVM虚拟机】垃圾回收GC:垃圾收集器:CMS:核心原理、回收流程、优缺点、废弃原因(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·spring·面试·maven
xiaoshuaishuai87 小时前
C# 内存管理与资源泄漏
开发语言·c#
lsx2024068 小时前
SVN 检出操作
开发语言
田里的水稻8 小时前
OE_ubuntu26.04与宿主机之间复制粘贴内容
人工智能·python·机器人