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