import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.pylab as mpl
from mpl_toolkits.mplot3d import Axes3D
# 设置可以显示中文符的画图
mpl.rcParams['font.sans-serif'] = [u'simHei']
mpl.rcParams['axes.unicode_minus'] = False
flag = True
# 数据准备,准备X,Y
X1 = np.array([ [10, 1], [15, 1], [20, 1], [30, 1], [50, 2], [60, 1], [60, 2], [70, 2]]).reshape((-1, 2))
Y = np.array([0.8, 1.0, 1.8, 2.0, 3.2, 3.0, 3.1, 3.5]).reshape((-1, 1))
if flag:
# 添加一列截距项
X = np.column_stack(X1, np.ones(shape=(X1.shape[0], 1)))
else:
X = X1
# 将X, Y的 np.array 形式转换成矩阵形式
X = np.mat(X)
Y = np.mat(Y)
# 训练模型
theta = (X.T * X).I * X.T * Y
# 预测模型
y_pre = X * theta
# 基于训练好的模型对一个未知