首页
技术小册
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.1 初识数据 在Python机器学习的基础旅程中,数据无疑是整个探索过程的起点与核心。无论是构建预测模型、进行模式识别还是执行数据驱动的决策,都离不开对数据的深入理解与操作。本章“初识数据”旨在为读者奠定坚实的数据认知基础,介绍数据的基本概念、数据获取的途径、数据预处理的重要性以及如何在Python中初步探索和分析数据。 #### 1.7.1.1 数据的基本概念 **数据的定义**:数据是信息的载体,它以某种形式记录并可以被计算机识别和处理。在机器学习领域,数据通常指的是用于训练或测试机器学习模型的数值、文本、图像、音频等形式的原始资料。 **数据类型**: - **结构化数据**:遵循特定格式或模式的数据,如数据库中的表格数据,通常具有明确的行和列定义。 - **非结构化数据**:没有固定格式的数据,如文本文件、图像、音频和视频等。这类数据需要额外的处理才能被机器学习算法有效利用。 - **半结构化数据**:介于结构化与非结构化之间,如JSON或XML格式的数据,具有一定的内部结构但不如结构化数据那样严格。 **数据维度**: - **一维数据**:如时间序列数据,只在一个方向上有变化。 - **二维数据**:最常见的是表格数据,如Excel中的行和列。 - **多维数据**:如图像数据(二维像素阵列加颜色通道)或三维空间中的数据点。 #### 1.7.1.2 数据获取 数据获取是机器学习项目的第一步,它决定了后续分析的质量和可能性。数据来源广泛,包括但不限于: - **公共数据集**:许多机构和研究人员会公开他们的数据集供学习和研究使用,如UCI机器学习库、Kaggle数据集等。 - **API接口**:许多网站和服务提供API接口,允许开发者通过编程方式获取数据,如天气数据、股票价格等。 - **网络爬虫**:利用Python的爬虫库(如Scrapy、BeautifulSoup)从网页中提取所需信息。 - **内部数据库**:企业内部的数据库系统,如MySQL、MongoDB等,存储着大量的业务数据。 - **生成数据**:在特定场景下,可以通过模拟或算法生成符合需求的数据集。 #### 1.7.1.3 数据预处理 数据预处理是机器学习项目中至关重要的一个环节,它直接影响模型的性能。预处理的主要步骤包括: - **数据清洗**:处理缺失值(如填充、删除)、异常值(如基于统计方法识别并处理)、重复数据等。 - **数据集成**:将来自不同源的数据合并到一个统一的数据集中,解决数据不一致性和冗余问题。 - **数据转换**:将数据转换成适合模型训练的形式,如特征缩放(标准化、归一化)、编码分类变量(独热编码、标签编码)、文本数据向量化等。 - **数据规约**:通过聚合、降维等技术减少数据量,提高计算效率,同时尽可能保留重要信息。 #### 1.7.1.4 Python中初步探索数据 在Python中,有多种强大的库可以帮助我们进行数据的探索与分析,其中最常用的是Pandas和NumPy。 **Pandas**: Pandas是一个开源的Python数据分析库,提供了快速、灵活和富有表达力的数据结构,旨在使“关系”或“标签”数据的处理工作变得既简单又直观。Pandas的两个核心数据结构是Series(一维数组)和DataFrame(二维表格型数据结构)。 - **读取数据**:Pandas支持多种文件格式的数据读取,如CSV、Excel、JSON等。 ```python import pandas as pd df = pd.read_csv('data.csv') ``` - **数据探索**:通过`.head()`, `.tail()`, `.info()`, `.describe()`等方法快速了解数据的基本信息。 ```python print(df.head()) # 查看前几行数据 print(df.info()) # 查看数据概况 print(df.describe()) # 数值型数据的统计描述 ``` - **数据筛选与过滤**:利用条件表达式、布尔索引等方法筛选数据。 ```python filtered_df = df[df['column'] > 10] ``` **NumPy**: NumPy是Python的一个库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。它是Pandas等数据分析库的基础。 - **创建数组**: ```python import numpy as np arr = np.array([1, 2, 3, 4, 5]) ``` - **基本运算**:NumPy支持向量化运算,极大提高了计算效率。 ```python result = arr + 5 # 对数组中的每个元素加5 ``` - **数组统计**:提供了一系列统计函数,如`mean()`, `std()`, `min()`, `max()`等。 ```python print(np.mean(arr)) # 计算平均值 ``` #### 1.7.1.5 实战演练:数据探索案例分析 假设我们有一份关于某电商平台用户购买行为的数据集,包含用户ID、购买商品ID、购买时间、购买数量等信息。以下是一个简单的数据探索流程示例: 1. **读取数据**: ```python df = pd.read_csv('purchase_data.csv') ``` 2. **查看数据概况**: ```python print(df.info()) # 查看数据框的每一列名称、非空数量、数据类型 print(df.describe()) # 查看数值型特征的统计描述 ``` 3. **数据清洗**:假设发现数据中存在缺失值,我们可以选择删除含有缺失值的行或列,或者根据业务逻辑填充缺失值。 ```python df.dropna(inplace=True) # 删除含有缺失值的行 # 或者 df['purchase_quantity'].fillna(df['purchase_quantity'].mean(), inplace=True) # 用均值填充购买数量的缺失值 ``` 4. **数据探索**:分析购买数量的分布情况,或者探索不同时间段购买行为的差异。 ```python 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等工具进行数据的读取、清洗和基本的探索性分析。这些技能是后续进行机器学习建模的重要基础。
上一篇:
1.7 第 一个应用:鸢尾花分类
下一篇:
1.7.2 衡量模型是否成功:训练数据与测试数据
该分类下的相关小册推荐:
Python合辑5-格式化字符串
Python合辑3-字符串用法深度总结
Python数据分析与挖掘实战(上)
Python合辑10-函数
机器学习算法原理与实战
Python编程轻松进阶(二)
Python神经网络入门与实践
Python高并发编程与实战
剑指Python(磨刀不误砍柴工)
Python编程轻松进阶(四)
Python编程轻松进阶(五)
Python合辑11-闭包函数