首页
技术小册
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机器学习基础教程(上)
### 2.3 监督学习算法 在Python机器学习的基础教程中,深入理解监督学习算法是掌握机器学习核心的关键一步。监督学习是机器学习领域中最常见且应用最广泛的一类算法,其核心在于利用一组已知标签(或称为“答案”)的数据集来训练模型,使模型能够学习到输入数据与输出标签之间的映射关系,进而对新的、未见过的数据进行预测或分类。本章节将详细介绍几种基础的监督学习算法,包括线性回归、逻辑回归、决策树和K近邻算法,并探讨它们在Python中的实现与应用。 #### 2.3.1 线性回归 **概念解析**: 线性回归是一种预测数值型数据的监督学习算法。它试图找到一个最佳的线性方程(或称为模型),以最小化实际值与预测值之间的误差平方和。线性回归模型可以表示为 `y = wx + b`,其中 `y` 是预测值,`x` 是输入特征,`w` 是权重(斜率),`b` 是偏置项(截距)。 **Python实现**: 在Python中,我们可以使用`scikit-learn`库来轻松实现线性回归。首先,需要安装`scikit-learn`库(如果尚未安装): ```bash pip install scikit-learn ``` 然后,可以使用以下代码示例来演示线性回归的应用: ```python from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.datasets import make_regression # 生成模拟数据 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() # 训练模型 model.fit(X_train, y_train) # 预测测试集 y_pred = model.predict(X_test) # 评估模型(此处省略具体评估代码,通常使用均方误差等指标) ``` #### 2.3.2 逻辑回归 **概念解析**: 尽管名字中包含“回归”,逻辑回归实际上是一种广泛用于分类问题的监督学习算法,特别是二分类问题。它通过Sigmoid函数将线性模型的输出映射到(0, 1)区间,从而得到属于某个类别的概率。 **Python实现**: 同样使用`scikit-learn`库,逻辑回归的实现非常直接: ```python from sklearn.linear_model import LogisticRegression from sklearn.datasets import make_classification # 生成模拟数据 X, y = make_classification(n_samples=100, n_features=2, n_classes=2, random_state=42) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 创建逻辑回归模型 model = LogisticRegression() # 训练模型 model.fit(X_train, y_train) # 预测测试集 y_pred = model.predict(X_test) # 评估模型(此处省略具体评估代码) ``` #### 2.3.3 决策树 **概念解析**: 决策树是一种通过树状结构进行决策的分类与回归方法。它根据数据特征进行递归地划分数据集,每次划分都选择最优的划分属性,直到满足停止条件(如所有样本属于同一类、达到预设的树深度等)。决策树易于理解和解释,是机器学习中的经典算法之一。 **Python实现**: 在`scikit-learn`中,`DecisionTreeClassifier`用于分类任务,`DecisionTreeRegressor`用于回归任务: ```python from sklearn.tree import DecisionTreeClassifier # 使用之前的分类数据集 # 划分训练集和测试集(此处省略,与上例相同) # 创建决策树分类模型 model = DecisionTreeClassifier() # 训练模型 model.fit(X_train, y_train) # 预测测试集 y_pred = model.predict(X_test) # 评估模型(此处省略具体评估代码) ``` #### 2.3.4 K近邻算法(K-NN) **概念解析**: K近邻算法是一种基于实例的学习方法,或者说是“懒惰学习”的代表。它不需要显式地训练模型,而是将训练数据集存储在内存中,当有新样本需要预测时,算法会计算新样本与所有训练样本之间的距离,找出距离最近的K个样本,然后根据这K个样本的标签进行投票(对于分类问题)或平均(对于回归问题),以决定新样本的类别或预测值。 **Python实现**: 在`scikit-learn`中,K近邻算法通过`KNeighborsClassifier`(分类)和`KNeighborsRegressor`(回归)实现: ```python from sklearn.neighbors import KNeighborsClassifier # 使用之前的分类数据集 # 划分训练集和测试集(此处省略,与上例相同) # 创建K近邻分类模型 model = KNeighborsClassifier(n_neighbors=3) # 假设选择3个最近邻 # 训练模型(K-NN通常不需要显式训练过程,这里只是调用fit方法以符合scikit-learn的API) model.fit(X_train, y_train) # 预测测试集 y_pred = model.predict(X_test) # 评估模型(此处省略具体评估代码) ``` ### 总结 本章介绍了四种基础的监督学习算法:线性回归、逻辑回归、决策树和K近邻算法。每种算法都有其独特的适用场景和优缺点,例如线性回归适用于连续值的预测,逻辑回归适用于二分类问题,决策树易于理解和解释,而K近邻算法则对异常值敏感且计算成本较高。通过Python的`scikit-learn`库,我们可以轻松地实现这些算法,并应用于实际的数据分析和机器学习项目中。掌握这些基础算法,将为后续学习更复杂的机器学习模型打下坚实的基础。
上一篇:
2.2 泛化、过拟合与欠拟合
下一篇:
2.3.1 一些样本数据集
该分类下的相关小册推荐:
Python编程轻松进阶(四)
Python3网络爬虫开发实战(上)
Python合辑10-函数
Python数据分析与挖掘实战(下)
Python与办公-玩转PPT
Python高并发编程与实战
Python机器学习实战
Python合辑2-字符串常用方法
机器学习算法原理与实战
Python合辑8-变量和运算符
Python合辑6-字典专题
Python面试指南