Py学习  »  Git

这可能是Github上最好的机器学习资源——李宏毅《机器学习》完整笔记

开源最前线 • 4 年前 • 311 次点击  

开源最前线(ID:OpenSourceTop) 猿妹综合整理

综合自:https://github.com/datawhalechina/leeml-notes、https://datawhalechina.github.io/leeml-notes


李宏毅老师的机器学习视频是机器学习领域经典的中文视频之一,也被称为中文世界中最好的机器学习视频。李老师以幽默风趣的上课风格让很多晦涩难懂的机器学习理论变得轻松易懂,并且老师会通过很多有趣的例子结合机器学习理论在课堂上展现出来,并且逐步推导深奥的理论知识。比如老师会经常用宝可梦来结合很多机器学习算法。对于想入门机器学习又想看中文讲解的人来说绝对是非常推荐的。



前不久,Github上出现了一个叫 leeml-notes 的开源项目,完整梳理了李宏毅机器学习视频课程笔记,可以作为视频学习的一个辅助资料,因为它不仅完全复刻李老师课堂上讲的所有内容,还加入了一些和相关的学习补充资料和参考资料,结合这些资料一起学习,相信你会对机器学习有更加深刻的理解。



这份项目由8位成员整理创建,目前已经在Github上获得 2849 个Star,780 个Fork,提交了 360 个commits(Github地址:https://github.com/datawhalechina/leeml-notes


笔记完整的目录如下:



下面一起来看看笔记里面有什么精华内容:


机器学习介绍



图文并茂解释每个知识点,上图解释了什么是机器学习。



回归演示

丰富的代码示例,下面以回归演示为例:现在假设有10个x_data和y_data,x和y之间的关系是y_data=b+w*x_data。b,w都是参数,是需要学习出来的。现在我们来练习用梯度下降找到b和w。


x_data = [338., 333., 328., 207., 226., 25., 179., 60., 208., 606.]
y_data = [640., 633., 619.,  393., 428., 27., 193., 66., 226., 1591.]
x_d = np.asarray(x_data)
y_d = np.asarray(y_data)


先给b和w一个初始值,计算出b和w的偏微分

# linear regression
b = -120
w = -4
lr = 0.0000001
iteration = 100000

b_history = [b]
w_history = [w]

import time
start = time.time()
for i in range(iteration):
    b_grad=0.0
    w_grad=0.0
    for n in range(len(x_data))
        b_grad=b_grad-2.0*(y_data[n]-n-w*x_data[n])*1.0
         w_grad= w_grad-2.0*(y_data[n]-n-w*x_data[n])*x_data[n]

    # update param
    b -= lr * b_grad
    w -= lr * w_grad

    b_history.append(b)
    w_history.append(w)


# plot the figure
plt.subplot(121)
C = plt.contourf(x, y, Z, 50, alpha=0.5, cmap=plt.get_cmap('jet'))  # 填充等高线
# plt.clabel(C, inline=True, fontsize=5)
plt.plot([-188.4], [2.67], 'x', ms=12, mew=3, color="orange")
plt.plot(b_history, w_history, 'o-', ms=3, lw=1.5, color='black')
plt.xlim(-200-100)
plt.ylim(-55)
plt.xlabel(r'$b$')
plt.ylabel(r'$w$')
plt.title("线性回归")

plt.subplot(122)
loss = np.asarray(loss_history[2:iteration])
plt.plot(np.arange(2, iteration), loss)
plt.title("损失")
plt.xlabel('step')
plt.ylabel('loss')
plt.show()



输出结果如图



最后还有作业,讲解包含作业描述、任务要求、任务实现



除了内容丰富充实之外,创建者还专门整理了一个在线阅读的网站,在线阅读十分方便


地址:https://datawhalechina.github.io/leeml-notes


李宏毅视频教程在线观看地址:https://www.bilibili.com/video/av59538266



●编号731 ,输入编号直达本文

●输入m获取到文章目录


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/37700
 
311 次点击