Python机器学习(一):绪论
目录:
一、什么是机器学习?
生活中,人们常常会基于生活经验,来判断未知的事物,而类似地
- 机器学习是基于过去,预测未来
- 机器学习是让机器具备寻找一个函数的能力,根据该函数 f(x),输入 x,得到想要的结果 y,并将该函数运用在各种领域
- 如图所示,输入一段音频信号,得到翻译结果;输入一张图片,得到图片内容;输入一种场景,得到最优解…
(图摘自李宏毅机器学习课程)
机器学习的概念建立在人工智能之上,人类传统解决问题的方法就是找到一种函数/流程,根据函数/流程来对问题进行求解,但现实中有许多人类无法解决的问题(有些问题很难建立一种标准的函数/流程),于是,我们通过机器来寻找这种函数
二、机器学习算法分类
1.监督学习(Supervised Learning)
监督学习就是从带标签的训练数据中学习得到模型,并用模型对新样本的标签进行预测,它包含以下模型:
-
分类(Classification)
标签为有限集合,即标签的类别是有限的或离散的
应用:垃圾邮件检测;图像识别;从症状到疾病的医学诊断 -
回归(Regression)
标签为实数值,是连续的数值
应用:预测股票价格;自动导航中的加速度与方向盘角度
2.无监督学习(Unsupervised Learning)
无监督学习就是对无标签的训练数据进行分析,发现其结构或分布规律,它包含以下模型:
-
聚类(Clustering)
将一批无标签样本划分成多个类,保证同一类之间尽量相似
应用:自然语言处理(NLP)的文本分析 -
数据降维(Dimensionality Deduction)
将n维空间中的向量映射到更低维的m维空间中
应用:数据可视化;图像压缩
3.强化学习(Reinforcement Learning)
智能体根据当前状态从与环境的交互中学习获得策略,产生行动获得奖励
- 目标:让智能体在特定环境中能采取回报最大化的行为
应用:自动驾驶
4.其他算法
-
模型选择(Model Selection)
参数和模型的比较、验证和选择
算法:网格搜索;交叉验证;度量…
应用:通过参数调优提高精度 -
预处理(Preprocessing)
特征提取和归一化
算法:预处理,特征提取…
应用:转换输入数据,如文本,用于机器学习算法
三、软件环境
1.软件平台
我们将使用 Anaconda 进行包管理,在 Jupyter Lab 上进行代码编写
2.所需的Python库
#导入所需要的库
import pandas as pd
import numpy as np
import sklearn
import matplotlib as mlp
import scipy
import graphviz
其中,前五个库是 Anaconda 自带的,而 graphviz 需要安装,这个库可以帮助我们绘制决策树
在这之前,为了加快下载的速度,我们需要为 Anaconda 换源,更换为国内的镜像源
在 cmd 窗口中输入以下指令即可换源成功,这里更换为清华大学镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
接着,还要修改一下生成的.condarc文件,防止更新再次使用默认的国外源,输入以下指令:
conda config --show-sources
出来的第一行就是配置文件的位置
使用记事本打开该配置文件,将 - defaults
删掉即可
为了使 Anaconda 保持较新的版本,我们需要更新一下 Anaconda,打开 Anaconda Prompt 终端
依次执行下面命令(这里是对 base 虚拟环境进行更新):
conda update conda
conda update anaconda
使用 conda 安装 graphviz 库
conda install graphviz
安装好后,输入以下命令查看 graphviz 的版本
dot -version
显示以下信息即下载成功
此时, Jupyter Lab 还不能导入 graphviz,还需要用 pip 安装 graphviz:
pip install graphviz
最后,尝试在 Jupyter Lab 上导入 graphviz,并查看版本