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

注意事项

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

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

相关推荐
北冥you鱼2 分钟前
Go flag 包详解:从命令行解析到实战应用
开发语言·后端·golang
大鱼>7 分钟前
多宠物家庭智能管理平台:云端架构与多设备协同实战
python·算法·iot·宠物
Li Ming&14 分钟前
Python办公自动化:利用Python批量将PDF转换为图片文件
python·pdf·pip
Anova.YJ38 分钟前
AI Notebook
人工智能·python·机器学习
疯狂成瘾者43 分钟前
Java 常见集合方法
java·windows·python
web守墓人44 分钟前
【python】uv解决依赖安装缓慢的问题
开发语言·python·uv
asdzx671 小时前
使用 Python 精准操控 Word 字体:获取与替换方案
python·c#·word
胡耀超1 小时前
固件逆向:从一坨二进制,到一个可以被解释的系统
python·逆向工程·硬件安全·二进制分析·电子数据取证·嵌入式安全·固件逆向
geovindu2 小时前
CSharp: Bridge Pattern
开发语言·后端·桥接模式·结构型模式
এ慕ོ冬℘゜2 小时前
深入 JavaScript BOM:掌握 window 对象的窗口控制魔法
开发语言·javascript·ecmascript