线性回归之Excel数据如何矩阵运算

代码部分:
# -*- coding: utf-8 -*-
import numpy as np
import xlrd
 
path="C:/Users/Desktop/temp/aprotest/2creatmodel/123.xlsx"
data = xlrd.open_workbook(path)
table = data.sheets()[2]
 
cols = table.col_values(0)
cols1 = np.matrix(cols)  # 把list转换为矩阵
cols2=np.transpose(cols1)#转置
print cols2
 
cols11 = table.col_values(1)
cols21 = table.col_values(2)
cols31 = table.col_values(3)
cols4=np.vstack((cols11,cols21,cols31))#vstack合并后是横着排的,需要转置
cols5=np.matrix(cols4)
cols6=np.transpose(cols5)#转置
print cols6
 
z=np.linalg.inv(cols6.T*cols6)*cols6.T*cols2 #代码复制后乘号显示异常
print z
 
思路:
先用xlrd读取excel数据;然后将数据转换为矩阵matrix,期间用到numpy做数据合并和矩阵转置;最后用numpy做矩阵计算,得到线性回归结果。
 
知识点:
numpy之矩阵转置
cols6=np.transpose(cols5)
numpy之数据合并
cols4=np.vstack((cols11,cols21,cols31))
如果(cols11,cols21,cols31)已经先作为矩阵转置过了,再合并,那就应该用hstack,而不是vstack。
可以简单的理解为:vstack是行合并,hstack是列合并。具体可以参考:
 
 
posted @ 2019-12-28 17:46  数之美  阅读(641)  评论(0编辑  收藏  举报