Python系列之Python机器学习应用 北理工MOOC(一)
Python机器学习应用 北理工MOOC(一)
任务:将下面的文本进行同义改写以降低重复率
说明
一
任务要求
-
二、python - sklearn库
-
- 1.sklearn库
-
- 1.1 Numpy库
- 1.2 Scipy库
- 1.3 matplotlib库
-
- 安装流程
-
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.《机器学习》-周志华
[

昵称:西瓜书
2.《PRML》-Bishop
[

民间评价:“早知此书,PhD早毕业2年”
3.《Machine Learning》-Andrew Ng
[

斯坦福大学:CS229-机器学习
4.《CS231n》- Fei-Fei Li
[ 
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

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 |
