Merge branch 'master' of https://github.com/camera-2018/hdu-cs-wiki
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# 基本概念介绍
|
||||
前面已经介绍过,强化学习难入坑的的原因之一就在于概念繁多。下面将进行基本概念的介绍,本章节最好能够理解,不理解也没有关系,但是建议作为参考章节常看常新。后续章节不理解某个概念时,便回来看看,相信一定能够做到常看常新、从而加深你对于概念的理解。下面将进行三个部分的介绍,分别为强化学习的基本过程、强化学习的基本要素、强化学习的目标。
|
||||
前面已经介绍过,强化学习难入坑的的原因之一就在于概念繁多。下面将进行基本概念的介绍,本章节最好能够理解,不理解也没有关系,但是建议作为参考章节常看常新。后续章节不理解某个概念时,便回来看看,相信一定能够做到常看常新、从而加深你对于概念的理解。下面将进行四个部分的介绍,分别为强化学习的基本过程、强化学习的基本组成内容、强化学习的基本概念以及强化学习的目标。
|
||||
|
||||
|
||||
## 强化学习的基本过程
|
||||
@@ -7,7 +7,7 @@
|
||||

|
||||
正是在这个与环境的交互过程中,智能体不断得到反馈,目标就是尽可能地让环境反馈的奖励足够大。
|
||||
|
||||
## 强化学习的基本要素
|
||||
## 强化学习过程的基本组成内容
|
||||
为了便于理解,我们引入任天堂经典游戏——[新超级马里奥兄弟U](https://www.nintendoswitch.com.cn/new_super_mario_bros_u_deluxe/pc/index.html),作为辅助理解的帮手。作为一个2D横向的闯关游戏,它的状态空间和动作空间无疑是简单的。
|
||||
|
||||

|
||||
@@ -38,6 +38,8 @@ $\pi(\mathrm{a} \mid \mathrm{s})=P(A=a \mid S=s)$
|
||||
|
||||
6.奖励(Reward):这是一种反馈信号,用于表现智能体与环境交互后"表现"如何。在不同的环境中,我们需要设置不同的奖励。比如,在围棋游戏中,最后赢得游戏才会获得一个奖励。比如在量化交易中,可以直接拿收益亏损作为奖励。拿我们的马里奥游戏举例,吃到金币可以获得较小的奖励,最终通关游戏会获得一个极大的奖励,这样使得智能体以通关为目标、以吃金币为锦上添花。当然了,如果碰到怪物或者是死亡,需要设置一个极大的负奖励,因为这将直接导致游戏结束。
|
||||
|
||||
我们可以得出一个结论:每一个奖励 $R_{i}$,都与当时刻的状态 $S_{i}$ 与动作 $A_{i}$ 有关。拿马里奥游戏举例,在当前状态下,是否采取什么样的动作就会决定获得什么样的奖励?马里奥如果采取"向上",就可以获得金币奖励。如果采取"向右",碰到小怪会死掉,会获得一个很大的负奖励。如果采取"向左",那么可能什么事情都不会发生。
|
||||
|
||||
7.状态转移(State transition):环境可不会在原地等你。在你操控马里奥执行一个动作后,比如"left",那屏幕上显示的画面肯定会改变,这就发生了一个状态转移。状态转移函数记作
|
||||
|
||||
<center>
|
||||
@@ -56,3 +58,92 @@ iv.执行动作$a_{2}$,发生状态转移<br>
|
||||
v.不断迭代......
|
||||
|
||||
该序列轨迹写作:$\langle s_{1},a_{1},r_{1},s_{2},a_{2},r_{2},\ldots,s_{T},a_{T},r_{T} \rangle$
|
||||
|
||||
## 强化学习的基本概念
|
||||
在阅读了前两个小节后,你可能对于强化学习的基本过程以及基本组成内容有了初步的了解。下面将进行强化学习基本概念的介绍,本章节与"基本组成内容"小节是继承关系,请一起阅读。(注:标题真难取,其实上一章就是强化学习的基本元素,这一章为基础元素推导出的基础概念)
|
||||
|
||||
1.回报(Retrun),需要与奖励区分开来。回报又称为"未来的累计奖励"(Cumulative future reward),这可以在其定义中窥见端倪:
|
||||
|
||||
<center>
|
||||
|
||||
$U_{\mathrm{t}}=R_{t}+R_{t+1}+R_{t+2}+R_{t+3}+\ldots . R_{t+n}$
|
||||
|
||||
</center>
|
||||
|
||||
但是这个定义有一个很明显的问题,未来时刻的奖励和现在的一样重要吗?如果我承诺未来给你100块钱,这份**承诺**在你心里的分量和现在就给你100块钱能够等价吗?很明显不能。因此我们引入折扣因子 $\gamma$ ,用以对未来的奖励做出一个折扣。定义折扣回报(Cumulative Discounted future reward)如下:
|
||||
|
||||
<center>
|
||||
|
||||
$U_{t}=R_{t}+\gamma R_{t+1}+\gamma^{2} R_{t+2}+\ldots \gamma^{n} R_{t+n}$
|
||||
|
||||
</center>
|
||||
|
||||
这是我们在强化学习中经常使用的概念。其中,折扣率是一个超参数,会对强化学习的结果造成一定的影响。
|
||||
|
||||
**注意格式**:如果游戏结束,每一个时刻的奖励都被观测到了——即站在任意时刻,一直到游戏结束的奖励都是可被观测的状态,那么奖励使用小写字母 $r$ 表示。如果游戏还没有结束,未来的奖励还是一个随机变量,那么我们使用大写字母 $R$ 来表示奖励。由于回报是由奖励组成的,那么我们也理所当然地用大写字母 $U_{t}$ 来表示回报。
|
||||
|
||||
*Fix:真的理所当然吗?*<br>
|
||||
让我们回顾一下,之前讲述"奖励"的定义时,我们得出过一个结论:每一个奖励 $R_{i}$,都与当时刻的状态 $S_{i}$ 与动作 $A_{i}$ 有关。我们又知道,状态 $S_{i}$ 与动作 $A_{i}$ 在某种意义上都是随机变量,不要忘了:<br>
|
||||
i.状态$S_{i}$是由状态转移函数,随机抽样得到的<br>
|
||||
ii.动作$A_{i}$是由策略 $\pi$ ,以状态$S_{i}$作为输入后随机抽样输出的
|
||||
|
||||
因此,$U_{t}$ 就跟 $t$ 时刻开始未来所有的状态和动作都有关,$U_{t}$的随机性也因此和未来所有的状态和动作有关。
|
||||
|
||||
2.动作价值函数(Action-Value Function)
|
||||
|
||||
$U_{t}$ 在强化学习过程中的重要性不言而喻,这就代表着总体奖励——可以用于衡量智能体总的表现水平,并且智能体的目标就是让这个回报越大越好。但是由于我们前面说过的原因,回报 $U_{t}$ 受制于状态与动作,是一个随机变量。也就是说,在 $t$ 时刻,我们无法得知 $U_{t}$ 究竟是什么。有没有一种办法,能够消除掉随机性?很自然的,我们想起了《概率论与数理统计》中的期望。从数学上来说,对 $U_{t}$ 在策略函数 $\pi$ 下求期望,就可以消掉里边所有的随机性。因此,我们得到动作价值函数 $Q_\pi$ 的定义如下:
|
||||
|
||||
<center>
|
||||
|
||||
$Q_\pi=E\left(U_t \mid S_t=s_t, A_t=a_t\right)$
|
||||
|
||||
</center>
|
||||
|
||||
动作价值函数 $Q_\pi$ 消除了不确定的未来的动作和状态,转而把已观测到的状态 $s_{t}$ 和动作 $a_{t} $ 作为被观测的变量而非随机变量来对待。动作价值函数带来的意义就在于,能够在策略 $\pi$ 下,对于当前状态 $s$ 下所有动作 $a$ 进行打分,基于分数我们就可以知道哪个动作好、哪个动作不好。
|
||||
|
||||
3.最优动作价值函数(Optimal action-value function)
|
||||
|
||||
动作价值函数对于回报 $U_{t}$ 关于策略 $\pi$ 求取了期望,成功地消去了状态以及动作的随机性。但是需要注意的是,使用不同的策略 $\pi$ 就会得到不同的动作价值函数 $Q_\pi$ ——其实质上受到三个参数影响,即($\pi$,$s$,$a$)。我们应该使用"效果最好"的那种函数,也就是能让 $Q_\pi$ 最大化的那个 $\pi$ ,基于此我们可以得到最优动作价值函数:
|
||||
|
||||
<center>
|
||||
|
||||
$Q^*\left(s_t, a_t\right)= \underset{\pi}{max} Q_\pi\left(s_t, a_t\right)$
|
||||
|
||||
</center>
|
||||
|
||||
我们跨出了历史性的一步。
|
||||
|
||||
如果有了 $Q^*$ 函数,意味着可以评价动作的好坏了。我们的价值函数不再和策略有关,在观测的状态 $s$ 下,$Q^*$函数成为指挥智能体动作的“指挥官”——哪个动作的分数最高,智能体就应该执行哪个动作。学习 $Q^*$ 函数也是强化学习的最终目标之一,我们可以维护一张价值表用于选择收益最大的动作。学习 $Q^*$ 函数的过程被称为**基于价值的学习**。
|
||||
|
||||
4.状态价值函数(State-value function)
|
||||
|
||||
在动作价值函数中,$Q^*$ 函数将未来的随机变量消去,留下 $s_{t}$ 和 $a_{t}$ 作为观测变量。如果把动作作为随机变量,然后对于动作求期望,求得的新函数将仅与策略 $\pi$ 和状态 $s$ 有关,这就得到了状态价值函数 $V_\pi\left(s_t\right)$ 。下面是状态价值函数的定义:
|
||||
|
||||
<center>
|
||||
|
||||
$\begin{aligned} & V_\pi\left(s_t\right)=E_A\left[Q_\pi\left(s_t, A\right)\right] \\ & A \sim \pi\left(\cdot \mid s_t\right)\end{aligned}$
|
||||
|
||||
</center>
|
||||
|
||||
状态价值函数消去了动作 $a$,留下了策略 $\pi$ 与状态 $s$。这就意味着,在策略$\pi$下,目前状态的好坏可以根据状态价值函数的值来判断。如果策略是固定的,那么 $V_\pi$ 的值越大代表当前形势越好、对自己越有利。同样,策略价值函数也能用于评价策略的好坏,策略越好,$V_\pi\left(s_t\right)$ 的平均值就会越大。
|
||||
|
||||
## 强化学习的基本目标
|
||||
|
||||
看完上述内容的你,心里想必有十万个为什么:我是谁?我在哪?我要做什么?
|
||||
|
||||
明明最初说好的要训练智能体打游戏,我才耐着性子看下去的!看了这么久了,我光学到了一大堆似是而非的概念,推导并尝试理解了一大堆可能之前都没有接触到过的数学公式,抑或是翻开了尘封已久的《概率论与数理统计》才勉强跟上公式推导及其步骤,却连强化学习怎么训练智能体都不知道!这是诈骗!~~日内瓦,退钱!~~
|
||||
|
||||
这也是我在学习过程中的心路历程。理解/半懂不懂的带过了一堆概念,却连强化学习最基本的任务都不明白。我要干什么,才能训练智能体打游戏?
|
||||
|
||||
还记得我们前面提到过的**基于价值的学习**和**基于策略的学习**吗?没错,强化学习的最终目标就是通过两者完成的,下面将给出具体阐述。
|
||||
|
||||
1.**基于价值的学习**。说人话,就是学习 $Q^*$ 函数。我们之前已经推导过 $Q^*$ 函数在学习过程中的重要性了,它就好像一个"指挥官",智能体只需要按照它输出的动作照着执行就够了。试想:在现实世界里如果有这样一位人,他一直在指导你炒股,并且证明了他的选择永远是收益最高的,你还管什么原理,跟着大哥梭哈就完事了!在基于价值的学习中,我们通过使用最优值函数来选择最优的动作以最大化长期奖励的方式来间接地学习最优策略。基于价值的学习使用值函数来指导行为,直接体现就是维护了一个价值表格或价值函数,并通过这个价值表格或价值函数来选取价值最大的动作。
|
||||
|
||||
2.**基于策略的学习**。说人话,就是学习 $\pi$ 函数。我们复习一下策略 $\pi$ 的定义,是指智能体采取动作的规则。试想:在现实世界里,由于少年你骨骼清朗,兼有大机缘大智慧大定力,捡到了一本炒股秘籍。这本秘籍想必是心思慎密的高人前辈所留,无论是在何种状态下都有规则匹配当前状态告诉你应该怎么操作——并且你操作之后收益永远是最大化的,这本指导手册就是策略。基于策略的学习在每个状态下选择最优的动作,以最大化长期奖励。这种方法的目标是直接优化策略本身,因此它通常需要在策略空间中进行搜索,并且在每个策略上评估其长期累积奖励。
|
||||
|
||||
通常情况下,学到 $Q^*$ 函数和 $\pi$ 函数之一,就可以操控智能体打游戏了。但是也有方法结合了价值学习和策略学习,这就是演员-批评家网络(Actor-Critic)。不必太过担心,我们会在后续章节详细阐述该框架。
|
||||
|
||||
## 总结与展望
|
||||
在本章节里,我们了解了强化学习的基本过程、组成要素、基本概念以及最终目标,无论你是否真正搞懂每一个知识点,想必已经对强化学习有一个初步的了解了。接下来,我拟从 Q-learning、SARSA 算法等传统强化学习算法开始,推到结合了深度学习的 Deep Q-learning(DQN) ,以及其改进版本Double DQN(DDQN)、Dueling DQN 等算法,以完成基于价值学习侧的算法介绍。然后,我将从 Reinforce 这一最基础的强化学习算法引入基于策略学习侧的基本理念,然后介绍结合基于策略学习和基于价值学习的演员-批评家网络(Actor-Critic)架构,并且引出PPO、DDPG等算法。
|
||||
|
||||
为了不让你的大脑继续过载,下一章节将讲述强化学习基本环境的搭建。
|
||||
@@ -1,6 +1,209 @@
|
||||
# 数据分析
|
||||
# 数据科学
|
||||
author:zzm
|
||||
# 本章内容会从一个小故事开始
|
||||
|
||||
# 目标
|
||||
讲讲某个人在大一的悲惨经历来为大家串起来一个精简的数据科学工作包括了哪些步骤,同时给各位介绍一些优质的教程
|
||||
|
||||
同时,这章内容将详细阐述[与人合作的生死疲劳](https://www.bilibili.com/video/BV1494y1o7jp/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=2cb6252f9211ae9d29cf1f76f0aea8d7)
|
||||
|
||||
# 悲惨世界
|
||||
|
||||
|
||||
::: danger 若有雷同,纯属瞎编~~根据真实事件改编
|
||||
|
||||
后人哀之而不鉴之,亦使后人而复哀后人也!
|
||||
|
||||
请欣赏小故事的同时,根据自己的需求选择自己想学的教程
|
||||
|
||||
:::
|
||||
## Day1
|
||||
|
||||
你是一个可怜的大一学生,学校的短学期的第一天,你的心情非常好,因为要放寒假了,只要再坚持过这个短学期,你的快乐假期要来了!什么是短学期?不知道啊,也没听学长说过,好像是新研究出来的一个课程,去试试看吧。
|
||||
|
||||
当你快乐的走进教室,老师告诉你:“你们看看PPT上的任务,自由选择啊!”
|
||||
|
||||
你看到PPT上赫然印着
|
||||
::: tip 任务目标
|
||||
基础系统:
|
||||
1. 淘宝客户价值分析系统,实现爬取数据,数据处理,数据分析。
|
||||
2. 二手房数据分析预测系统,实现爬取数据,数据分析,绘制图表。
|
||||
3. 智能停车场运营分析系统,实现爬取数据,数据分析,绘制图表。
|
||||
4. 影视作品分析系统,实现爬取数据,数据分析,绘制图表。
|
||||
升级系统:
|
||||
1. 利用爬虫理论,实现 12306 抢票小助手系统。
|
||||
2. 利用数据分析方法,实现淘宝商品排行分析。
|
||||
3. 利用爬虫原理,爬 Google 搜索引擎分析。”
|
||||
要求实现三项以上的功能模块或三种以上的特征分析或提取。
|
||||
:::
|
||||
|
||||
心中一惊,暗道不妙,这都什么玩意,怎么还有爬谷歌,淘宝和抢12306的票啊,这tm不是犯法的么!这我要能做出来我还上什么大一的学啊!🥺🥺🥺🥺
|
||||
|
||||
老师紧接着补充“十个人一组啊!一周内做完,数据自己想办法,第三天就要检查你们的进度了!”
|
||||
|
||||
这是你倒是暗暗松了一口气,好像十个人一起干也没有那么复杂!😎(这时正是愚昧之峰,错误的认为工作总量就是工作量除以十)迅速的组好队之后,你问了问大伙的进度,what?大伙都没有python基础,只有我有?幸好学了hdu-wiki和datawhale的[聪明方法学python](https://github.com/datawhalechina/learn-python-the-smart-way)
|
||||
|
||||
那就把教程分给大伙吧,我们选一个最简单的,二手房数据的分析系统好了!
|
||||
|
||||
第一天选好题了,又是大下午的,摆了摆了,你开心的打开电脑,打开了steam,开摆!
|
||||
|
||||
day 1 End!🤣
|
||||
|
||||
## Day 2
|
||||
|
||||
昨天真是美滋滋的一天,玩了一晚上的你有点头昏脑涨,今天就开始干活好了,反正一周时间呢,比期末复习周可长太多了,就做这么个玩意我还能做不出来吗?
|
||||
|
||||
虽然你没有学过爬虫,但是你很幸运的找到了github上一个现成的爬虫代码,虽然费了一翻力气,但是仍然躲过了某房价网站的爬虫,他成功爬下来了,我们就把他存在哪里呢?~~(爬虫待补充)
|
||||
|
||||
先试试excel好了,毕竟这是大家最耳熟能详的存表格的方法,但是你貌似没有深入了解过他,打开了datawhale的[free-excel](https://github.com/datawhalechina/free-excel),你才惊讶的发现,wow,原来他有这么多牛逼的功能啊!它除了可以将房价统计,找到它的平均价格,算出他的最高价格之类以外,竟然也可以把他可视化!甚至它还可以对房价进行多元分析!根据房屋数量面积地段等等因素帮你预测房价,甚至可以自动帮你检索和去除重复数据,实在是太好用啦!
|
||||
|
||||
当然,这只是一个理想状态,残酷的现实很快给你当头一棒!当你试着多爬点不同城市数据的时候,他崩了!这么脆弱的吗?!干点活就喊累的吗?!😨
|
||||
|
||||
当然你想起了有一个备用方案,好像你可以用数据库去存储他!
|
||||
|
||||
之前好像看到有一个教程叫做[wonderful-sql](https://github.com/datawhalechina/wonderful-sql?from=from_parent_mindnote)
|
||||
|
||||
他提到“随着社会的快速发展,各类企业数字化转型迫在眉睫,SQL 应用能力日趋重要。 在诸多领域中 SQL 应用广泛,数据分析、开发、测试、维护、产品经理等都有可能会用到SQL,而在学校里系统性讲授 SQL 的课程较少,但是面试及日常工作中却经常会涉及到 SQL。”
|
||||
|
||||
确实学校没有教过,但是幸好你有教程,折腾了一翻之后,你发现你对数据库有了更深的理解,他帮助了我们在容纳大量的多种不同的数据形式的时候不用专门去考虑怎么设计一个数据结构而是规划了一定的存储方法后全部塞给他,完全不用考虑具体的物理性的以及性能问题存储模式,并且他很多高级的功能可以帮助你便捷的把数据组织成一般情况下难以到达的形式,他的底层设计被严格的包装起来让你在进行数据增删改查的时候都又快又好。
|
||||
|
||||
并且它可以非常方便的存一些excel不好存的所谓的非结构化的数据,比如说图像等等,并且他不会动不动就喊累!处理几十万条也是一下子!
|
||||
|
||||
当然同时你也了解到,你所用的是关系型数据库,是老东西了,目前还有很多较为前沿的非关系型数据库,例如MongoDB(这玩意什么都能存,比如说地图),Neo4j(像一张蜘蛛网一样的结构,图)等等,他们不用固定的表来存储,可以用图存或者键值对进行存储,听起来好像非常的高级,不过你暂时用不到,数据搞都搞下来了,量也够了,是时候看看队友做到哪了?说不定后面你都不用做了,已经做的够多够累的了!
|
||||
|
||||
什么?!刚开始学python?!woc!完蛋,你逐渐来到了绝望之谷,唉!明天继续做吧!看来休息不了了。
|
||||
day 2 End 😔!
|
||||
|
||||
## Day 3
|
||||
|
||||
God!No!昨天已经够累的了,今天老师还要讲课,还要早起!你期待着老师可以降低要求,可是当老师托起长音,讲起了他知道了学生的累,所以今天决定开始讲课了!(现在讲有毛用啊,你明天就要验收我们的进度了!)
|
||||
|
||||
而他却慢悠悠的开始讲python的历史,把这点内容讲了足足两节课,你终于绷不住了,本来时间就不够,他竟然又浪费了你足足一早上的时间!这也太该死了!🤬
|
||||
|
||||
你回到了寝室,准备今天争取数据分析完就直接交上去好了!
|
||||
|
||||
可是你发现了一个让你震惊的噩耗!你找到的数据,是混乱的!😱
|
||||
|
||||
这个野鸡房价网站每个城市的排版不一样,你爬虫爬取的完全是按照顺序标的,也就是说你爬取的所有房价信息处于混沌状态!完全就相当于给每个房子爬了一段句子的描述!
|
||||
|
||||
没有办法了,看来今天有的折腾了,你找到了一个叫pandas(熊猫?)的东西,找到了这个教程[Joyful-Pandas](https://github.com/datawhalechina/joyful-pandas),开始了一天的学习!
|
||||
|
||||
你了解到pandas是一个开源的Python数据处理库,提供了高性能、易用、灵活和丰富的数据结构,可以帮助用户轻松地完成数据处理、清洗、分析和建模等任务。你使用了DataFrame来装载二维表格对象。
|
||||
|
||||
用一些关键词来提取数据中隐藏的信息,例如提取“平米”前面的数字放到‘area'列,提取房价到'price’列,提取位置到'locate'里面,当然你也遇到了可怕的bug,提取所有“室”和“厅”前面的数字,他总是告诉你有bug,全部输出之后才发现你提取到了“地下室”结果他没法识别到数字所以炸了!
|
||||
|
||||
将数据勉强弄得有序之后,你提取了平均数填充到缺失数据的房屋里面,将一些处理不了的删掉。
|
||||
|
||||
当然,你也额外了解到pandas这只可爱的小熊猫还有非常多强大的功能,例如数据可视化,例如分类数据,甚至可以让房屋按照时序排列,但是你实在不想动了!
|
||||
|
||||
不论怎么说,你勉强有了一份看得过去的数据,你看了看表,已经晚上十一点半了,今天实在是身心俱疲!
|
||||
|
||||
问问队友吧,什么,他们怎么还是在python语法?!你就像进了米奇不妙屋~队友在想你说“嘿~你呀瞅什么呢~是我!你爹~”
|
||||
|
||||
此时你像一头挨了锤的老驴,曾经的你有好多奢望,你想要GPA,想要老师的认同,甚至想要摸一摸水里忽明忽暗的🐟,可是一切都随着你的hadworking变成了泡影。
|
||||
|
||||
可是步步逼近的截止日期不允许你有太多的emo期,说好的七天时间,最后一天就剩下展示了!也就是说实际上只有6天的开发时间,也就是说你必须得挑起大梁了
|
||||
|
||||
> 世界上只有一种真正的英雄主义,那就是看清生活的真相之后,依然热爱生活
|
||||
|
||||
好的,你真不愧是一个真正的英雄!
|
||||
|
||||
day 3 end!👿 👹 👺 🤡
|
||||
|
||||
## Day 4
|
||||
|
||||
老师在验收的时候认为你什么工作也没做,他认为一份数据实在是太单薄了,特别是被你疯狂结构优化后的数据已经没几个特征了,让你去做点看得到的东西,不然就要让你不及格了,你的心里很难过,你想到也许你需要一些更好看的东西。数据可视化你在昨天的pandas看到过,可是你并没有详细了解,你觉得pandas已经在昨天把你狠狠的暴捶一顿了,并且老师想要更好看的图。
|
||||
|
||||
于是你考虑pandas配合Matplotlib画一些简单的图(Matplotlib的缺点是它的绘图语法比较繁琐,需要编写较多的代码才能得到漂亮的图形。)
|
||||
|
||||
加上Plotly绘制一些复杂的图,让你的图有着更漂亮的交互效果,然后加上看起来很牛逼的英语描述
|
||||
|
||||
|
||||
你找到了下面的教程
|
||||
[matplotlib奇遇记文字教程](https://github.com/datawhalechina/fantastic-matplotlib)
|
||||
|
||||
[极好的Plotly文字教程:](https://github.com/datawhalechina/wow-plotly)
|
||||
[视频教程](https://www.bilibili.com/video/BV1Df4y1A7aR)
|
||||
|
||||
🤗
|
||||
你绘制了柱状图,散点图,箱线图,甚至花了点钱找了外包去做了一个前端的热力图,虽然你爬的城市和数据不够覆盖全国,但是可以数据不够前端来凑啊!把城市的热量铺洒在全国。
|
||||
|
||||
这时你认为你的任务已经完成了!于是早早就心满意足的早早睡着了🍻 🥂。最近真的太累了,天天一两点睡,早上惊醒,做梦都是在爬数据分析数据!太可怕了!
|
||||
|
||||
在梦里,你好像看到了美好的假期时光。 😪
|
||||
|
||||
day 4 end!~🤤
|
||||
|
||||
## Day 5
|
||||
|
||||
你睡得很死,因为你已经你做完了所有的东西,第二天只要美美的验收结束,买了机票就可以回家了,可是老师仍然制止了你,跟你说如果你今晚走了就给你挂科,因为你没有用机器学习来分析他!
|
||||
|
||||
可是机票今晚就要起飞了啊!😰你已经要气疯了,想和老师据理力争,但是又害怕这么一个课被打上不及格的分数,这实在是太难受了!
|
||||
|
||||
终归你还是在老师的逼迫下,改签了机票,好吧,多少得加点功能了!呜呜呜~🤢 🤮
|
||||
|
||||
可是你并不完全会机器学习的算法,可怜的大一本科生的你没有学信息论也没有学最优化理论,很多算法你完全不懂其理论知识!听说西瓜书很好,可是你在图书馆借到了西瓜书之后根本看不懂!
|
||||
|
||||
于是你找到了吃瓜教程,也就是所谓市面上的南瓜书的[文字教程](https://github.com/datawhalechina/pumpkin-book)
|
||||
|
||||
你也找到了西瓜书的代码实践[文字教程](https://github.com/datawhalechina/machine-learning-toy-code)
|
||||
|
||||
你对着他啃了半天,觉得很多东西你都能看懂了,你脑子里已经有了很多思路,你想按使用高级的机器学习的算法!
|
||||
|
||||
但是!时间还是太紧张了!你没有办法从头开始实现了!
|
||||
|
||||
你想尝试[pytorch文字教程](https://github.com/datawhalechina/thorough-pytorch),但是时间也不够让你去重整数据去训练了。你随便塞在线性层里的数据梯度直接爆炸,你这时候还不知道归一化的重要性,紧张之下把几万几十万的房价往里面塞,结果结果烂成💩了,并且你没有波如蝉翼的基础知识并不够让你去解决这些个bug,只能疯狂的瞎挑参数,可是结果往往不如人意~
|
||||
|
||||
时间来到了晚上八点,明天就要最后验收了,走投无路的你把目光看向了远在几十千米外已经入职了的大哥,晚上跟他打电话哭诉你最近的遭遇,你实在搞不懂,为什么十二生肖大伙都属虎,就你属驴。
|
||||
|
||||
大哥嘎嘎猛,连夜打车过来,我在因疫情封校的最后两个小时赶出了学校,和大哥一起租了个酒店,通宵奋战,他采取了更多更为优雅的特征工程和模型调参的方式,让模型优雅的收敛到了一定程度,再用春秋笔法进行汇总,在半夜两点半,终于将内容搞定了
|
||||
|
||||
终于你可以睡个好觉了~
|
||||
|
||||
day 5 end!😍 🥰 😘
|
||||
|
||||
## Day 6
|
||||
|
||||
验收日,老师端坐在底下,宛如一尊大佛,提出了一系列无关紧要的问题,比如问我们能不能拿这个程序给老年人查资料???
|
||||
|
||||
等等问题和技术一点关系都没有!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
😣 😖 😫 😩
|
||||
|
||||
极度悲愤之下,当天晚上,你火速提着行李,离开了这伤心之地~~~~~~~~~~~~~~~~~
|
||||
|
||||
The End~~~~~~~~~~
|
||||
|
||||
# 事后总结
|
||||
|
||||
你在那个暑假详细了解和学习一下数据科学竞赛,发现他的含金量在职场领域有时候相当高,并且对提升自身的实力也有相当大的帮助!
|
||||
|
||||
[数据竞赛Baseline & Topline分享](https://github.com/datawhalechina/competition-baseline)
|
||||
|
||||
你还发现了之前从来没有注意到的kaggle平台以及一些很棒的综合实践项目!
|
||||
|
||||
例如[根据贷款申请人的数据信息预测其是否有违约的可能](https://github.com/datawhalechina/team-learning-data-mining/tree/master/FinancialRiskControl)
|
||||
|
||||
[根据汽车类型等信息预测二手汽车的交易价格](https://github.com/datawhalechina/team-learning-data-mining/tree/master/SecondHandCarPriceForecast)
|
||||
|
||||
例如:[使用公开的arXiv论文完成对应的数据分析操作](https://github.com/datawhalechina/team-learning-data-mining/tree/master/AcademicTrends)
|
||||
|
||||
|
||||
想到如果你早做准备,没有荒废大一的时光,也许你不但能圆满的通过这次课程,也可以开辟更为广阔的新世界了吧~
|
||||
|
||||
同时,你也初窥了数学+机器学习世界的瑰丽传奇,你想更为深入的对其有一个了解,并且做出点东西,希望对你日后的学习生活有个见证~~
|
||||
|
||||
少年将去开启新的传奇~~~~~
|
||||
|
||||
::: danger 再次警告,本章内容有很多瞎编的内容,不要全信
|
||||
|
||||
比如说一天学完pandas,一天学完sql之类的都是很不现实的!希望大家注意!
|
||||
|
||||
当然你也可以在需要用的时候再研究,也来得及,就是很累
|
||||
|
||||
不要打击到大家的自信心!
|
||||
:::
|
||||
|
||||
# 补充内容:下个定义
|
||||
|
||||
数据分析是独立于开发和算法岗的另一个方向,它主要是通过<strong>应用</strong>机器学习和深度学习的<strong>已有算法</strong>来分析现实问题的一个方向
|
||||
|
||||
@@ -8,7 +211,6 @@
|
||||
|
||||
数据这门科学就像中西医混合的一门医学,既要有西医的理论、分析模型以及实验,又需要有中医的望闻问切这些个人经验。
|
||||
|
||||
因此你在进行这一项任务的时候,除了希望你可以去学会用 python 进行数据分析外,也希望你可以尝试用数据的维度去解释周围的事情,并且用数据的眼光看代变化发展的世界。
|
||||
|
||||
> 这世界缺的真不是算法和技术,而是能用算法、技术解决实际问题的人
|
||||
|
||||
@@ -17,39 +219,8 @@
|
||||
|
||||
数据科学是当今计算机和互联网领域最热门的话题之一。直到今天,人们已经从应用程序和系统中收集了相当大量的数据,现在是分析它们的时候了。从数据中产生建议并创建对未来的预测。[在这个网站中](https://www.quora.com/Data-Science/What-is-data-science),您可以找到对于数据科学的更为精确的定义。
|
||||
|
||||
同时,我向各位推荐一个非常有趣的科普视频想你讲解数据分析师到底在做什么:[怎么会有这么性感的职业吶?](https://www.bilibili.com/video/BV1ZW4y1x7UU/?spm_id_from=333.999.0.0&vd_source=2cb6252f9211ae9d29cf1f76f0aea8d7)
|
||||
|
||||
# Datawhale的生态体系
|
||||
|
||||
在与Datawhale开源委员会的负责人文睿进行一翻畅谈之后。zzm受震惊于其理念以及已经构建的较为完善的体系架构,毅然决然的删除了本章和其广泛的体系比起来相形见绌的内容。为了更大伙更好的阅读以及学习体验,我们决定在本章内容引入[datawhale人工智能培养方案数据分析体系](https://datawhale.feishu.cn/docs/doccn0AOicI3LJ8RwhY0cuDPSOc#),我们会尝试站在巨人的肩膀上,争取更进一步的去完善它。
|
||||
|
||||
## SQL基础
|
||||
[文字教程](https://github.com/datawhalechina/wonderful-sql)
|
||||
|
||||
SQL是一种广泛应用于关系型数据库管理系统的编程语言。有的人可能会有疑问,为什么要学数据库或者数据库到底要干嘛?
|
||||
|
||||
如果你知道一些基本的在计算机内的组织数据的方式,从微观上来说,可能是所谓的数组,链表,树之类的。
|
||||
|
||||
但是对想使用计算机的角度来说,不能我每多一种不同的数据,我就要考虑该怎么设计一个非常优雅的数据结构来解决问题。有时候我们想存相当多的固定的数据,比如说你现在要爬取一千万条房价数据然后把房子的各种信息存起来,如果你存在excel表里面,他可能会崩不崩不谈,你要想把数据提取出来就是一件很麻烦的事情,更何况我们会有更进一步的数据进行增删改查的需求。
|
||||
|
||||
这个时候我们就可以考虑使用数据库来解决他,其设计就是为了容纳大量的多种不同的数据形式并且非常优雅的把他组织起来,他的底层设计被严格的包装起来让你在处理的时候又快又好。我举一个例子:
|
||||
|
||||
SQL短短的几句语言找出符合以下看起来非常复杂的需求:
|
||||
|
||||
1. 找到123航班的所有乘客
|
||||
2. 找到123航班的没有托运行李的乘客
|
||||
3. 找到今年四月所有预定了123航班的往返航程的乘客并且他们定的内容是同一架飞机并且他们要的座位都靠窗
|
||||
|
||||
如果你要自己设计一个数据结构,那可能会非常复杂,用好的组织方式把他拍出来甚至进行增删改查甚至是四个人同时增删改查的工作。
|
||||
|
||||
因此,如果你有这方面的需求,或者说你很好奇这种组织形式,欢迎你去学习这篇课程
|
||||
|
||||
|
||||
|
||||
|
||||
# 学这个有前途吗?
|
||||
|
||||
我推荐你详细了解和学习一下数据科学竞赛,他的含金量在职场领域有时候相当高,并且对提升自身的实里也有相当大的帮助!
|
||||
|
||||
由于数据竞赛办的频率较高更新也很快,我们将这一话内容直接附上github链接,希望如果你喜欢的话可以去进一步了解
|
||||
|
||||
[数据竞赛Baseline & Topline分享](https://github.com/datawhalechina/competition-baseline)
|
||||
|
||||
在与Datawhale开源委员会的负责人文睿进行一翻畅谈之后。zzm受震惊于其理念以及已经构建的较为完善的体系架构,毅然决然的删除了本章和其广泛的体系比起来相形见绌的内容。为了更大伙更好的阅读以及学习体验,我们决定在本章内容引入了[datawhale人工智能培养方案数据分析体系](https://datawhale.feishu.cn/docs/doccn0AOicI3LJ8RwhY0cuDPSOc#),希望各位站在巨人的肩膀上,争取更进一步的去完善它。
|
||||
|
||||
Reference in New Issue
Block a user