美文网首页
规划-机器学习的学习顺序是怎样的?

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

作者: 蜡笔不好吃 | 来源:发表于2019-07-11 20:53 被阅读0次

    工作也快一年多了,但是这一年来学会最多就是如何展示数据(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算法,不断修正权重,需要理解逻辑回归函数,还要理解梯度下降是什么。

    相关文章

      网友评论

          本文标题:规划-机器学习的学习顺序是怎样的?

          本文链接:https://www.haomeiwen.com/subject/fvjjkctx.html