首页
技术小册
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.1 分类与回归:Python机器学习基础教程(上) 在机器学习领域,分类与回归是两种最基础且广泛应用的预测任务。它们旨在根据给定的数据集,学习一个模型,以便对未来未见过的数据进行预测。分类问题涉及预测数据点的类别或标签,而回归问题则关注于预测一个或多个连续值。本章节将深入探讨这两种任务的基本概念、应用场景、常用算法及其在Python中的实现。 #### 2.1.1 分类问题 **2.1.1.1 定义与概述** 分类是机器学习中的一种监督学习任务,其目标是将数据集中的每个样本分配到一个或多个预定义的类别中。这些类别通常是离散的、有限的集合,如“是/否”、“疾病类型A/B/C”等。分类算法通过学习训练数据中的特征与类别之间的关系,来构建分类模型。 **2.1.1.2 常用分类算法** 1. **逻辑回归**:尽管名字中含有“回归”,但逻辑回归实际上是一种广泛使用的分类算法,特别是用于二分类问题。它通过Sigmoid函数将线性回归的预测值映射到(0,1)区间,表示属于某一类的概率。 2. **决策树**:决策树是一种直观的分类和回归方法。它通过递归地选择最优特征来划分数据集,形成树状结构。在分类问题中,每个叶子节点代表一个类别。 3. **随机森林**:随机森林是决策树的集成学习方法,通过构建多个决策树并输出它们的分类模式的众数(对于分类问题)或平均值(对于回归问题)来改进预测性能。 4. **支持向量机(SVM)**:SVM是一种强大的分类技术,尤其在高维空间中表现优异。它基于结构风险最小化原则,寻找一个超平面来最大化不同类别之间的间隔。 5. **K近邻(KNN)**:KNN是一种基于实例的学习方法,通过测量不同数据点之间的距离进行分类。对于新的数据点,KNN算法会找到最近的K个已知类别数据点,并基于这K个点的多数投票来预测新点的类别。 **2.1.1.3 Python实现示例** 以逻辑回归为例,使用scikit-learn库在Python中实现分类模型: ```python from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score # 加载数据 iris = load_iris() X = iris.data y = iris.target # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # 创建逻辑回归模型 model = LogisticRegression(max_iter=200) # 训练模型 model.fit(X_train, y_train) # 预测测试集 y_pred = model.predict(X_test) # 评估模型 print("Accuracy:", accuracy_score(y_test, y_pred)) ``` #### 2.1.2 回归问题 **2.1.2.1 定义与概述** 回归是另一种重要的监督学习任务,其目标是预测一个或多个连续值。与分类问题不同,回归问题的输出不是离散的类别标签,而是可以取任意实数值的连续量,如房价、温度等。 **2.1.2.2 常用回归算法** 1. **线性回归**:线性回归是最简单的回归算法,它假设特征与目标变量之间存在线性关系。通过最小化预测值与真实值之间的平方误差来训练模型。 2. **多项式回归**:当线性关系不足以描述数据时,可以使用多项式回归。它通过在特征变量上添加非线性项(如平方、立方等)来扩展线性模型。 3. **岭回归(Ridge Regression)**:岭回归是线性回归的一种扩展,通过引入正则化项(L2范数)来解决过拟合问题,使得模型的系数更加平滑。 4. **套索回归(Lasso Regression)**:与岭回归类似,套索回归也使用正则化项来防止过拟合,但不同的是它使用L1范数作为正则化项,这有助于实现特征的稀疏性。 5. **决策树回归**:决策树不仅可以用于分类问题,也可以用于回归问题。它通过构建树状结构来预测连续值。 **2.1.2.3 Python实现示例** 以线性回归为例,使用scikit-learn库在Python中实现回归模型: ```python from sklearn.datasets import make_regression from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error # 生成模拟数据 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.3, random_state=42) # 创建线性回归模型 model = LinearRegression() # 训练模型 model.fit(X_train, y_train) # 预测测试集 y_pred = model.predict(X_test) # 评估模型 mse = mean_squared_error(y_test, y_pred) print("Mean Squared Error:", mse) ``` #### 2.1.3 分类与回归的对比 - **目标变量**:分类问题的目标变量是离散的类别标签,而回归问题的目标变量是连续的数值。 - **评估指标**:分类问题常用准确率、精确率、召回率、F1分数等指标评估;回归问题则常用均方误差(MSE)、均方根误差(RMSE)等指标。 - **应用场景**:分类适用于预测类别标签的场景,如垃圾邮件识别、疾病诊断等;回归适用于预测连续值的场景,如房价预测、温度预测等。 #### 结语 分类与回归作为机器学习的两大基石,在各个领域都发挥着重要作用。通过选择合适的算法和合适的评估指标,可以有效地解决实际应用中的问题。在Python中,借助scikit-learn等强大的机器学习库,我们可以轻松地实现和部署这些算法。希望本章内容能为你后续的机器学习之旅打下坚实的基础。
上一篇:
1.7.6 评估模型
下一篇:
2.2 泛化、过拟合与欠拟合
该分类下的相关小册推荐:
Python合辑10-函数
Python甚础Django与爬虫
Python编程轻松进阶(二)
Python数据分析与挖掘实战(上)
Python与办公-玩转PDF
Python编程轻松进阶(四)
Python合辑5-格式化字符串
机器学习算法原理与实战
Python爬虫入门与实战开发(上)
Python高性能编程与实战
Python合辑7-集合、列表与元组
Python合辑3-字符串用法深度总结