线性回归

import numpy as np
import matplotlib.pyplot as plt

#n列数据,最后一列是结果
def loadDataSet(filename):
    numFeat = len(open(filename).readline().split('\t')) - 1
    dataMat, labelMat = [], []
    fr = open(filename)
    for line in fr.readlines():
        LineArr = []
        curlLine = line.strip().split('\t')
        for i in range(numFeat):
            LineArr.append(float(curlLine[i]))
        dataMat.append(LineArr)
        labelMat.append(float(curlLine[-1]))
    return dataMat, labelMat

def standRegress(xArr, yArr):
    # x,y变成矩阵形式 y 应为竖着的形式
    xMat ,yMat= np.mat(xArr), np.mat(yArr).T
    xTx = xMat.T*xMat
    # linear algorithm
    if np.linalg.det(xTx) == 0:
        return
    ws = xTx.I * (xMat.T*yMat)
    return ws

xArr, yArr = loadDataSet('ex0.txt')
ws = np.array(standRegress(xArr, yArr))
ws = [x for sublist in ws for x in sublist]
print(ws)
plt.figure()
## list是不能用[:,1]索引的,array可以
plt.scatter(np.array(xArr)[:, 1], np.array(yArr)[:])
x = np.arange(0, 1, 0.02)
y = ws[0] + ws[1]*x
plt.plot(x, y)
plt.show()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值