-
梯度下降的原理
查看全部 -
梯度下降的直接计算
查看全部 -
最小二乘法模型
查看全部 -
线性回归的数学表示
查看全部 -
实际的意义
查看全部 -
技术的背景
查看全部 -
线性回归的课程安排
查看全部 -
同步更新
for i in range(10000):
temp[0]=theta[0] + alpha*np.sum((Y-dot(X,theta))*X0)/150.0
temp[1]=theta[1] + alpha*np.sum((Y-dot(X,theta))*X0)/150.0
temp[2]=theta[2] + alpha*np.sum((Y-dot(X,theta))*X0)/150.0
temp[3]=theta[3] + alpha*np.sum((Y-dot(X,theta))*X0)/150.0
theta=temp
查看全部 -
梯度下降方法(第二种代码)可以很好地解决向量方法(第一种)面对大量计算无法计算的弊端
而梯度下降更重要的是进行同步更新
所以需要一个temp来进行缓存
注意矩阵的形式可能需要变形——
reshape( )(如果出错,改成values.reshape( ))
查看全部 -
import numpy as np
from numpy.linalg import inv
from numpy import dot
from numpy import mat
import pandas as pd;
dataset = pd.read_csv('data.csv')
#print(dataset)
temp = dataset.iloc[:,2:5]
temp['X0']=1 #截距
X=temp.iloc[:,[3,0,1,2]] #读取temp的第3,0,1,2列
#print(X)
#iloc[m,n] m-行 n-列
Y=dataset.iloc[:,1].values.reshape(150,1)
#print(Y)
theta = dot(dot(inv(dot(X.T,X)),X.T),Y)
print(theta)
theta=np.array([1.,1.,1.,1.]).reshape(4,1)
alpha=0.1 #学习速率
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 range(10000):
temp[0]=theta[0] + alpha*np.sum((Y-dot(X,theta))*X0)/150.0
temp[1]=theta[1] + alpha*np.sum((Y-dot(X,theta))*X0)/150.0
temp[2]=theta[2] + alpha*np.sum((Y-dot(X,theta))*X0)/150.0
temp[3]=theta[3] + alpha*np.sum((Y-dot(X,theta))*X0)/150.0
theta=temp
print(theta)
查看全部 -
temp=dataset.iloc[:,2:5]
读取数据方法——定义了一个函数 iloc()
temp = dataset.iloc[:,2:5]
把X读出来
temp['x0']=1
偏移
X=temp.iloc[:,[3,0,1,2]]
显示顺序 第3列 第0列 第1列 第2列
查看全部 -
inv 逆
dot 点乘
mat 矩阵
array 数组
.T 转置
查看全部 -
生成‘data.csv’文件的python代码
import random
def Y(X1, X2, X3):
return 0.65 * X1 + 0.70 * X2 - 0.55 * X3 + 1.95
def Produce():
filename = 'data.csv'
with open(filename, 'w') as file:
file.write('X1,X2,X3,Y\n')
for i in range(200):
random.seed()
x1 = random.random() * 10
x2 = random.random() * 10
x3 = random.random() * 10
y = Y(x1, x2, x3)
try:
file.write(str(x1) + ',' + str(x2) + ',' + str(x3) + ',' + str(y) + '\n')
except Exception as e:
print ('Write Error')
print (str(e))
Produce()
查看全部 -
在命令行行python文件
》》》python "D:\Python\demo03.py"
查看全部 -
>>> import numpy as np
>>> from numpy.linalg import inv
>>> from numpy import dot
>>> from numpy import mat
>>> import pandas as pd
>>> dataset=pd.read_csv('data.csv')
>>> print(dataset)
查看全部
举报