首页
技术小册
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.4.6 mglearn:Python机器学习可视化工具 在Python的机器学习生态系统中,可视化是一个至关重要的环节,它不仅帮助初学者直观理解复杂的算法和模型,也是数据科学家和机器学习工程师调优模型、洞察数据规律的重要手段。`mglearn`(Machine Learning with scikit-learn)是一个专为`scikit-learn`设计的可视化库,旨在通过简洁明了的图表和示例,加速对机器学习概念的理解和学习进程。本节将详细介绍`mglearn`的基本用法、特色功能以及如何利用它来提升你的Python机器学习实践。 #### 1.4.6.1 mglearn简介 `mglearn`由David Widger于2017年首次发布,作为`scikit-learn`的一个补充工具,它专注于创建高质量的、教育导向的机器学习可视化。`mglearn`提供了大量预制的示例数据和可视化函数,涵盖了从数据预处理、特征选择、模型训练到评估的全过程,使得即便是机器学习的新手也能快速上手并理解复杂的概念。 #### 1.4.6.2 安装mglearn 要使用`mglearn`,首先需要确保你的Python环境中已经安装了`scikit-learn`,因为`mglearn`是基于`scikit-learn`构建的。随后,你可以通过pip命令轻松安装`mglearn`: ```bash pip install mglearn ``` 安装完成后,你就可以在你的Python脚本或Jupyter Notebook中导入并使用它了。 #### 1.4.6.3 初探mglearn:数据可视化 `mglearn`提供了多种用于数据可视化的函数,这些函数能够直观地展示数据的分布、特征间的关系以及不同机器学习模型的性能。以下是一些基础示例: - **散点图与决策边界**:使用`mglearn.discrete_scatter`和`mglearn.plot_decision_regions`函数,可以方便地绘制二维特征空间中的样本点及其对应的决策边界。这对于理解分类算法的工作原理非常有帮助。 ```python from sklearn.datasets import make_classification from sklearn.linear_model import LogisticRegression from mglearn.plotting import plot_decision_regions import matplotlib.pyplot as plt X, y = make_classification(n_features=2, n_redundant=0, n_informative=2, random_state=1, n_clusters_per_class=1) clf = LogisticRegression(solver='liblinear', C=10000, random_state=42) clf.fit(X, y) plot_decision_regions(X, y, clf=clf, legend=2) plt.xlabel("Feature 1") plt.ylabel("Feature 2") plt.title("Logistic Regression Decision Boundary") plt.show() ``` - **特征重要性可视化**:对于基于树的模型(如随机森林、梯度提升树等),`mglearn`提供了可视化特征重要性的功能,帮助用户理解哪些特征对模型预测结果影响最大。 ```python from sklearn.datasets import load_breast_cancer from sklearn.ensemble import RandomForestClassifier from mglearn.plotting import plot_feature_importances X, y = load_breast_cancer(return_X_y=True) clf = RandomForestClassifier(random_state=0) clf.fit(X, y) plot_feature_importances(clf, X, y) plt.show() ``` #### 1.4.6.4 模型性能评估可视化 除了数据可视化外,`mglearn`还提供了评估机器学习模型性能的可视化工具。例如,通过绘制学习曲线,可以直观地展示随着训练样本量的增加,模型训练集和验证集上的性能变化情况,这对于识别过拟合或欠拟合非常有用。 ```python from sklearn.model_selection import train_test_split from sklearn.datasets import make_regression from sklearn.linear_model import LinearRegression from mglearn.plotting import plot_learning_curve X, y = make_regression(n_samples=1000, 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) clf = LinearRegression() plot_learning_curve(clf, X_train, y_train, ylim=(0.7, 1.01), cv=5, n_jobs=-1, train_sizes=np.linspace(0.1, 1.0, 5)) plt.show() ``` #### 1.4.6.5 自定义与扩展 尽管`mglearn`提供了大量预制的可视化函数,但有时候你可能需要根据自己的需求进行定制。`mglearn`的底层使用`matplotlib`进行绘图,因此你可以利用`matplotlib`的强大功能来扩展或修改`mglearn`的可视化效果。此外,`mglearn`的源代码也是完全开源的,你可以直接查看并学习其实现方式,甚至贡献自己的可视化函数。 #### 1.4.6.6 总结 `mglearn`是一个专为`scikit-learn`用户设计的强大可视化工具,它通过简洁明了的图表和示例,极大地降低了学习机器学习的门槛。无论你是机器学习的新手还是有一定经验的从业者,`mglearn`都能帮助你更深入地理解数据、模型和算法。通过本节的学习,你应该已经掌握了`mglearn`的基本用法和特色功能,并能够在自己的机器学习实践中灵活运用它来提升效率和理解力。 在未来的学习和工作中,不妨多尝试使用`mglearn`来可视化你的数据和模型,相信你会从中受益匪浅。同时,也欢迎你探索更多`mglearn`的高级功能,或者根据自己的需求定制可视化效果,让机器学习的旅程更加丰富多彩。
上一篇:
1.4.5 pandas
下一篇:
1.5 Python 2 与Python 3 的对比
该分类下的相关小册推荐:
Python爬虫入门与实战开发(上)
Python合辑6-字典专题
Python与办公-玩转Word
Python合辑14-面向对象编程案例(下)
Python编程轻松进阶(四)
Python编程轻松进阶(三)
Python神经网络入门与实践
机器学习算法原理与实战
Python合辑12-面向对象
Python3网络爬虫开发实战(上)
Python编程轻松进阶(五)
实战Python网络爬虫