-
理解通过梯度下降进行参数求解过程
直接计算的问题
矩阵是否满秩(Python矩阵运算对于不是满秩矩阵的情况适用模糊近似处理)
运算性能
梯度下降法近似的计算,解决了直接计算的问题
查看全部 -
理解向量运算进行参数求解过程
向量表示
Y=θX,θ和X是矩阵
L=1/2(θX-Y)^T(θX-Y)
第二行为损失函数(欧几里得距离/向量中向量空间的距离)
//这个损失函数是线性的,而神经网络的损失函数是非线性的
目的是找到一个L,使函数最小
//求极值或者求最小值就是对一个函数求导
θ=((X^T)X)^-1(X^T)Y //参数计算
就是第二行的损失函数的求导结果
查看全部 -
线性回归的一般化模型的数学表示
θ^0表示一维时的截距
也表示为多维时的偏移量
查看全部 -
通过训练得到θ的过程称为线性回归
查看全部 -
线性回归是最简单的模型
查看全部 -
from numpy import * import pandas as pd dataset = pd.read_csv('data.csv') temp = dataset.iloc[:, 2:5] temp['x0'] = 1 X = temp.iloc[:, [3, 0, 1, 2]] Y = dataset.iloc[:, 1] #(X'X)^(-1)X'Y,随着训练集增大,计算速度变慢 theta = dot(dot(inv(dot(X.T, X)), X.T), Y) #梯度下降法:theta = theta - alpha*(theta*X - Y)*X theta = array([1., 1., 1., 1.]).reshape(4, 1) #初始化theta alpha = 0.1 #定义学习率,若不收敛-->调小,若效率慢-->调大 temp = theta #同步更新theta,需要temp缓存 X0 = X.iloc[:, 0].values.reshape(150, 1) X1 = X.iloc[:, 1].values.reshape(150, 1) X2 = X.iloc[:, 2].values.reshape(150, 1) X3 = X.iloc[:, 3].values.reshape(150, 1) for i in rage(10000): temp[0] = theta[0] - alpha*dot(X0.T, dot(X, theta)-Y) temp[1] = theta[1] - alpha*dot(X1.T, dot(X, theta)-Y) temp[2] = theta[2] - alpha*dot(X2.T, dot(X, theta)-Y) temp[3] = theta[3] - alpha*dot(X3.T, dot(X, theta)-Y) theta = temp
查看全部 -
总代码记录
查看全部 -
Python实现线性回归分析:
技术背景:机器学习的兴起 线性回归模型的特点
实际意义:金融 数学 医学 统计
查看全部 -
牛逼了,不明觉厉
查看全部 -
用梯度下降算法来实现:
1、梯度下降算法方程:theta = theta - alpha*(theta*X - Y)*X
2、程序实现:
alpha = 0.1
theta = 1.0
for i in range(100):
theta = theta + np.sum(alpha * (Y - dot(X, theta)) * X.reshape(1, 3))/3
查看全部 -
theta = (X'X)^-1X'Y的程序表达式:
theta = dot(dot(inv(dot(X.T, X)), X.T), Y)
查看全部 -
Y = θX
通过训练,得到θ的过程,就是线性回归算法。
查看全部 -
线性模型 —— 非线性模型 —— 网络模型(神经网络)
查看全部 -
线性回归
查看全部 -
梯度下降
查看全部
举报