文章目录
- 1、机器学习的不同类型
- 1.1 监督学习
- 1.2 无监督学习
- 1.3 强化学习
- 2、Python开发环境
- 2.1 Python第三方库
- 2.2 Anaconda+Pycharm集成开发环境
1、机器学习的不同类型
机器学习属于人工智能的一个分支,专门用于对数据进行自动分析以发现相关规律,从而对未知数据进行预测。机器学习的研究方式一般是基于现有数据生成模型,在解决问题时,使用该模型进行判断、预测。
机器学习方法通常是从已知数据中去学习数据中蕴含的规律或者判断规则,借此获取新知识、新技能。已知数据的用途是学习素材,而学习的主要目的是推广,即把学到的规则应用到未来的新数据上,并做出新的判断或预测。
1.1 监督学习
监督学习是机器学习中最常见的一种学习方法,该方法是从现有的数据中获取一定的规则,该规则可以通过训练结果的反馈对学习过程进行调整,即起到一个监督作用。
例如,我们已知多种不同水果以及它们各自的颜色、重量、尺寸,有无核等特征信息。通过对该数据进行训练,掌握不同水果对应哪些具体的特征并将此对应关系记录下来,之后专门输入颜色、重量等特征信息,可以预测出该水果的种类。
在上述预测过程中,已知的水果颜色、重量、尺寸,有无核等特征信息为训练集,其种类为预测量的真实值,利用该真实值对学习过程不断进行调整,已知水果颜色、重量、尺寸,有无核等特征信息但不知其种类的数据集为测试数据,利用学习到的规则对其种类进行预测。
1.2 无监督学习
上述监督学习过程要求为每个样本提供预测量的真实值,这在有些应用场景是困难的,在这些应用场景中,只知道特征信息,不知道预测量的真实值,需要通过自我学习的方式,发现其中的规则,这种不提供监督信息的条件下进行学习的方法称为无监督学习。
例如,同一种水果在不同地区它们的颜色、重量、尺寸等信息均存在月底那个的差别,现已知所有水果的特征信息数据集,对该数据集进行训练,利用自我学习的方式发现不同地区水果之间的差别从而进一步将该数据集进行划分,同一地区的水果数据集划分为同一类。
1.3 强化学习
在机器学习的实际应用中,还有一种类型的问题就是利用学习到的模型来指导行动。
例如在下棋的过程中,需要关注的不是某次移动是否是正确的,而是关注这次移动能够给后期的博弈带来什么影响。为了解决这类问题,强化学习被提了出来。
强化学习的重点是需要获得一个策略去指导下一步的行动,也就是在下棋的过程中,指导在当下的场景中需要将棋子下在哪一个位置。与监督学习不同,该方法不需要一系列的输入和预测的样本,它主要在行动过程中进行学习。
2、Python开发环境
机器学习领域最为热门的开发环境就是Python。Python语言之所以应用如此广泛,为广大开发者所追捧,主要是因为它具备了很多优点:
- 学习难度低,Python语言简单易学,容易理解,只要具备基本的编程思想在学习Python时就没有什么难度。
- 开发效率高。Python语言可以让开发者以更少的代码、更短的时间来完成学习与工作,相对于Java等静态编译语言,其开发效率提高了若干倍。
- 资源丰富。Python语言的标准库功能强大,同时加上不用应用领域有着众多开源的第三方程序库,开发者可以直接拿来使用,无需自己从头设计。
- 可移植性好。Python是一门脚本语言,它不需要编译,它的执行只与解释器有关,同样的代码无需改动就可以移植到不同类型的操作系统上运行。
- 扩展性好。通过各类接口或者函数库可以方便地在Python程序中调用其他程序设计语言编写的代码,将它们整合一起来完成某项工作。
2.1 Python第三方库
Python的标准库包括math、random、datetime、os等,同时它也拥有强大的第三方资源库,为开发者提供了大量的开发资源。借助常用的机器学习库,Python可以解决多种问题,例如科学计算、数据分析、图像处理等。下面简单介绍几种常见的机器学习库:
- Numpy。Numpy是Numerical Python的简称,是高性能计算和数据分析的基础包,是Python的一个重要扩充库。Numpy支持高维度数组与矩阵运算,也针对数组运算提供了大量数学函数库,其运算效率极好,是大量机器学习框架的基础库。
- Pandas。Pandas是Python的一个数据分析包,是基于Numpy的一种工具,是为了解决数据分析任务而创建的。
- Matplotlib。Matplotlib是Python的一个基本2D绘图库,它提供了很多参数,可以通过参数控制样式、属性等,生成跨平台的出版质量级别的图形。
- Sklearn。Sklearn的全称是Scikit learn,它专门提供了机器学习的模块,该模块中包含了很多常见的机器学习算法,例如数据分类、聚类、回归、数据预处理等。
2.2 Anaconda+Pycharm集成开发环境
Anaconda是一个开源的Python发行版本,可以看作是增值版的Python,本身自带了python解释器而且还自带很多实用性的工具,其中包括大规模数据处理、预测分析和科学计算等包及支持模块,是数据分析和机器学习的有力工具。
anaconda官方下载https://www.anaconda.com/download/。官网下载比较慢,给大家推荐清华源的下载地址: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
进入后选择最下方的Anaconda3,3的意思就是Python3以上的版本,如果是anaconda2则就是python2,此处推荐下载Anaconda3 注:x86是32位的,而x86_64就是64位的。
下载完成后运行安装即可,具体的安装过程较为简单,主要在安装过程中设置好自定义安装路径即可。
安装完成后在开始菜单中就会有anaconda程序,启动Jupyter notebook就可以开始进行Python的编程和笔记的记录,Jupyter notebook是Web交互计算环境,Jupyter notebook文档(.ipynb)实际上是一个JSON文档,可以包含代码、文本、数字公式、图形和多媒体。使用Jupyter notebook可以让文档和代码相辅相成,具有优秀的可视化能力,使用户能够专注于数据分析过程。
Jupyter notebook程序:
Jupyter notebook主页面:
从右上角的New选项中选择Python3选项,可以看到如下的编程窗口:
代码上方的菜单栏提供了对网页中单元格的操作选项。
File:文件操作,如新建文件(New),打开文件(Open)和重命名文件(Rename)等。
Edit:编辑,包括常见的剪切(Cut Cells)、复制 (Copy Cells)和删除单元格 (Delete Cells)操作,以及上下移动单元格(Move Cell Up/ Move Cell Down)等操作。
Inser:添加单元格。
Cell:包括运行单元格中的代码(Run Cells)和全部运行(Run All)。
Kernel: 包括对内核的操作,如中断运行(Interrupt),以及重新启动内核(RestarD)。
在工具栏的下拉菜单中有四个选项,各按钮的功能依次如下。
Code: 当前单元格的内容是可运行的程序代码。
Markdown:当前单元格的内容是文本,例如代码以外的结论、注释等文字。
Raw NBConvert:当前单元格的内容为操作页面(Notebook)的命令。
Heading:当前单元格的内容为标题,用于使 Notebook 页面整洁。在最新版本中,Heading 已经被集成到 Markdown 选项,选择 Markdown 选项,然后在文字前添加“#“行号,该行文字内容就被视为标题。
如果要对Jupyter notebook文档(.ipynb)的存储路径进行修改,将其保存在其他路径之下,首先找到配置文件jupyter_notebook_config.py,其存储路径一般为C盘下用户路径之下。
用记事本打开,找到 #c.NotebookApp.notebook_dir = ‘’,去掉该行前面的“#”;在打算存放文件的位置先新建一个文件夹,然后将新的路径设置在单引号中,保存配置文件,之后在Jupyter notebook中创建的文档将会保存在该路径之下。
PyCharm是一种Python集成开发环境,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该集成环境提供了一些高级功能,以用于支持Django框架下的专业Web开发。
Pycharm官方下载地址:https://www.jetbrains.com/pycharm/download/#section=windows
注意:Pycharm 有社区版和专业版之分,专业版收费的(有30天试用),而社区版免费的。社区版功能缺失比较多,所以建议安装专业版。
Pycharm的安装过程较为简单,其中专业版需要激活,未激活则可以免费试用30天。
Pycharm的启动界面如下,这里是选择创建一个项目还是打开一个项目。
选择创建一个项目,选择好项目目录,然后就可以进入Pycharm了。
安装完Pycharm之后需要设置关联一下解释器才能正常工作,进入设置(Ctrl+Alt+S),在这里添加Anaconda安装目录下的Python.exe路径就可以了。
如果你有多个解释器,可以添加上去之后,在这里进行切换。
之后就可以在该项目中进行python文件的创建以及编辑了。