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

Posted 寂灭如一

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python系列之Python机器学习应用 北理工MOOC相关的知识,希望对你有一定的参考价值。

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


说明

本文内容整理自中国大学MOOC “北京理工大学Python系列课程之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,SciPy和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.《机器学习》-周志华

昵称:西瓜书

2.《PRML》-Bishop

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

3.《Machine Learning》-Andrew Ng

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

4.《CS231n》- Fei-Fei Li

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

5.《Reinforcement Learning》-David Silver

伦敦大学学院RL课程

二、python - sklearn库

1.sklearn库

sklearn是scikit-learn的简称,是一个基于Python的第三方模块。
sklearn库集成了一些常用的机器学习方法,在进行机器学习任务时,并不需要实现算法,只需要简单的调用sklearn库中提供的模块就能完成大多数的机器学习任务。
sklearn库是在Numpy、Scipy和matplotlib的基础上开发而成的,因此在介绍sklearn的安装前,需要先安装这些依赖库。

1.1 Numpy库

Numpy(Numerical Python的缩写)是一个开源的Python科学计算库。
在Python中虽然提供了list容器和array模块,但这些结构并不适合于进行数值计算,因此需要借助于Numpy库创建常用的数据结构(如:多维数组,矩阵等)以及进
行常用的科学计算(如:矩阵运算)。

1.2 Scipy库

Scipy库是sklearn库的基础,它是基于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

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组数据,每条数据包含房屋以及房屋周围的详细信息。其中包括城镇犯罪率、一氧化氮浓度、住宅平均房间数、到中心区域的加权距离以及自住房平均房价等。因此,波士顿房价数据集能够应用到回归问题上。

3.1.1波士顿房价数据集-属性描述

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

3.1.2波士顿房价数据集-加载语句

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

重要参数为:
return_X_y:表示是否返回 target(即价格),默认为False,只返回data(即属性)。

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

示例1:

>>> from sklearn.datasets import load_boston
>>> boston = load_boston()
>>> print(boston.data.shape)
(506, 13)

示例2:

from sklearn.datasets import load_boston
>>> data, target = load_boston(return_X_y=True)
>>> print(data.shape)
(506, 13)
>>> print(target.shape)
(506)

3.2鸢尾花数据集

鸢尾花数据集采集的是鸢尾花的测量数据以及其所属的类别。
测量数据包括:萼片长度、萼片宽度、花瓣长度、花瓣宽度。
类别共分为三类:Iris Setosa,Iris Versicolour,Iris Virginica。
该数据集可用于多分类问题。

3.2.1鸢尾花数据集-加载语句

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

重要参数为:
return_X_y:若为True,则以(data, target)形式返回数据;默认为False,表示以字典形式返回数据全部信息(包括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']

3.3 手写数字数据集

手写数字数据集包括1797个0-9的手写数字数据,每个数字由8×8大小的矩阵构成,矩阵中值的范围是0-16,代表颜色的深度。

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

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

重要参数为:
return_X_y:若为True,则以(data, target)形式返回数据;默认为False,表示以字典形式返回数据全部信息(包括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()

4. sklearn库的基本功能

sklearn库的共分为6大部分,分别用于完成分类任务、回归任务、聚类任务、降维任务、模型选择以及数据的预处理。

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-meanscluster.KMeans
AP聚类cluster.AffinityPropagation
均值漂移cluster.MeanShift
层次聚类cluster.AgglomerativeClustering
DBSCANcluster.DBSCAN
BIRCHcluster.Birch
谱聚类cluster.SpectralClustering

4.4 降维任务

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

传送门

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

以上是关于Python系列之Python机器学习应用 北理工MOOC的主要内容,如果未能解决你的问题,请参考以下文章

硕士生一字不差抄袭顶会论文投稿,北理工:严重学术不端,留校察看

KDD 2021最佳论文等奖项出炉,斯坦福获奖,北理工上榜

KDD 2021最佳论文等奖项出炉,斯坦福获奖,北理工上榜

Python机器学习(十八)决策树之系列一ID3原理与代码实现

中国mooc北京理工大学机器学习第一周

北理工机器人队RM视觉组ubuntu必备软件安装指南