Advertisement

Python系列之Python机器学习应用 北理工MOOC(一)

阅读量:

Python机器学习应用 北理工MOOC(一)

任务:将下面的文本进行同义改写以降低重复率

说明

任务要求

  • 二、python - sklearn库

    • 1.sklearn库
      • 1.1 Numpy库
      • 1.2 Scipy库
      • 1.3 matplotlib库
    1. 安装流程
  • scikit-learn库的标准基准数据集

    • 3.1 坎城房价数据集

        • 3.1.1 坎城房价数据集-属性说明
      • 3.1.2 坎城房价数据集-加载代码

      • 3.1.3 坎城房价数据集-实例加载

        • 3.2鸢尾花数据集
          • 3.2.1鸢尾花数据集-加载语句
      • 3.2.2鸢尾花数据集-加载示例

        • 3.3 手写数字数据集
          • 3.3.1手写数字数据集-加载语句
      • 3.3.2 手写数字数据集-加载示例

      • 4. sklearn库的基本功能

        • 4.1 分类任务
        • 4.2 回归任务
        • 4.3 聚类任务
        • 4.4 降维任务
    • 传送门


说明

本文内容整理自北京理工大学的Python机器学习应用课程PPT文件(慕课网),请确保转载时注明出处
授课教师包括礼欣与嵩天两位教授
可参考详细课程信息访问以下链接:中国大学MOOC Python机器学习课程链接
更多学习资源可访问:Python123 编程更简单(由相关课程组教师创建的一个辅助学习网站)


一、机器学习简介

1. 机器学习的目标

机器学习作为人工智能的主要技术手段,在研究领域主要集中于利用数据和经验来优化算法性能,并通过提升特定算法的技术能力来增强整体系统的表现。

  • 涵盖多个领域,在概率论和数理统计的基础上深入研究算法复杂度分析
    • 在多个方面得到了广泛应用:网络搜索系统,在垃圾邮件过滤方面取得了显著成效;个性化推荐技术在广告投放平台中发挥重要作用;信用评估体系为金融衍生品交易市场的风险控制提供了可靠依据;异常行为检测系统在医疗数据分析与诊断工具中发挥着重要作用

2. 机器学习的分类

机器学习一般分为下面几种类别:

  • 有指导的学习 (Supervised Learning)
    • 无指导的学习 (Unsupervised Learning)
    • 强化型学习 (Reinforcement Learning,增强型学习)
    • 基于部分标注的数据的学习 (Semi-supervised Learning)
    • 深度型机器学习 (Deep Learning)

3. Python Scikit-learn

scikit-learn ~Machine Leaning in Python
一组简洁且功能强大的工具集合
基于Python的NumPy、Sciency以及matplotlib库
开源且可重用

4. Scikit-learn 常用函数

~~ 应用(Applications) 算法(Algorithm)
分类(Classification) 异常检测,图像识别,等 KNN, SVM,etc.
聚类(Clustering) 图像分割,群体划分,等 K-Means,谱聚类, etc.
回归(Regression) 价格预测,趋势预测,等 线性回归,SVR,etc.
降维(Dimension Reduction) 可视化 PCA,NMF,etc.

5. 课程目标

  • 掌握基础性的机器学习理论与算法
  • 学会运用机器学习技术解决实际问题的能力
  • 熟悉调用sklearn库中常用机器学习算法的技巧与规律,并避免自行开发低效模型

6. 相关书籍及课程推荐

1.《机器学习》-周志华

[

《机器学习》-周志华

](http://t.cn/RXvpCKB)

昵称:西瓜书

2.《PRML》-Bishop

[

Pattern Recognition and Machine Learning

](http://t.cn/RXv0YVz)

民间评价:“早知此书,PhD早毕业2年”

3.《Machine Learning》-Andrew Ng

[

CS229: 机器学习

](http://cs229.stanford.edu/)

斯坦福大学:CS229-机器学习

4.《CS231n》- Fei-Fei Li

[ ![

该资源页面提供名为CS 231n的课程材料:《Deep Learning for Computer Vision》,其中包含了发布于 August 18, 2025 的相关图片资源:此处可能是一个图片示例,同时附带了斯坦福大学!课程链接:http://cs231n.stanford.edu/

斯坦福大学:CS231n-Deep Learning for Computer Vision

5.《Reinforcement Learning》-David Silver

[ ![

UCL's course on reinforcement learning: Delving into the theoretical foundations and practical applications of reinforcement learning, taught by David Silver.

伦敦大学学院RL课程

二、python - sklearn库

1.sklearn库

scikit-learn这个术语常被用来指代scikit-learn这个库,在Python生态系统中作为一个重要的第三方模块存在。
它提供了多种常见的机器学习算法和工具,在处理机器学习问题时,并非需要从头实现这些算法细节,只需通过调用该库提供的模块即可完成大部分工作流程。
它是基于Numpy、Scipy以及matplotlib等库构建而成的一个强大的数据分析和机器学习平台,在进行安装时需要确保这些依赖库已正确配置。

1.1 Numpy库

Numpy(Numerical Python的缩写)作为开源的Python科学计算库,在这一领域发挥着重要作用。
尽管提供了列表容器和数组模块,在Python中这些结构并不适用于数值计算的目的。
为了满足数值计算的需求,在这一领域就需要借助于Numpy库来创建常用的数据结构(如多维数组、矩阵等)并执行常见的科学运算(如矩阵运算)。

1.2 Scipy库

Scipy库是scikit-learn库的核心组件之一;它是一个以Numpy为基础构建的Python模块,在其中集成了许多数学算法和函数用于科学计算。其各个子模块各自具有独特的功能;例如数值积分、插值方法、优化算法以及信号处理技术等。

1.3 matplotlib库

matplotlib依赖于Numpy的一套Python工具包,它提供了丰富的数据可视化功能,主要用于生成多种统计数据图表,将大量复杂的数据转化为更直观易懂的图表形式

注意要先安装numpy再安装matplotlib库

2.安装顺序

依赖关系:

Numpy

Scipy

matplotlib

sklearn

建议安装顺序:Numpy库-> Scipy库->matplotlib库->sklearn库
安装命令:

复制代码
    pip install numpy
    pip install scipy
    pip install matplotlib
    pip install sklearn
    
    
    python

3.sklearn库中的标准数据集

sklearn库中的标准数据集:

数据集名称 调用方式 适用算法 数据规模
小数据集 波士顿房价数据集 load_boston() 回归 506×13
鸢尾花数据集 load_iris() 分类 150×4
糖尿病数据集 load_diabetes()> 回归 442×10
手写数字数据集 load_digits() 分类 5620×64
大数据集 Olivetti脸部图像数据集 fetch_olivetti_faces() 降维 400×64×64
新闻分类数据集 fetch_20newsgroups() 分类 -
带标签的人脸数据集 fetch_lfw_people() 分类;降维 -
路透社新闻语料数据集 fetch_rcv1() 分类 804414×47236

3.1波士顿房价数据集

波士顿房价的数据集包含了506组样本;每个样本涵盖了所在区域的详细信息;这些样本涉及的因素包括 Boston 的城镇犯罪率、空气中的 NOx 浓度(NOx 是化学术语),平均每套住宅拥有的卧室数量(房间数),以及地理位置与 Boston 中心的距离指数(加权距离),最后还包括每栋自住住房的价格;因此该 Boston 房价数据集非常适合用于回归分析研究

波士顿房价数据集部分房价数据
3.1.1波士顿房价数据集-属性描述
标号 属性
CRIM 城镇人均犯罪率。
ZN 住宅用地超过 25000 sq.ft. 的比例。
INDUS 城镇非零售商用土地的比例。
CHAS 查理斯河空变量(如果边界是河流,则为1;否则为0)
NOX 一氧化氮浓度。
RM 住宅平均房间数。
AGE 1940 年之前建成的自用房屋比例。
DIS 到波士顿五个中心区域的加权距离。
RAD 辐射性公路的接近指数。
TAX 每 10000 美元的全值财产税率。
PTRATIO 城镇师生比例。
B 1000(Bk-0.63)2,其中 Bk 指代城镇中黑人的比例。
LSTAT 人口中地位低下者的比例。
MEDV 自住房的平均房价,以千美元计。
3.1.2波士顿房价数据集-加载语句

使用 sklearn.datasets.load_boston 即可加载相关数据集

关键参数涉及return_X_y这一项,它用于指示是否获取目标(如价格)。该参数设置为False,默认情况下不返回数据;相反地,在这种情况下系统会直接输出属性。

3.1.3波士顿房价数据集-加载示例

示例1:

复制代码
    >>> from sklearn.datasets import load_boston
    >>> boston = load_boston()
    >>> print(boston.data.shape)
    (506, 13)
    
    
    python

示例2:

复制代码
    from sklearn.datasets import load_boston
    >>> data, target = load_boston(return_X_y=True)
    >>> print(data.shape)
    (506, 13)
    >>> print(target.shape)
    (506)
    
    
    python

3.2鸢尾花数据集

该鸢尾花的数据集收集了鸢尾花的各种测量数据及其分类信息。这些测量数据具体包括萼片的长度与宽度以及花瓣的长度与宽度。这些分类信息分为三个类别:Iris Setosa、Iris Versicolour和Iris Virginica。该数据集常用于多分类问题的研究。

鸢尾花数据集部分数据示例
3.2.1鸢尾花数据集-加载语句

使用 sklearn.datasets.load_iris 即可加载相关数据集

关键参数如下:
return_X_y 表示当设置为 True 时会返回 data 和 target 变量;否则,默认情况下会返回包含 data 和 target 键值对的字典。

3.2.2鸢尾花数据集-加载示例

示例:

复制代码
    >>> from sklearn.datasets import load_iris
    >>> iris = load_iris()
    >>> print(iris.data.shape)
    (150, 4)
    >>> print(iris.target.shape)
    (150, )
    >>> list(iris.target_names)
    ['setosa', 'versicolor', 'virginica']
    
    
    python

3.3 手写数字数据集

手写的0-9数字样本共有1797个,并且每个样本都由一个8×8像素组成的二维数组构成。其中数值范围为0到16,并且这些数值表示该像素点的颜色明暗程度。

手写数字数据集示例
3.3.1手写数字数据集-加载语句

使用 sklearn.datasets.load_digits 即可加载相关数据集

重要参数为:

  • return_X_y:该布尔值决定返回格式:若为True,则返回(data, target)元组;否则,默认返回包含所有数据的字典。
  • n_class:表示分类的数量;例如n_class=5时,则提供0至4索引的数据样本。
3.3.2 手写数字数据集-加载示例

示例1:

复制代码
    >>> from sklearn.datasets import load_digits
    >>> digits = load_digits()
    >>> print(digits.data.shape)
    (1797, 64)
    >>> print(digits.target.shape)
    (1797, )
    >>> print(digits.images.shape)
    (1797, 8, 8)
    >>> import matplotlib.pyplot as plt
    >>> plt.matshow(digits.images[0])
    >>> plt.show()
    
    
    python
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-18/KwbDsgqUnWzdNPu4GtFJYcBHiC2o.png)

4. sklearn库的基本功能

sklearn库划分为六个主要部分,在实现分类问题处理、回归问题建模、聚类问题识别、降维问题解决以及模型优化的过程中发挥了重要作用。

4.1 分类任务

分类模型 加载模块
最近邻算法 neighbors.NearestNeighbors
支持向量机 svm.SVC
朴素贝叶斯 naive_bayes.GaussianNB
决策树 tree.DecisionTreeClassifier
集成方法 ensemble.BaggingClassifier
神经网络 neural_network.MLPClassifier

4.2 回归任务

回归模型 加载模块
岭回归 linear_model.Ridge
Lasso回归 linear_model.Lasso
弹性网络 linear_model.ElasticNet
最小角回归 linear_model.Lars
贝叶斯回归 linear_model.BayesianRidge
逻辑回归 linear_model.LogisticRegression
多项式回归 preprocessing. PolynomialFeatures

4.3 聚类任务

聚类方法 加载模块
K-means cluster.KMeans
AP聚类 cluster.AffinityPropagation
均值漂移 cluster.MeanShift
层次聚类 cluster.AgglomerativeClustering
DBSCAN cluster.DBSCAN
BIRCH cluster.Birch
谱聚类 cluster.SpectralClustering

4.4 降维任务

降维方法 加载模块
主成分分析 decomposition.PCA
截断SVD和LSA decomposition.TruncatedSVD
字典学习 decomposition.SparseCoder
因子分析 decomposition.FactorAnalysis
独立成分分析 decomposition.FastICA
非负矩阵分解 decomposition.NMF
LDA decomposition.LatentDirichletAllocation

传送门

Python机器学习应用 北理工MOOC(二)

全部评论 (0)

还没有任何评论哟~