线性回归的Spark实现 [Linear Regression / Machine Learning / Spark]

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 = 400
25 iter = 0
26 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 += 1
34
35     if iter <= maxiter:
36         if sum(map(abs, parTheta)) <= 0.01:
37             print ‘I get it!!!‘
38             print ‘Iter = %s‘ % iter
39             print ‘Theta = %s‘ % theta
40             break
41     else:
42         print ‘Failed...‘
43         break

PS: 1. linearRegression.txt



线性回归的Spark实现 [Linear Regression / Machine Learning / Spark]

时间: 2024-10-14 14:45:50

线性回归的Spark实现 [Linear Regression / Machine Learning / Spark]的相关文章

逻辑回归的分布式实现 [Logistic Regression / Machine Learning / Spark ]

1- 问题提出 2- 逻辑回归 3- 理论推导 4- Python/Spark实现 1 # -*- coding: utf-8 -*- 2 from pyspark import SparkContext 3 from math import * 4 5 theta = [0, 0, 0] #初始theta值 6 alpha = 0.001 #学习速率 7 8 def inner(x, y): 9 return sum([i*j for i,j in zip(x,y)]) 10 11 def f

Spark MLlib Linear Regression线性回归算法

1.Spark MLlib Linear Regression线性回归算法 1.1 线性回归算法 1.1.1 基础理论 在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析.这种函数是一个或多个称为回归系数的模型参数的线性组合. 回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析.如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间

Matlab实现线性回归和逻辑回归: Linear Regression &amp; Logistic Regression

原文:http://blog.csdn.net/abcjennifer/article/details/7732417 本文为Maching Learning 栏目补充内容,为上几章中所提到单参数线性回归.多参数线性回归和 逻辑回归的总结版.旨在帮助大家更好地理解回归,所以我在Matlab中分别对他们予以实现,在本文中由易到难地逐个介绍. 本讲内容: Matlab 实现各种回归函数 ========================= 基本模型 Y=θ0+θ1X1型---线性回归(直线拟合) 解决

flink 批量梯度下降算法线性回归参数求解(Linear Regression with BGD(batch gradient descent) )

1.线性回归 假设线性函数如下: 假设我们有10个样本x1,y1),(x2,y2).....(x10,y10),求解目标就是根据多个样本求解theta0和theta1的最优值. 什么样的θ最好的呢?最能反映这些样本数据之间的规律呢? 为了解决这个问题,我们需要引入误差分析预测值与真实值之间的误差为最小. 2.梯度下降算法 梯度下降的场景: 梯度下降法的基本思想可以类比为一个下山的过程.假设这样一个场景:一个人被困在山上,需要从山上下来(i.e. 找到山的最低点,也就是山谷). 但此时山上的浓雾很

机器学习 Machine Learning(by Andrew Ng)----第二章 单变量线性回归(Linear Regression with One Variable)

第二章 单变量线性回归(Linear Regression with One Variable) <模型表示(Model Representation)>                                                             <代价函数(Cost Function)>                                                          <梯度下降(Gradient Descent)

ON THE EVOLUTION OF MACHINE LEARNING: FROM LINEAR MODELS TO NEURAL NETWORKS

ON THE EVOLUTION OF MACHINE LEARNING: FROM LINEAR MODELS TO NEURAL NETWORKS We recently interviewed Reza Zadeh (@Reza_Zadeh). Reza is a Consulting Professor in the Institute for Computational and Mathematical Engineering at Stanford University and a

Awesome Machine Learning

Awesome Machine Learning  A curated list of awesome machine learning frameworks, libraries and software (by language). Inspired by awesome-php. If you want to contribute to this list (please do), send me a pull request or contact me @josephmisiti Als

机器学习基石——第9-10讲.Linear Regression

本栏目(机器学习)下机器学习基石专题是个人对Coursera公开课机器学习基石(2014)的学习心得与笔记.所有内容均来自Coursera公开课Machine Learning Foundations中Hsuan-Tien Lin林轩田老师的讲解.(https://class.coursera.org/ntumlone-002/lecture) 第9讲-------Linear Regression 从这一节开始,开始涉及到How Can Machines Learn的问题了. 一.Linear

Classical method of machine learning

1. PCA principal components analysis 主要是通过对协方差矩阵Covariance matrix进行特征分解,以得出数据的主成分(即特征向量eigenvector)与它们的权值(即特征值eigenvalue). PCA是最简单的以特征量分析多元统计分布的方法.其结果可以理解为对原数据中的方差variance做出解释:哪一个方向上的数据值对方差的影响最大?换而言之,PCA提供了一种降低数据维度的有效办法:如果分析者在原数据中除掉最小的特征值所对应的成分,那么所得的