博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线性回归的Spark实现 [Linear Regression / Machine Learning / Spark]
阅读量:5127 次
发布时间:2019-06-13

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

1- 问题提出

 


2- 线性回归

 


3- 理论推导

 


4- Python/Spark实现

1 # -*- coding: utf-8 -*- 2 from pyspark import SparkContext 3  4  5 theta = [0, 0] 6 alpha = 0.001 7  8 sc = SparkContext('local') 9 10 def func_theta_x(x):11     return sum([i * j for i, j in zip(theta, x)])12 13 def cost(x):14     thx = func_theta_x(x)15     return thx - x[-1]16 17 def partial_theta(x):18     dif = cost(x)19     return [dif * i for i in x[:-1]]20 21 rdd = sc.textFile('/home/freyr/linearRegression.txt')\22         .map(lambda line: map(float, line.strip().split('\t')))23 24 maxiter = 40025 iter = 026 while True:27     parTheta = rdd.map(partial_theta)\28                   .reduce(lambda x, y: [i + j for i, j in zip(x, y)])29 30     for i in range(2):31         theta[i] = theta[i] - alpha * parTheta[i]32 33     iter += 134 35     if iter <= maxiter:36         if sum(map(abs, parTheta)) <= 0.01:37             print 'I get it!!!'38             print 'Iter = %s' % iter39             print 'Theta = %s' % theta40             break41     else:42         print 'Failed...'43         break

PS: 1.


 

转载于:https://www.cnblogs.com/freyr/p/4501100.html

你可能感兴趣的文章
jQuery EasyUI 的下拉选择combobox后台动态赋值
查看>>
timeline时间轴进度“群英荟萃”
查看>>
python if else elif statement
查看>>
网络编程
查看>>
文本隐藏(图片代替文字)
查看>>
java面试题
查看>>
提高码力专题(未完待续)
查看>>
pair的例子
查看>>
前端框架性能对比
查看>>
uva 387 A Puzzling Problem (回溯)
查看>>
12.2日常
查看>>
同步代码时忽略maven项目 target目录
查看>>
Oracle中包的创建
查看>>
团队开发之个人博客八(4月27)
查看>>
发布功能完成
查看>>
【原】小程序常见问题整理
查看>>
C# ITextSharp pdf 自动打印
查看>>
【Java】synchronized与lock的区别
查看>>
django高级应用(分页功能)
查看>>
【转】Linux之printf命令
查看>>