正则方程(机器学习)

Posted 木头㉿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则方程(机器学习)相关的知识,希望对你有一定的参考价值。

#导库
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
#plt.rcParams['font.sans-serif'] = ['SimHei']     显示中文
plt.rcParams['axes.unicode_minus'] = False       #显示负号

#数据集
X=[1.5,0.8,2.6,1.0,0.6,2.8,1.2,0.9,0.4,1.3,1.2,2.0,1.6,1.8,2.2]
y=[3.1,1.9,4.2,2.3,1.6,4.9,2.8,2.1,1.4,2.4,2.4,3.8,3.0,3.4,4.0]

#数据初始化
X = np.c_[np.ones(len(X)),X]
y = np.c_[y]

#初始化θ
theta = np.zeros((2,1))

#正规方程的代码表示    !!!!重点!!!!
theta = np.linalg.inv(X.T.dot(X)).dot(X.T.dot(y))

#可视化展示 画图
plt.figure('Scatter plot')
plt.title('Scatter plot')
plt.scatter(X[:,1],y,c='r',marker='*',label='Sample point')
plt.xlabel('X')
plt.ylabel('y')

theta0 = theta[0]
theta1 = theta[1]

#画回归方程
min_x,max_x = np.min(X),np.max(X)
min_y = theta1*min_x + theta0
max_y = theta1*max_x + theta0
plt.plot((min_x,max_x),(min_y,max_y),c='g')

plt.legend()
plt.show()


#导库 import numpy as np import matplotlib.pyplot as plt %matplotlib inline #plt.rcParams[‘font.sans-serif’] = [‘SimHei’] 显示中文 plt.rcParams[‘axes.unicode_minus’] = False #显示负号

#数据集 X=[1.5,0.8,2.6,1.0,0.6,2.8,1.2,0.9,0.4,1.3,1.2,2.0,1.6,1.8,2.2] y=[3.1,1.9,4.2,2.3,1.6,4.9,2.8,2.1,1.4,2.4,2.4,3.8,3.0,3.4,4.0]

#数据初始化 X = np.c_[np.ones(len(X)),X] y = np.c_[y]

#初始化θ theta = np.zeros((2,1))

#正规方程的代码表示 !!!!重点!!!! theta = np.linalg.inv(X.T.dot(X)).dot(X.T.dot(y))

#可视化展示 画图 plt.figure(‘Scatter plot’) plt.title(‘Scatter plot’) plt.scatter(X[:,1],y,c=‘r’,marker=’*’,label=‘Sample point’) plt.xlabel(‘X’) plt.ylabel(‘y’)

theta0 = theta[0] theta1 = theta[1]

#画回归方程 min_x,max_x = np.min(X),np.max(X) min_y = theta1min_x + theta0 max_y = theta1max_x + theta0 plt.plot((min_x,max_x),(min_y,max_y),c=‘g’)

plt.legend() plt.show()

以上是关于正则方程(机器学习)的主要内容,如果未能解决你的问题,请参考以下文章

正则方程(机器学习)

机器学习 之 线性回归 概念总结速记

机器学习中「正则化来防止过拟合」到底是一个啥原理?

我眼中的机器学习

机器学习笔记 1 LMS和梯度下降(批梯度下降) 20170617

吴恩达-机器学习+多特征正规方程梯度下降