LinearRegression

利用python实现简单的线性回归对房屋面积进行预测

 1 # -*-coding:utf-8 -*-
 2 ‘‘‘
 3 Created on 2016年12月15日
 4
 5 @author: lpworkdstudy
 6 ‘‘‘
 7 import numpy as np
 8 from numpy.core.multiarray import dtype
 9 import matplotlib.pyplot as plt
10
11 filename = "ex1data1.txt"
12 alpha = 0.01
13
14 f = open(filename,"r")
15 data = []
16 y = []
17 for item in f:
18     item = item.rstrip().split(",")
19     data.append(item[:-1])
20     y.append(item[-1:])
21 Data = np.array(data,dtype= "float64")
22 Y = np.array(y,dtype = "float64")
23 Y = (Y-Y.mean())/(Y.max()-Y.min())
24 One = np.ones(Data.shape[0],dtype = "float64")
25 Data = np.insert(Data, 0, values=One, axis=1)
26 for i in range(1,Data.shape[1]):
27     Data[:,i] = (Data[:,i]-Data[:,i].mean())/(Data[:,i].max()-Data[:,i].min())
28 theta = np.zeros((1,Data.shape[1]),dtype= "float64")
29
30 def CostFunction(Data,Y,theta):
31     h = np.dot(Data,theta.T)
32     cost = 1/float((2*Data.shape[0]))*np.sum((h-Y)**2)
33     return cost
34 def GradientDescent(Data,Y,theta,alpha):
35     costList = []
36     for i in range(10000):
37         theta =  theta- (alpha/Data.shape[0]*np.dot(Data.T,(np.dot(Data,theta.T)-Y))).T
38         cost = CostFunction(Data, Y, theta)
39         costList.append(cost)
40
41     plt.plot(range(10000),costList)
42     plt.xlabel("the no. of iterations")
43     plt.ylabel("cost Error")
44     plt.title("LinearRegression")
45     plt.show()
46     return theta
47 if __name__ == "__main__":
48     weight = GradientDescent(Data,Y,theta,alpha)
49     print weight
50     cost = CostFunction(Data, Y, weight)
51     print cost

上图是Loss Error 随 迭代次数变化的曲线,显然,在迭代4000次左右后随着迭代次数增加,loss下降缓慢。

注:在这里只是简单的利用LMS Loss Function 和 GD对Linear Regression进行了编写,并没有预测

时间: 2024-11-10 08:32:51

LinearRegression的相关文章

sklearn中LinearRegression关键源码解读

问题的引入 我们知道,线性回归方程的参数,可以用梯度下降法求解,或者用正规方程求解. 那sklearn.linear_model.LinearRegression中,是不是可以指定求解方式呢?能不能从中获取梯度相关信息呢? 下面是线性回归最简单的用法. from sklearn import linear_model # Create linear regression object regr = linear_model.LinearRegression() # Train the model

【Python数据挖掘课程】九.回归模型LinearRegression简单分析氧化物数据

这篇文章主要介绍三个知识点,也是我<数据挖掘与分析>课程讲课的内容.同时主要参考学生的课程提交作业内容进行讲述,包括:        1.回归模型及基础知识:        2.UCI数据集:        3.回归模型简单数据分析. 前文推荐:       [Python数据挖掘课程]一.安装Python及爬虫入门介绍       [Python数据挖掘课程]二.Kmeans聚类数据分析及Anaconda介绍       [Python数据挖掘课程]三.Kmeans聚类代码实现.作业及优化 

python sklearn.linear_model.LinearRegression.score

score(self, X, y, sample_weight=None) 作用:返回该次预测的系数R2     其中R2 =(1-u/v).u=((y_true - y_pred) ** 2).sum()     v=((y_true - y_true.mean()) ** 2).sum() 其中可能得到的最好的分数是1.当一个模型不论输入何种特征值,其总是输出期望的y的时候,此时返回0 python sklearn.linear_model.LinearRegression.score

机器学习之路: python 线性回归LinearRegression, 随机参数回归SGDRegressor 预测波士顿房价

python3学习使用api 线性回归,和 随机参数回归 git: https://github.com/linyi0604/MachineLearning 1 from sklearn.datasets import load_boston 2 from sklearn.cross_validation import train_test_split 3 from sklearn.preprocessing import StandardScaler 4 from sklearn.linear

sklearn中LinearRegression使用及源码解读

sklearn中的LinearRegression 函数原型:class sklearn.linear_model.LinearRegression(fit_intercept=True,normalize=False,copy_X=True,n_jobs=1) fit_intercept:模型是否存在截距 normalize:模型是否对数据进行标准化(在回归之前,对X减去平均值再除以二范数),如果fit_intercept被设置为False时,该参数将忽略. 该函数有属性:coef_可供查看模

我与西瓜书2外传----More about LinearRegression

之前讲过了一种求解LR(LinearRegression)的方法--范数方程(Normal Equation).这个是西瓜书上讲的方法,其中在andrew Ng的公开课中还讲了很多其实还有另外一种求解参数方法:梯度下降(Gradient Descent),其中内容包括批梯度下降(Batch gradient descent)和随机梯度下降(Stochastic gradient descent). 另外,公开课中还讲解了cost function的概率解释,局部加权回归(LMR).这一篇博客,我

动手学习深度学习 3-1 Linear-regression

Linear-regression 1. 线性回归 线性回归模型尽量写成矩阵形式进行计算. 为什么矩阵计算比循环快很多? [知乎]因为通常的数学库,矩阵运算都是用BLAS.ATLAS之类的库.这些库中,矩阵运算都是优化过的(也就是说通常不会用两层循环来计算矩阵乘法,具体的计算方法请参考源代码). 当然,还有更厉害的,就是底层调用CPU级别的运算指令.例如intel的MKL就是一个做高速浮点运算的库,比直接编译C语言还要快(10000x10000维的矩阵分解速度可以从10s级加速到0.1s级).W

机器学习之 LinearRegression 线性回归

一.预测 先来看看这样一个场景: 假如你手头有一套房子要出售,你咨询了房产中介.中介跟你要了一系列的数据,例如房子面积.位置.楼层.年限等,然后进行一系列计算后,给出了建议的定价. 房产中介是如何帮你定价的? "中介"通过他多年的"从业"经验,知道哪些因素会影响房子的价格,且知道各自的"影响"有多大,于是在接过"你的房子"时,他就能通过自已的经验计算出"价格"了. 当然,这个价格,不同的中介,得到的也不同.

用scikit-learn和pandas学习线性回归

对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了. 1. 获取数据,定义问题 没有数据,当然没法研究机器学习啦.:) 这里我们用UCI大学公开的机器学习数据来跑线性回归. 数据的介绍在这: http://archive.ics.uci.edu/ml/datasets/Combined+Cycle+Power+Plant 数据的下载地址在这: http://archive.ics.uci.edu/ml/ma