【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 训练逻辑回归模型,并将模型保存到本地。然后我们又演示了如何加载保存的模型并进行预测。通过这种方式,可以在数据科学项目中重用已训练的模型,节省重复训练的时间。

注意事项

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

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

相关推荐
2601_9563198817 分钟前
2026年零基础学量化:从看懂示例到写清条件和动作
人工智能·python
知无不研25 分钟前
lambda表达式的使用(3)
开发语言·c++·lambda
过期的秋刀鱼!39 分钟前
LangChain-D1-模型的工作流程
人工智能·python·langchain
萤火工厂目视化设计1 小时前
智能制造与企业文化目视化浪潮下:中小工厂的机遇与挑战
python·制造
cfm_29141 小时前
SpringAI + Ollama 本地大模型
java·开发语言·人工智能·语言模型
DeepVisionary2 小时前
从GPT-5.6 Sol的Ultrafast模式看推理速度竞赛:750 token/秒背后,Cerebras的晶圆级生意
python·自动化
C++ 老炮儿的技术栈2 小时前
基于Qt实现轻量化本地音乐播放器
开发语言·c++·qt·c·播放器·音乐
qq_448011162 小时前
C语言中的柔性数组
c语言·开发语言·柔性数组
小白学大数据2 小时前
长周期爬虫的数据一致性:断点续爬 + 事务回滚保障采集质量
开发语言·爬虫·测试工具
leisoo80973 小时前
财报数据怎么排雷本地化Python构建财务异常预警系统
人工智能·python·算法