上课的时候的一个实验,闲得无聊把3维的线性回归矩阵化,以便以后可以对几百几千维的数据也可以使用该算法(虽然直接sklearn更快),但毕竟是手搓出来的用起来好玩一点点。
线性回归原理如下(原理很简单,字是鬼画符,不看也罢):
注:这里只是回归,不是分类。多分类的问题的话需要训练多组参数W和b,用softmax进行分类,其结构就类似没有隐藏层只有输出层的神经网络。这里就懒得弄了。
鸢尾花数据集链接如下:
链接:https://pan.baidu.com/s/1Lm5oKDfnnFGvWycuF9D1PA
提取码:1234
具体代码如下,注释有详细介绍:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.preprocessing import LabelEncoder # 处理鸢尾花数据的
def compute_error(b, W, points):
'''
计算损失,这里采用简单的(y-y^hat)**2这一损失函数
:param b: 偏差b&