首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
1.1 为何选择机器学习
1.1.1 机器学习能够解决的问题
1.1.2 熟悉任务和数据
1.2 为何选择Python
1.3 scikit-learn
1.4 必要的库和工具
1.4.1 Jupyter Notebook
1.4.2 NumPy
1.4.3 SciPy
1.4.4 matplotlib
1.4.5 pandas
1.4.6 mglearn
1.5 Python 2 与Python 3 的对比
1.7 第 一个应用:鸢尾花分类
1.7.1 初识数据
1.7.2 衡量模型是否成功:训练数据与测试数据
1.7.3 要事第 一:观察数据
1.7.4 构建第 一个模型:k 近邻算法
1.7.5 做出预测
1.7.6 评估模型
2.1 分类与回归
2.2 泛化、过拟合与欠拟合
2.3 监督学习算法
2.3.1 一些样本数据集
2.3.2 k 近邻
2.3.3 线性模型
2.3.4 朴素贝叶斯分类器
2.3.5 决策树
2.3.6 决策树集成
2.3.7 核支持向量机
2.3.8 神经网络(深度学习)
2.4 分类器的不确定度估计
2.4.1 决策函数
2.4.2 预测概率
2.4.3 多分类问题的不确定度
3.1 无监督学习的类型
3.2 无监督学习的挑战
3.3 预处理与缩放
3.3.1 不同类型的预处理
3.3.2 应用数据变换
3.3.3 对训练数据和测试数据进行相同的缩放
3.3.4 预处理对监督学习的作用
3.4 降维、特征提取与流形学习
3.4.1 主成分分析
3.4.2 非负矩阵分解
3.4.3 用t-SNE 进行流形学习
3.5 聚类
3.5.1 k 均值聚类
3.5.2 凝聚聚类
3.5.3 DBSCAN
3.5.4 聚类算法的对比与评估
3.5.5 聚类方法小结
当前位置:
首页>>
技术小册>>
Python机器学习基础教程(上)
小册名称:Python机器学习基础教程(上)
### 1.7.5 做出预测 在Python机器学习项目中,经过数据预处理、特征选择、模型训练等一系列步骤后,最终的目标往往是对未知数据进行预测或分类。本章“做出预测”将深入探讨如何利用训练好的模型进行预测,包括预测流程、评估预测结果的重要性,以及如何处理实际预测中可能遇到的问题。 #### 1.7.5.1 预测流程概览 预测流程通常分为以下几个步骤: 1. **准备测试数据**:首先,需要准备一套与训练数据格式一致但内容不同的数据集作为测试集。测试集应包含需要预测的目标变量(对于监督学习而言),但在进行预测时,我们只使用测试集的特征部分,目标变量用于后续评估预测准确性。 2. **加载训练好的模型**:使用训练阶段保存的模型参数,加载模型到内存中。这通常涉及使用如`joblib`、`pickle`或特定库(如TensorFlow的`tf.saved_model`)的序列化功能。 3. **执行预测**:将测试集的特征输入到模型中,执行预测操作。对于分类问题,预测结果通常是类别的标签;对于回归问题,则是连续值。 4. **评估预测结果**:通过比较预测结果与实际目标变量(即测试集的真实标签)来计算评估指标,如准确率、召回率、F1分数(对于分类问题)或均方误差(MSE)、R²分数(对于回归问题)。这些指标帮助量化模型的性能。 5. **解释与调优**:根据评估结果,分析模型表现不佳的可能原因,如过拟合、欠拟合、特征选择不当等,并据此调整模型参数或重新训练模型。 6. **部署模型**:一旦模型满足性能要求,就可以将其部署到生产环境中,用于实时或批量预测。 #### 1.7.5.2 实战案例:使用scikit-learn进行预测 以下是一个使用scikit-learn库进行简单线性回归预测的示例。 **步骤1:准备测试数据** 假设我们已有训练好的线性回归模型和一个包含新数据点的测试集。 ```python import numpy as np from sklearn.datasets import make_regression from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression # 生成模拟数据 X, y = make_regression(n_samples=100, n_features=1, noise=0.1) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 训练模型 model = LinearRegression().fit(X_train, y_train) # 准备测试数据(这里直接使用X_test作为示例) # 在实际应用中,这些测试数据可能来自新的、未见过的数据源 ``` **步骤2:加载训练好的模型** 由于在本例中我们直接训练了模型,所以无需额外加载步骤。但在实际应用中,你可能会从文件或数据库中加载已保存的模型。 **步骤3:执行预测** ```python # 使用训练好的模型对测试集进行预测 y_pred = model.predict(X_test) ``` **步骤4:评估预测结果** ```python from sklearn.metrics import mean_squared_error, r2_score # 计算均方误差和R²分数 mse = mean_squared_error(y_test, y_pred) r2 = r2_score(y_test, y_pred) print(f"Mean Squared Error: {mse}") print(f"R² Score: {r2}") ``` **步骤5:解释与调优** 根据MSE和R²分数的值,我们可以评估模型的性能。如果MSE较高或R²分数较低,可能需要检查数据预处理、特征选择或模型类型是否适合当前问题,并尝试调整模型参数(如正则化强度)或使用不同的模型。 **步骤6:部署模型** 模型部署通常涉及将模型及其依赖项打包成一个可执行的单元,如API、Web服务或桌面应用程序,以便在生产环境中使用。scikit-learn模型可以通过多种方式部署,包括使用Flask或Django创建Web服务,或使用云服务提供商的机器学习平台。 #### 1.7.5.3 注意事项与最佳实践 1. **数据一致性**:确保测试集与训练集在数据分布、特征范围等方面尽可能一致,以避免引入偏差。 2. **性能监控**:部署后持续监控模型性能,定期检查是否需要重新训练模型以适应数据变化。 3. **异常处理**:在预测过程中添加异常处理机制,以应对可能出现的输入数据错误或模型异常。 4. **模型可解释性**:对于需要高可解释性的应用场景,选择或开发可解释性强的模型,如决策树、线性模型等。 5. **数据隐私与安全**:确保在数据收集、处理、存储和传输过程中遵守相关隐私保护法规和安全标准。 通过遵循上述流程和最佳实践,你可以更有效地利用Python和机器学习技术来做出准确可靠的预测,为业务决策提供有力支持。
上一篇:
1.7.4 构建第 一个模型:k 近邻算法
下一篇:
1.7.6 评估模型
该分类下的相关小册推荐:
Python合辑1-Python语言基础
Python合辑12-面向对象
Python神经网络入门与实践
Python合辑6-字典专题
剑指Python(磨刀不误砍柴工)
机器学习算法原理与实战
Python自动化办公实战
Python与办公-玩转PDF
Python合辑3-字符串用法深度总结
Python3网络爬虫开发实战(上)
Python编程轻松进阶(三)
Python合辑4-130个字符串操作示例