在Python机器学习的基础旅程中,数据无疑是整个探索过程的起点与核心。无论是构建预测模型、进行模式识别还是执行数据驱动的决策,都离不开对数据的深入理解与操作。本章“初识数据”旨在为读者奠定坚实的数据认知基础,介绍数据的基本概念、数据获取的途径、数据预处理的重要性以及如何在Python中初步探索和分析数据。
数据的定义:数据是信息的载体,它以某种形式记录并可以被计算机识别和处理。在机器学习领域,数据通常指的是用于训练或测试机器学习模型的数值、文本、图像、音频等形式的原始资料。
数据类型:
数据维度:
数据获取是机器学习项目的第一步,它决定了后续分析的质量和可能性。数据来源广泛,包括但不限于:
数据预处理是机器学习项目中至关重要的一个环节,它直接影响模型的性能。预处理的主要步骤包括:
在Python中,有多种强大的库可以帮助我们进行数据的探索与分析,其中最常用的是Pandas和NumPy。
Pandas:
Pandas是一个开源的Python数据分析库,提供了快速、灵活和富有表达力的数据结构,旨在使“关系”或“标签”数据的处理工作变得既简单又直观。Pandas的两个核心数据结构是Series(一维数组)和DataFrame(二维表格型数据结构)。
import pandas as pd
df = pd.read_csv('data.csv')
.head()
, .tail()
, .info()
, .describe()
等方法快速了解数据的基本信息。
print(df.head()) # 查看前几行数据
print(df.info()) # 查看数据概况
print(df.describe()) # 数值型数据的统计描述
filtered_df = df[df['column'] > 10]
NumPy:
NumPy是Python的一个库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。它是Pandas等数据分析库的基础。
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
result = arr + 5 # 对数组中的每个元素加5
mean()
, std()
, min()
, max()
等。
print(np.mean(arr)) # 计算平均值
假设我们有一份关于某电商平台用户购买行为的数据集,包含用户ID、购买商品ID、购买时间、购买数量等信息。以下是一个简单的数据探索流程示例:
读取数据:
df = pd.read_csv('purchase_data.csv')
查看数据概况:
print(df.info()) # 查看数据框的每一列名称、非空数量、数据类型
print(df.describe()) # 查看数值型特征的统计描述
数据清洗:假设发现数据中存在缺失值,我们可以选择删除含有缺失值的行或列,或者根据业务逻辑填充缺失值。
df.dropna(inplace=True) # 删除含有缺失值的行
# 或者
df['purchase_quantity'].fillna(df['purchase_quantity'].mean(), inplace=True) # 用均值填充购买数量的缺失值
数据探索:分析购买数量的分布情况,或者探索不同时间段购买行为的差异。
import matplotlib.pyplot as plt
plt.hist(df['purchase_quantity'], bins=30) # 绘制购买数量的直方图
plt.show()
# 分析不同月份购买数量的变化
df['purchase_month'] = df['purchase_time'].dt.month
df.groupby('purchase_month')['purchase_quantity'].mean().plot(kind='bar') # 绘制月均购买数量的条形图
plt.show()
通过以上步骤,我们不仅对数据集有了初步的了解,还学会了如何在Python中使用Pandas和Matplotlib等工具进行数据的读取、清洗和基本的探索性分析。这些技能是后续进行机器学习建模的重要基础。