说明:
作业的所有代码都要基于Python3。
学习大纲:https://blog.csdn.net/qq_34243930/article/details/84669684
(所有计划均在学习大纲里)
01机器学习基础(第一周)
1.1 Python 基础知识,Numpy、pandas、Matplotlib 等库的简介
1.2 开发环境的搭建:Python3 + Anaconda + Jupyter Notebook
1.3 Jupyter Notebook 使用简介
第一节学习内容
学习时间: 12/2
任务1题目: 观看机器学习实战绪论视频+天池o2o比赛完全流程解析PPT
任务详解: 第一次视频课主要以《机器学习实战》第一章为基础,主要介绍机器学习的基本概念、算法类型、推荐学习路线和一些预备知识,包括Numpy、Pandas、Matplotlib 等Python 基本库。还有天池o2o比赛完全流程解析。
作业: 注册天池账号,报名参加比赛。提交结果,查看成绩。(结果 submit1.csv文件提供,只需按照直播视频讲述的方法提交查看成绩就好。submit1.csv 文件已放置在上)
第二节学习内容
学习时间: 12/3
**任务1题目:**配置开发环境,熟悉 Jupyter Notebook
**任务详解:**以Python3为开发语言,安装软件Anaconda。Anaconda自带Jupyter Notebook,熟悉Jupyter Notebook的基本用法。
参考资料:
[Jupyter Notebook入门教程(上)]
( https://mp.weixin.qq.com/s/O2nTGOtqGR-V33-YJgPgJQ)
[Jupyter Notebook入门教程(下)]
( https://mp.weixin.qq.com/s/AwSzkjlpwvdUzh6CmHq6AQ)
**作业:**使用Jupyter Nootbook,对Numpy、Pandas、Matplotlib各写一个小的demo程序。要求是解释性说明和代码相结合的形式。
第一节学习内容笔记
视频课:机器学习实战-绪论
-
机器学习的基本概念
什么是机器学习?
什么时候机器可以学习?
机器如何学习?
-
机器学习的算法类型
按输入空间划分:
—>具体的特征/concrete features
—>本身的特征/raw features(需要特征转换)
—>抽象的特征/abstra features(困难,需要特征转换、提取)
按输出空间划分:
—分类问题(输出是离散的)
------>【二元分类(例如垃圾邮件判别、答案正确率估计、疾病诊断)】
------>【多元分类(例如手写字识别、图片内容识别)】
—>回归问题(输出是连续的)
—>结构化学习
按不同协议分:
—>批学习/Batch Learning(获得的训练数据是一批一批的,大量数据)
—>在线学习/Online Learning(实时、动态)
—>主动学习/Active Learning(让机器具备主动问问题的能力,比如手写字识别,机器自己生成一个数字,机器自己不确定是什么,主动发问。优点:在获得样本的标签比较困难的时候,可以节约时间、成本,只对于一些重要的标签提出要求)
按样本标签划分:
—>监督式学习(样本有标签)
—>半监督式学习
—>非监督式学习(样本无标签),如聚类
-
机器学习路线
吴恩达,Coursera,machine learning课程(不是CS229,入门非常好)
台湾大学 林轩田的《机器学习基石》(讲解透彻,由浅入深)
台湾大学 林轩田的《机器学习技法》(干货,有概括,知识体系完善)
周志华《机器学习》
李航《统计学方法》
吴恩达,deep learning.ai -
选择 《机器学习实战》的原因
-
一些预备知识
线性代数
概率论
Python
PDF:天池o2o比赛完全流程解析
01-注册天池账号
—>登录天池官网:https://tianchi.aliyun.com/learn/index.htm?spm=5176.100067.5610723.11.3a3c1db7qlDAwu
—>注册账号(中国站)
—>报名参赛:天池首页-天池大赛-入门赛-天池新人实战赛o2o优惠券使用预测-报名
02-下载数据集
03-离线/在线构建机器学习模型
在线学习:
离线学习:
04-提交答案
(结果 submit1.csv文件提供,只需按照讲述的方法提交查看成绩就好。submit1.csv 文件已放置在上)
提交结果:
05-查看成绩
第二节学习内容笔记
jupyter notebook可以一边运行代码,一边写笔记。是一个进行文学编程的交互式笔记本。在这个笔记本里,可以写代码,可以写文档,可以有图表展示。以前,我们在编辑器中写代码,然后在word中写文档来说明项目。通过Jupyter Notebook,我们可以集编程和写作于一体,按照自己的思维逻辑开发程序。
Jupyter notebook(又称IPython notebook)是一个交互式的笔记本,支持运行超过40种编程语言。本文中,我们将介绍Jupyter notebook的主要特点,了解为什么它能成为人们创造优美的可交互式文档和教育资源的一个强大工具。
在使用这个notebook之前,你需要先进行安装。你可以在Jupyter website上找到完整的安装步骤。这里,推荐使用Anaconda,因为Anaconda自带了Numpy、Scipy、Matplotlib等多种python开发包和Jupyter notebook。
1、如何安装Anaconda
https://blog.csdn.net/qq_34243930/article/details/82467378
2、配置jupyter notebook
步骤一:运行anaconda prompt
一般菜单栏里会有(例如win8):
如果找不到,按以下操作:
win+R输入cmd进入命令行,跳转到Anaconda的安装目录,然后执行(可直接复制)python .\Lib\_nsis.py mkmenus
步骤二:启动Jupyter Notebook
在Anaconda Prompt输入jupyter notebook可以启动Jupyter Notebook:
这里会自动打开一个网页:http://localhost:8888/tree
你会发现默认的文件夹路径是C:\,我们可能需要在其他目录下写代码,所以要
3. 修改默认文件夹路径:
打开 cmd 输入命令 jupyter notebook --generate-config
可以看到生成文件的路径,去找这个文件:
这个就是生成的配置文件,打开后找到下图这里删除前面的’#‘ 然后填写自己的路径,保存。
4、重新启动Jupyter Notebook
为了查看是否是我修改后的目录,我在目录里新建了文件夹:
再启动Jupyter Notebook就是你改后的目录!
3、Jupyter Notebook 的快捷键:
https://blog.csdn.net/qq_34243930/article/details/84946874
4、使用Jupyter Notebook
创建一个新的notebook,只需鼠标左击New,在下拉选项中选择一个你想启动的notebook类型即可。
遇到一个错误:
新建时点 Python3 出现错误提示如下 :Creating Notebook Failed
An error occurred while creating a new notebook.
error
解决方法:重启一下软件 换从cmd进入 或者prompt进入
成功了:
notebook由以下部分组成:
notebook名字
主工具栏,包括保存notebook、导出、重载、重启内核等
快捷键
notebook主要部分,notebook编辑区
花时间熟悉菜单,了解其中的选项。如果你想了解一些特殊模块、notebook或者一些库,可以点击菜单栏右侧的Help按钮。
在主区域(编辑区),你可以看到一个个单元(cell)。每个notebook都由许多cell组成,每个cell有不同的功能。
首先,第一个cell如下图所示,以“In[ ]”开头表示这是一个代码单元。在代码单元里,你可以输入任何代码并执行。例如,键盘输入1+2,然后按“Shift+Enter”,代码将被运行,并显示结果。同时,切换到新的cell中。
绿色的轮廓线所在的cell,就是当前工作单元。接下来,在第二个cell中,敲击下列代码:
跟之前一样,代码被执行,结果也正确显示处理。但到这次没有Out[2],是因为打印了结果,却没有返回值。
notebook一个非常有趣的特性是:可以返回之前的cell,修改并重新运行,以此来更新整个文档。
例如,回到第一个cell中,将输入1+2改成2+3,重新按“Shift+Enter”运行该单元,结果被立即更新成5。
当你想使用不同参数调试方程又不想运行整个脚本的时候,这条特性非常有用。然而,你也可以通过菜单栏Cell->Run all来重新运行整个notebook。
现在我们已经知道了如何输入代码,那为什么不尝试获得一个更加优美,解释性更强的notebook呢?这可以通过使用其他类型的cells来获得,例如Header和Markdown单元。
首先,我们在notebook的顶部添加一个标题。
做法是,选择第一个cell,点击Insert->Insert cell above,则在这个cell上面会添加一个新的单元。
但是这个新cell默认是code类型,我们可以通过cell type菜单选择Markdown替换之前的code类型,这样就可以添加标题了。
这个cell以#开头,表示一级标题。如果你想列子标题的话,参考下面的方法:
#First level title
##Second level title
###Third level title
标题写在#后面,然后重新运行cell,你会发现该单元添加了标题
注意,需要运行的!按“Shift+Enter”运行该单元
最终结果:
可以将新建的notebook重命名,点击File->Rename,然后输入新的名称即可。这样更改后的名字就会出现在窗口的左上角,位于Jupyter图标的右侧。
单元操作
删除一个cell,先选中cell,点击Edit->Delete cell
移动一个cell的位置,点击Edit-> Move cell [up | down]
剪切、粘贴cell,点击Edit->Cut Cell then Edit -> Paste Cell …,选择需要的粘贴形式。
如果有许多cells,而你只想执行一次,或者你想一次性执行大量代码,你就可以合并多个cells,点击Edit->Merge cell [above|below]
Markdown单元高级用法
markdown单元类型,即便它的类型是markdown,它同时也支持HTML代码。你可以在你的cell中创建更高级的样式,比如添加图片等等。举个例子来说,如果你想在notebook中添加Jupyter的图标,尺寸为100x100,并且放置在cell左侧,可以这样编写:
<img src="http://blog.jupyter.org/content/images/2015/02/jupyter-sq-text.png"
style="width:100px;height:100px;float:left">
除此之外,markdown还支持LaTex语法。你可以在markdown cell中按照LaTex语法规则写下方程式,然后直接运行,就可以看到结果。例如运行下面方程式:
$$\int_0^{+\infty} x^2dx$$
运行后就得到了LaTex方程式:
导出功能
notebook另一个强大的功能就是导出功能。你可以把你的notebook(例如是个图解代码课程)导出为如下多种形式:
HTM、Markdown、ReST、PDF(Through LaTex)、Raw Python
如果导出成PDF格式,你甚至可以不使用LaTex就创建了一个漂亮的文档。或者,你可以将你的notebook保存为HTML格式,发布到个人网站上。你还可以导出成ReST格式,作为软件库的文档。
在jupyter notebook中,选择File->Download as,直接选择需要转换的格式就可以了。需要注意的是,转换为pdf格式之前,同样要保证已经安装了xelatex。
Matplotlib集成
Matplotlib是用来画图的Python库。与Jupyter notebook结合使用时,效果更好。
为了在Jupyter notebook中使用matplotlib,你需要告诉Jupyter获取所有matplotlib生成的图形,并把它们全部嵌入到notebook中。为此,只需输入以下命令:
%matplotlib inline
运行此博客里v_3.0代码:https://blog.csdn.net/qq_34243930/article/details/84557429#t6
非本地内核
Jupyter notebook非常容易从本地电脑上启动,也允许多个人通过网络连接到同一个Jupyter实例。你是否注意到,在上一部分的教程中,启动Jupyter时出现了下面这条语句:
IPython Notebook运行在:http://localhost:8888/
这条语句表示你的notebook是本地运行,可以在浏览器中输入地址:http://localhost:8888/
打开你的notebook。通过修改配置,可以让notebook面向公开访问。这样,任何人如果知道这个notebook地址,就通过浏览器可以远程访问并修改notebook。
使用从始至终需要注意,不能关闭Jupyter Notebook窗口,否则会失去连接。