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