规划-机器学习的学习顺序是怎样的?

工作也快一年多了,但是这一年来学会最多就是如何展示数据(Power BI、Tableau)以及清洗数据(SQL、python)。当然必不可少的就是业务流程。

虽然说是数据分析师,但本质上分析的事情并不多,更多的也只是描述性统计,min max avg (⊙﹏⊙)。
这并不是我想象中的数据分析,但这就是数据分析师的日常。

常见的机器学习算法多少能说出名字和概念,其背后的公式也多少知道,但要深入了解的时候,微积分和线代又不够用了。。虽然很清楚,
1.公式原理(微积分、线代)
2.实际应用(python、R)
两者缺一不可,

但正确的学习顺序是怎样的?
是先搞清楚原来再来实现,还是实现了在弄清楚原理——这是个问题。

这个事情没有标准的答案,每个人不同的情况会有不同的答案。
从过去半年两种方法都试了,第一条路似乎不是很契合我,因为我本身是计算机出身,代码的逻辑理解起来要比理解公式容易的多,而且积分线代往往还没看到重点的部分,就已经放弃了。

下半年开始,从例子出发,先照着书或者教程敲一遍,实现了再深入研究背后的原理。

附上看到的简单的神经网络

import numpy as np


def nonlin(x,deriv = False):
    if(deriv==True):
        return x*(1-x)
    return 1/(1+np.exp(-x))


X = np.array([[0,0,1],
              [0,1,1],
              [1,0,1],
              [1,1,1]])
y = np.array([[0],[1],[1],[0]])

np.random.seed(1)

# 正向 权重
syn0 = 2*np.random.random((3,4)) -1
syn1 = 2*np.random.random((4,1)) -1


for j in range(60000):

    l0 = X
    l1 = nonlin(np.dot(l0,syn0))
    l2 = nonlin(np.dot(l1,syn1))
    l2_error = y - l2

    if(j%10000)==0:
        print("Error:{}".format(str(np.mean(np.abs(l2_error)))))


    # 方向传播 要理解这里必须理解什么是梯度下降
    l2_delta = l2_error*nonlin(l2,deriv=True)

    l1_error = l2_delta.dot(syn1.T)

    l1_delta = l1_error * nonlin(l1,deriv=True)

    syn1 += l1.T.dot(l2_delta)
    syn0 += l0.T.dot(l1_delta)

print(l1)
print(l2)

简单的三层结构
第一层 三个神经元
第二层 四个神经元
第三次 一个神经元

通过BP算法,不断修正权重,需要理解逻辑回归函数,还要理解梯度下降是什么。

你可能感兴趣的:(规划-机器学习的学习顺序是怎样的?)