数据预处理在机器学习和数据科学中是非常非常重要的,因为它直接影响模型的性能和准确性。
-
提高数据质量: 现实中的数据往往存在噪声、缺失值和异常值。如果不清洗和修正,这些问题会导致模型做出错误的预测或分析。因此,数据预处理通过清理、修复和标准化数据,确保输入的数据是干净、可靠的。
-
增强模型性能: 不同的特征在数据集中可能有不同的量纲或尺度,这可能会使某些特征对模型的影响过大或过小。通过归一化、标准化和特征选择,可以让模型更均衡地利用所有特征,从而提高模型的性能。
-
防止过拟合: 过多的特征或不相关的数据会增加模型的复杂性,导致过拟合。通过特征选择和降维,可以减少特征的数量,降低模型的复杂度,从而提高模型的泛化能力,防止过拟合。
-
处理不平衡数据: 在实际应用中,数据集的类别分布可能严重不平衡,如果不加以处理,模型可能会偏向多数类,忽视少数类。通过过采样、降采样等方法可以平衡数据集,从而提高模型对少数类的识别能力。
-
提高模型的解释性和效率: 简化数据结构和减少无用特征不仅可以提高模型的计算效率,还能使模型更容易解释。这样,决策者可以更好地理解模型的输出,并做出更明智的决策。
没有有效的数据预处理,模型可能难以捕捉到数据中的真实模式,最终影响预测结果的可靠性。
一、 标准化(Standardization)
1. 核心公式
标准化的目标是使数据具有零均值和单位方差。给定一个数据集 ,标准化的步骤如下:
通过上述公式,我们将每个数据点 转换为标准化值 ,使得所有数据点的均值为0,方差为1。
2. 优点
- 提高模型训练的稳定性。
- 使不同特征具有相同的尺度,适合于对距离敏感的算法。
3. 缺点
- 对于有明显离群值的数据,标准化可能会受到影响,导致结果不理想。
4. 适用场景
- 特别适用于要求数据分布近似正态分布的算法,如SVM、线性回归和KNN等。
5. 核心案例
from sklearn.datasets import fetch_california_housing
from sklearn.preprocessing import StandardScaler
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 加载数据集
california = fetch_california_housing()
data = pd.DataFrame(california.data, columns=california.feature_names)
# 原始数据统计信息
print("原始数据统计信息:\n", data.describe())
# 标准化
scaler = StandardScaler()
data_scaled = scaler.fit_transform(data)
# 将标准化后的数据转为DataFrame
data_scaled = pd.DataFrame(data_scaled, columns=california.feature_names)
# 标准化后数据统计信息
print("标准化后数据统计信息:\n", data_scaled.describe())
# 可视化前后数据分布
plt.figure(figsize=(16, 6))
# 标准化前的分布
plt.subplot(1, 2, 1)
sns.histplot(data['MedInc'], kde=True, color='blue')
plt.title('Distribution of Median Income before Standardization')
# 标准化后的分布
plt.subplot(1, 2, 2)
sns.histplot(data_scaled['MedInc'], kde=True, color='red')
plt.title('Distribution of Median Income after Standardization')
plt.show()
二、归一化(Normalization)
1. 核心公式
归一化的目标是将数据缩放到特定的范围(通常是[0, 1])。给定一个数据集 ,归一化的步骤如下:
通过该公式,所有数据点将被缩放到 [0, 1] 范围内。
2. 优点
- 使得数据在同一尺度上,有助于加快梯度下降的收敛速度。
- 适用于需要计算距离的算法,如KNN和神经网络。
3. 缺点
- 对于有离群值的数据,归一化后的数据分布可能会受到影响。
4. 适用场景
- 特别适用于距离度量敏感的算法,如KNN、神经网络。
5. 核心案例
我们将使用Iris
数据集来展示归一化的效果,并生成相关的图表。
from sklearn.datasets import load_iris
from sklearn.preprocessing import MinMaxScaler
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 加载数据集
iris = load_iris()
data = pd.DataFrame(iris.data, columns=iris.feature_names)
# 原始数据统计信息
print("原始数据统计信息:\n", data.describe())
# 归一化
scaler = MinMaxScaler()
data_normalized = scaler.fit_transform(data)
# 将归一化后的数据转为DataFrame
data_normalized = pd.DataFrame(data_normalized, columns=iris.feature_names)
# 归一化数据统计信息
print("归一化后数据统计信息:\n", data_normalized.describe())
# 可视化前后数据分布
plt.figure(figsize=(16, 6))
# 归一化前的分布
plt.subplot(1, 2, 1)
sns.histplot(data['sepal length (cm)'], kde=True, color='green')
plt.title('Distribution of Sepal Length before Normalization')
# 归一化后的分布
plt.subplot(1, 2, 2)
sns.histplot(data_normalized['sepal length (cm)'], kde=True, color='orange')
plt.title('Distribution of Sepal Length after Normalization')
plt.show()
完整版PDF文档,免费领取~
最后分享
AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!
1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)
3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
4. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。
5. 大模型面试题
面试,不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费
】
如有侵权,请联系删除。