码迷,mamicode.com
首页 > 其他好文 > 详细

线性回归——尚学堂-人工智能开发课程

时间:2018-09-06 19:55:26      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:fit   sam   分布   rom   distrib   ati   技巧   lin   pyc   

传送门:人工智能视频列表-尚学堂,点开任意一个之后会发现他们会提供系列课程整合到一起的百度网盘下载,包括视频+代码+资料,都是免费的

这里:博客园小技巧我觉得这个很好玩,可以拿来用。

第一种方法:利用numpy使用常规等式的数学方法,类似解数学方程,并利用matplot实现可视化。

有用到概率学方面的知识,比如似然什么的,大概了解下就OK,下面是代码:

 1 import numpy as np
 2 import matplotlib.pyplot as plt
 3 
 4 # Create an array of the given shape and populate it with random samples from a uniform distribution over ``[0, 1)``
 5 X = 2 * np.random.rand(100, 1)
 6 # 认为设置Y值,np.random.randn(100, 1)是设置error,randn是标准正态分布
 7 y = 4 + 3 * X + np.random.randn(100, 1)
 8 # 整合X0和X1,拼接到一起了
 9 X_b = np.c_[np.ones((100, 1)), X]
10 print(X_b)
11 
12 # 常规等式法求解theta,求逆,转置,点乘
13 theta_best = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y)
14 print(theta_best)
15 
16 # 创建测试集里面的X1
17 X_new = np.array([[0], [2]])
18 X_new_b = np.c_[(np.ones((2, 1))), X_new]
19 print(X_new_b)
20 y_predict = X_new_b.dot(theta_best)
21 print(y_predict)
22 
23 plt.plot(X_new, y_predict, r-)    # 红色 线图
24 plt.plot(X, y, b.)                       # 蓝色 点图
25 plt.axis([0, 2, 0, 15])                # x轴,y轴区间
26 plt.show()

想说个小技巧,选中调用的函数,快捷键crtl+B,或者单击右键,Go To,Declaration;就可以快速转到调用的函数那儿,注:我用的是Pycharm + Anaconda3.

第二种方法:使用sklearn框架,看着很简单呢。主要用到的是fit,predict

import numpy as np
from sklearn.linear_model import LinearRegression

X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)

lin_reg = LinearRegression()
lin_reg.fit(X, y)
print(lin_reg.intercept_, lin_reg.coef_)

X_new = np.array([[0], [2]])
print(lin_reg.predict(X_new))

还有,我觉得动手写最重要,然后哪里不会找哪里,多看看相关的博客,总会用到的;而且博客很好玩,自己写下来可以随时再看,真的方便,也要多写写博客,完。

哎,这个该放到哪一类呢?

今天就是这些了,有些少,早上睡懒觉了,晚上有个考研讲座要去听(关于我们专业的,不是数学、英语,政治的),over

线性回归——尚学堂-人工智能开发课程

标签:fit   sam   分布   rom   distrib   ati   技巧   lin   pyc   

原文地址:https://www.cnblogs.com/xv-shilin/p/9600099.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!