1.机器学习简单了解
刚开始接触人工智能的时候,大家肯定看到了一些名词:人工智能、深度学习、机器学习...what??哈哈,先来简单的给大家解释一下这三者的区别,再来谈论其他的问题。说的简单一点,机器学习是人工智能的一个实现途径,深度学习则是机器学习的一个方法发展而来。
人工智能是一个庞大的系统,它有很多的分支,比如计算机视觉、语音识别、文本挖掘、机器翻译、机器人这些。这些在生活中大家也经常使用,比如面部识别、谷歌翻译、小机器人等等这些。它们都是不同的分支,但同属于人工智能。
人工智能必备三要素:数据、算法、计算力。这也就是为什么人工智能如此火爆,但是过了许久,人才缺口仍然如此巨大,数学能力是一道难以逾越的门槛。
那么我们先从机器学习入手,开始了解人工智能吧。机器学习是从数据中自动分析获得模型,并利用模型对未知数据进行预测。它的工作流程是:获取数据、数据基本处理、特征工程、机器学习(模型训练)、模型评估。
特征工程:使用专业背等知识,处理数据,使得数据更容易被机器识别。
2.机器学习算法
2.1 监督学习
输入数据是由输入特征值和目标值所组成。当输出的是一个连续的值的时候,我们称之为回归;输出的是有限个离散值的时候,称之为分类。
2.2 无监督学习
输入数据是由输入特征值所组成。数据只有特征值,无目标值。
2.3 半监督学习
数据,部分是特征值+目标值,部分是只有特征值。
2.4 强化学习
数据,是一个动态的过程,每一次的输出,并不能立刻知道结果的正误。
3.Jupyter Notebook使用(Linux)
1.打开界面(输入完命令会直接启动浏览器):
jupyter notebook
2.和vim类似,jupyter分为编辑模式和命令模式。
3.命令模式下,回车或者鼠标双击cell进入编辑模式。
cell:一对In Out会话被视作一个代码单元,称为cell
4.编辑模式下按esc键退出编辑,进入命令模式。
5.常用的快捷键(命令模式下):
y:cell切换到Code模式,也就是可以写代码了。 m:cell切换到Markdown模式,可以编写Markdown笔记。 a:在当前cell的上面添加cell b:在当前cell的下面添加cell dd:删除当前cell
6.其他快捷键:
Shift+Enter,执行本单元代码,并跳转到下一单元 Ctrl+Enter,执行本单元代码,留在本单元
4.Matplotib的简单使用
4.1 Matplotlib三层结构
4.1.1 容器层
Canvas
:画板--底层已经包含,不需要关注
figure
:画布--在每次使用,都需要实例化
axes
:坐标系--申明图像的绘制区域
4.1.2 辅助显示层
声明需要绘制的x轴,y轴,标题...
4.1.3 图像层
声明需要绘制哪些图像(plot,scatter, bar...)
plot:折线图
hist:直方图
pie:饼图
bar:柱状图
4.2基本流程
import matplotlib.pyplot as plt # 1.创建画布 plt.figure(figsize=(20,8), dpi=100) # 2.绘制图像 x = [1,2,3] y = [4,5,6] plt.plot(x, y) . # 保存图片到指定路径 . plt.savefig("test.png") # 3.显示图像 plt.show()
figsize:指定图的长宽
dpi:图像的清晰度
注意:保存图片操作一定放到show之前。否则会保存一个空白图片。
4.3 一些常用功能
1.添加x,y刻度
plt.xticks() plt.yticks()
注意:里面传入的第一个值,必须是数字,不能是字符串,如果要显示字符串,需要进行替换
2.添加网格显示
plt.grid(True, linestyle="**", alpha=0.5)
True -- 是否显示网格
linestyle -- 线的形状
alpha -- 线的透明度
3.一个图像,多次plot:直接进行数据传输,使用。
4.显示图例
plt.legend(loc="best")
loc -- 图例显示位置
5.多个坐标系图形绘制
plt.subplots(nrows=, ncols=)
nrows -- 几行
ncols -- 几列
4.4 案例:显示温度变化状况
# 需求:画出某城市11点到12点1小时内每分钟的温度变化折线图,温度范围在15度~18度 # 初次完成 # 0.构造数据 x = range(60) y = [random.uniform(15, 18) for i in x] # 1.创建画布 plt.figure(figsize=(20, 8)) # 2.图像绘制 plt.plot(x, y) # 2.1 添加x,y轴刻度 x_ticks_label = ["11点{}分".format(i) for i in x] y_ticks = range(40) plt.xticks(x[::5], x_ticks_label[::5], fontsize=20) plt.yticks(y_ticks[::5]) # 2.2 添加网格显示 plt.grid(True, linestyle="--", alpha=0.5) # 2.3 添加x,y轴描述和标题 plt.xlabel("时间") plt.ylabel("温度") plt.title("中午11点--12点温度变化图", fontsize=25) # 3.显示 plt.show()
4.5 案例:多个坐标系显示-plt.subplots(面向对象的画图方法)
# 需求:画出某城市11点到12点1小时内每分钟的温度变化折线图,温度范围在15度~18度 # 多个axes # 0.构造数据 x = range(60) y_shanghai = [random.uniform(15, 18) for i in x] y_beijing = [random.uniform(1, 14) for i in x] # 1.创建画布 # plt.figure(figsize=(20, 8)) fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(20, 8), dpi=100) # 2.图像绘制 # plt.plot(x, y_shanghai, label="上海") # plt.plot(x, y_beijing, label="北京", linestyle="--", color="r") axes[0].plot(x, y_shanghai, label="上海") axes[1].plot(x, y_beijing, label="北京", linestyle="--", color="r") # 2.1 添加x,y轴刻度 x_ticks_label = ["11点{}分".format(i) for i in x] y_ticks = range(40) # plt.xticks(x[::5], x_ticks_label[::5]) # plt.yticks(y_ticks[::5]) axes[0].set_xticks(x[::5], x_ticks_label[::5]) axes[0].set_yticks(y_ticks[::5]) axes[0].set_xticklabels(x_ticks_label[::8]) axes[1].set_xticks(x[::5], x_ticks_label[::5]) axes[1].set_yticks(y_ticks[::5]) axes[1].set_xticklabels(x_ticks_label[::8]) # 2.2 添加网格显示 # plt.grid(True, linestyle="--", alpha=0.5) axes[0].grid(True, linestyle="--", alpha=0.5) axes[1].grid(True, linestyle="--", alpha=0.5) # 2.3 添加x,y轴描述和标题 # plt.xlabel("时间") # plt.ylabel("温度") # plt.title("中午11点--12点温度变化图", fontsize=25) axes[0].set_xlabel("时间") axes[0].set_ylabel("温度") axes[0].set_title("上海中午11点--12点温度变化图", fontsize=25) axes[1].set_xlabel("时间") axes[1].set_ylabel("温度") axes[1].set_title("北京中午11点--12点温度变化图", fontsize=25) # 2.4 显示图例 # plt.legend(loc=0) axes[0].legend(loc=0) axes[1].legend(loc=0) # 3.显示 plt.show()
日常问题解决
1 pip下载包速度慢解决
Linux中大家使用pip命令进行安装时,会发现下载速度奇慢!!按照网上的教程更换国内的源,发现还是不行。后来发现了原因,大家从设置里面修改后的源是不适用于pip安装的。如果想pip安装包的时候下载速度快一点,按照下面的命令进行修改即可:
1.先在主目录下创建 .pip
目录,然后在目录中创建 pip.conf
文件。
mkdir ~/.pip vim ~/.pip/pip.conf
2.在打开的文件中编写如下的内容:
[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple
将pip的源更换为清华的镜像源。
3.保存退出即可。
2 GPU上适合运行计算密集型的程序和易于并行的程序。
CPU是中央处理器,内部结构十分复杂,有复杂的控制逻辑和诸多优化电路,计算能力只是CPU的一小部分功能。而GPU便是专门为计算而生了,GPU加速计算可以将应用程序计算密集部分的工作转到GPU上,CPU就可以空出更多时间处理其他程序。这样一来,应用程序的运行速度就快的多了。CPU适合IO密集型,而GPU适合计算密集型。平时经常玩游戏的小伙伴肯定深有感触,游戏对GPU要求很高。
3 创建虚拟环境
创建python3的虚拟环境:
mkvirtualenv 虚拟环境名 -p python3
删除虚拟环境:
rmvirtualenv 虚拟环境名
进入虚拟环境:
workon 虚拟环境名
查看所有虚拟环境:
workon
退出虚拟环境:
deactivate