机器学习笔记(1)—回归分析(regression analysis)
在高中我们都做过类似的题,给出一堆散乱的坐标点,利用一系列方式,找出一个线性回归方程,这个方程能确定这一系列坐标点的相关关系,因变量具有随机性,这种相关关系是不确定的,如下图所示:
而机器学习中的线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为y = w’x+e,e为误差服从均值为0的正态分布,简单的单变量线性回归方程模型如下所示:
回归分析中,如果只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。
本篇文章我们将在在三维坐标系中对三维数据进行回归分析
(1)
首先我们需要导入python中numpy,math,与matplotlib包,并设置随机种子,以确保生成的数据随机性:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D #This is for 3d scatter plots.
import math
np.random.seed(1)
我们开始生成随机数据集X,其包含100个三维向量,将其用转置矩阵处理;
并设定一条初始的方向向量v=(1,0,0),注意此时,v并不是最终与数据集具有相关关系的向量,或者说,这个v与我们期望的目标向量偏差较大,我们会经过一系列操作找到更好的v;
transform = np.array([[0.05, 0, 0],
[0, 0.65, 0.5],
[0.1, -0.3, 0.35]])
X = np.random.rand