博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
郑捷《机器学习算法原理与编程实践》学习笔记(第七章 预测技术与哲学)7.1 线性系统的预测...
阅读量:5759 次
发布时间:2019-06-18

本文共 1652 字,大约阅读时间需要 5 分钟。

 7.1.1 回归与现代预测

 7.1.2 最小二乘法

 7.1.3 代码实现

(1)导入数据

def loadDataSet(self,filename):     #加载数据集    X = [];Y = []    fr = open(filename)    for line in fr.readlines():        curLine = line.strip().split('\t')        X.append(float(curLine[0]))        Y.append(float(curLine[-1]))    return X,Y
(2)绘制图形函数
# (2)绘制图形函数def plotscatter(Xmat,Ymat,a,b,plt):    fig = plt.figure()    ax  = fig.add_subplot(111) #绘制图形位置    ax.scatter(Xmat,Ymat,c='blue',marker='o')#绘制散点图    Xmat.sort()                #对Xmat元素进行排序    yhat = [a.float(xi)+b for xi in Xmat] #计算预测值    plt.plot(Xmat,yhat,'r')    plt.show()    return  yhat

(3)主函数

 

Xmat,Ymat = loadDataSet("regdataset.txt") #导入数据文件meanX     = mean(Xmat)                      #原始数据的均值meanY     = mean(Ymat)                      #原始数据的均值dX        = Xmat-meanX                      #各元素与均值的差dY        = Ymat-meanY                      #各元素与均值的差#手工计算# sumXY = 0;Sqx = 0# for i in xrange(len(dx)):#     sumXY += double(dx[i])*double(dy[i])#     Sqx   = double(dX[i])**2sumXY = vdot(dX,dY) #返回两个向量的点乘multiplySqx   = sum(power(dX,2))#向量的平方:(X-meanX)^2#计算斜率和截距a = sumXY/Sqxb = meanY-a*meanXprint a,b#绘制图形plotscatter(Xmat,Ymat,a,b,plt)
 7.1.4 正规方程组法
7.1.5 正规方程组的代码实现
 
#数据矩阵,分类标签xArr,yArr = loadDataSet("regdataset.txt") #导入数据文件m = len(xArr) #生成X坐标列Xmat = mat(ones((m,2)))for i in xrange(m):    Xmat[i,1] = xArr[i]Ymat = mat(yArr).T   #转化为Y列xTx = Xmat.T*Xmatws = [] #直线的斜率和截距if linalg.det(xTx) != 0.0:    #行列式不为0    ws = linalg.inv(Xmat.T*Xmat)*(Xmat.T*Ymat)#矩阵的正规方程组的公式:inv(X.T*X)*X.T*Yelse:    print  u"矩阵为奇异阵,无逆矩阵"    sys.exit(0)#退出程序print  "ws:",ws
 

资料来源:郑捷《机器学习算法原理与编程实践》 仅供学习研究

转载于:https://www.cnblogs.com/wuchuanying/p/6409176.html

你可能感兴趣的文章
Oracle在JavaOne上宣布Java EE 8将会延期至2017年底
查看>>
Javascript 深入浅出原型
查看>>
简单之极,搭建属于自己的Data Mining环境(Spark版本)
查看>>
Ruby 2.5.0概览
查看>>
如何通过解决精益问题提高敏捷团队生产力
查看>>
Comment2Wechat —— Typecho 插件
查看>>
Apache下.htaccess文件配置及功能介绍
查看>>
Magento XML cheatsheet
查看>>
Egg 2.19.0 发布,阿里开源的企业级 Node.js 框架
查看>>
Kubernetes 弹性伸缩全场景解析 (四)- 让核心组件充满弹性 ...
查看>>
使用MySQLTuner-perl对MySQL进行优化
查看>>
Swoole 4.1.0 正式版发布,支持原生 Redis/PDO/MySQLi 协程化 ...
查看>>
开发网络视频直播系统需要注意的地方
查看>>
haproxy mysql实例配置
查看>>
强化学习的未来— 第一部分
查看>>
掌握Python系统管理-调试和分析脚本1-debugging
查看>>
TableStore:用户画像数据的存储和查询利器
查看>>
2019 DockerCon 大会即将召开,快来制定您的专属议程吧!
查看>>
15分钟构建超低成本数据大屏:DataV + DLA
查看>>
1月9日云栖精选夜读 | Mars 算法实践——人脸识别
查看>>