ML 模型的数据预处理技术
数据预处理是在将数据集用于机器学习或其他任务之前对数据集执行某些操作或步骤的行为。数据预处理涉及清理、格式化或转换数据,以提高其质量或确保其适合其主要目的(在本例中为训练模型)。干净且高质量的数据集可以增强机器学习模型的性能。
低质量数据的常见问题包括:
- 缺失值
- 格式不一致
- 重复值
- 不相关的功能
在本文中,我将向您展示一些常见的数据预处理技术,以准备用于训练模型的数据集。您将需要 Python 的基本知识以及如何使用 Python 库和框架。
要求:
为了充分利用本指南,需要满足以下条件
- Python 3.12
- Jupyter Notebook 或您最喜欢的笔记本
- Numpy
- 熊猫
- Scipy
- Scikit 学习
- 墨尔本住房数据集
您还可以在 Github 上查看这些 Jupyter 笔记本中每个代码的输出。
设置
如果您还没有安装Python,可以从Python网站下载并按照说明进行安装。
安装 Python 后,安装所需的库
pip install numpy scipy pandas scikit-learn
安装 Jupyter Notebook。
pip install notebook
安装后,使用以下命令启动 Jupyter Notebook
jupyter notebook
这将在您的默认网络浏览器中启动 Jupyter Notebook。如果没有,请检查终端是否有可以手动粘贴到浏览器中的链接。
从“文件”菜单打开一个新笔记本,导入所需的库并运行单元
import numpy as np import pandas as pd import scipy import sklearn
前往墨尔本住房数据集网站并下载数据集。使用以下代码将数据集加载到笔记本中。您可以复制计算机上的文件路径以粘贴到 read_csv 函数中。您还可以将 csv 文件放在与笔记本相同的文件夹中,然后导入文件,如下所示。
data = pd.read_csv(r"melb_data.csv") # View the first 5 columns of the dataset data.head()
将数据分为训练集和验证集
from sklearn.model_selection import train_test_split # Set the target y = data['Price'] # Firstly drop categorical data types melb_features = data.drop(['Price'], axis=1) #drop the target column X = melb_features.select_dtypes(exclude=['object']) # Divide data into training and validation sets X_train, X_valid, y_train, y_valid = train_test_split(X, y, train_size=0.8, test_size=0.2, random_state=0)
您必须将数据拆分为训练集和验证集,以防止数据泄漏。因此,您对训练特征集执行的任何预处理技术都与您对验证特征集执行的预处理技术相同。
现在数据集已准备好进行处理!
数据清理
处理缺失值
数据集中的缺失值就像布料上的洞,应该用来缝制裙子。衣服还没做好就已经被它弄坏了。
有 3 种方法来处理数据集中的缺失值。
- 删除包含空单元格的行或列
pip install numpy scipy pandas scikit-learn
此方法的问题是您可能会丢失用于训练模型的有价值的信息。除非删除的行或列中的大多数值丢失,否则无需删除包含空单元格的行或列。
- 在空单元格中估算值 您可以使用该特定列中数据的平均值、中位数或众数来估算或填充空单元格。 Scikit learn 中的 SimpleImputer 将用于估算空单元格中的值
pip install notebook
- 估算并通知 其工作原理是,您在空单元格中估算值,但同时创建一个列来指示该单元格最初为空。
jupyter notebook
重复删除
重复的单元格意味着重复的数据,它会影响模型的准确性。对付它们的唯一方法就是扔掉它们。
import numpy as np import pandas as pd import scipy import sklearn
处理异常值
异常值是与数据集中的其他值显着不同的值。与其他数据值相比,它们可能异常高或异常低。它们可能是由于输入错误而出现,也可能确实是异常值。
处理异常值非常重要,否则它们将导致数据分析或模型不准确。检测异常值的一种方法是计算 z 分数。
它的工作方式是使用 z 分数来检查数据点是否距平均值 3 点或更多。此计算针对每个数据点进行。如果数据点的 z 分数等于 3 或更高值,则该数据点为异常值。
data = pd.read_csv(r"melb_data.csv") # View the first 5 columns of the dataset data.head()
数据转换
标准化
您对特征进行标准化,以便将它们描述为正态分布。
正态分布(也称为高斯分布)是一种统计分布,其中平均值上方和下方的距离或分布大致相等。正态分布数据的数据点图形形成钟形曲线。
标准化数据的要点是您要使用的机器学习算法是否假设数据呈正态分布。一个例子是高斯朴素贝叶斯模型。
from sklearn.model_selection import train_test_split # Set the target y = data['Price'] # Firstly drop categorical data types melb_features = data.drop(['Price'], axis=1) #drop the target column X = melb_features.select_dtypes(exclude=['object']) # Divide data into training and validation sets X_train, X_valid, y_train, y_valid = train_test_split(X, y, train_size=0.8, test_size=0.2, random_state=0)
标准化
标准化将数据集的特征转换为均值 0 和标准差 1。此过程对每个特征进行缩放,使其在数据中具有相似的范围。这确保了每个功能对模型训练的贡献均等。
在以下情况下使用标准化:
- 数据中的特征具有不同的尺度或单位。
- 您想要使用的机器学习模型基于距离或梯度优化(例如线性回归、逻辑回归、K 均值聚类)。
您可以使用 sklearn 库中的 StandardScaler() 来标准化特征。
pip install numpy scipy pandas scikit-learn
结论
数据预处理不仅仅是一个初步阶段。这是构建准确的机器学习模型过程的一部分。它还可以进行调整以满足您正在使用的数据集的需求。
与大多数活动一样,熟能生巧。当您继续预处理数据时,您的技能和模型都会得到提高。
我很想听听您对此的想法?
以上是ML 模型的数据预处理技术的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。

每天学习Python两个小时是否足够?这取决于你的目标和学习方法。1)制定清晰的学习计划,2)选择合适的学习资源和方法,3)动手实践和复习巩固,可以在这段时间内逐步掌握Python的基本知识和高级功能。

Python在开发效率上优于C ,但C 在执行性能上更高。1.Python的简洁语法和丰富库提高开发效率。2.C 的编译型特性和硬件控制提升执行性能。选择时需根据项目需求权衡开发速度与执行效率。

Python和C 各有优势,选择应基于项目需求。1)Python适合快速开发和数据处理,因其简洁语法和动态类型。2)C 适用于高性能和系统编程,因其静态类型和手动内存管理。

pythonlistsarepartofthestAndArdLibrary,herilearRaysarenot.listsarebuilt-In,多功能,和Rused ForStoringCollections,而EasaraySaraySaraySaraysaraySaraySaraysaraySaraysarrayModuleandleandleandlesscommonlyusedDduetolimitedFunctionalityFunctionalityFunctionality。

Python在自动化、脚本编写和任务管理中表现出色。1)自动化:通过标准库如os、shutil实现文件备份。2)脚本编写:使用psutil库监控系统资源。3)任务管理:利用schedule库调度任务。Python的易用性和丰富库支持使其在这些领域中成为首选工具。

Python在科学计算中的应用包括数据分析、机器学习、数值模拟和可视化。1.Numpy提供高效的多维数组和数学函数。2.SciPy扩展Numpy功能,提供优化和线性代数工具。3.Pandas用于数据处理和分析。4.Matplotlib用于生成各种图表和可视化结果。

Python在Web开发中的关键应用包括使用Django和Flask框架、API开发、数据分析与可视化、机器学习与AI、以及性能优化。1.Django和Flask框架:Django适合快速开发复杂应用,Flask适用于小型或高度自定义项目。2.API开发:使用Flask或DjangoRESTFramework构建RESTfulAPI。3.数据分析与可视化:利用Python处理数据并通过Web界面展示。4.机器学习与AI:Python用于构建智能Web应用。5.性能优化:通过异步编程、缓存和代码优
