【Python】机器学习之单变量线性回归 利用正规方程找到合适的参数值

【Python】机器学习之单变量线性回归 利用正规方程找到合适的参数值


 

本次作业来自吴恩达机器学习。

你是一个餐厅的老板,你想在其他城市开分店,所以你得到了一些数据(数据在本文最下方),数据中包括不同的城市人口数和该城市带来的利润。第一列是城市的人口数,第二列是在这个城市开店所带来的利润数。

现在,求最合适的θ0和θ1,利用Normal Equation 即正规方程式

 

计算方法:

θ = (XT * X)-1 * XT * Y

 

所以写出函数

 

def normalEquation(X,Y):
    res = np.linalg.pinv((X.T * X))*X.T*Y
    return res

 

 

导数据文件

path = 'ex1data1.txt'
data = pd.read_csv(path, header=None, names=['Population', 'Profit'])

 

X和Y分开,在X左边加一列作为本线性方程中的常数项。

data.insert(0, 'Ones', 1)
rows = data.shape[0]
cols = data.shape[1]
X = data.iloc[:, 0:cols - 1]
Y = data.iloc[:, cols - 1:cols]
X = np.mat(X.values)
Y = np.mat(Y.values)

 

调用函数,得到结果

res = normalEquation(X,Y)
print(res)

 

结果为:

[[-3.89578088]

[ 1.19303364]]

 

PS:数据集在机器学习的第一篇中的最下方。

 

posted @ 2019-10-05 01:56  秦羽纶  阅读(168)  评论(0编辑  收藏