python实现线性回归预测不用sklearn库_python – 为什么我的自定义线性回归模型不匹配sklearn?...
我正在尝试用Python创建一个简单的线性模型,不使用库(numpy除外).这就是我所拥有的
import numpy as np
import pandas
np.random.seed(1)
alpha = 0.1
def h(x,w):
return np.dot(w.T,x)
def cost(X,W,Y):
totalCost = 0
for i in range(47):
diff = h(X[i],W) - Y[i]
squared = diff * diff
totalCost += squared
return totalCost / 2
housing_data = np.loadtxt('Housing.csv',delimiter=',')
x1 = housing_data[:,0]
x2 = housing_data[:,1]
y = housing_data[:,2]
avgX1 = np.mean(x1)
stdX1 = np.std(x1)
normX1 = (x1 - avgX1) / stdX1
print('avgX1',avgX1)
print('stdX1',stdX1)
avgX2 = np.mean(x2)
stdX2 = np.std(x2)
normX2 = (x2 - avgX2) / stdX2
print('avgX2',avgX2)
print('stdX2',stdX2)
normalizedX = np.ones((47,3))
normalizedX[:,1] = normX1
normalizedX[:,2] = normX2
np.savetxt('normalizedX.csv',normalizedX)
weights = np.ones((3,))
for boom in range(100):
currentCost = cost(normalizedX,weights,y)
if boom % 1 == 0:
print(boom,'iteration',weights[0],weights[1],weights[2])
print('Cost',currentCost)
for i in range(47):
errorDiff = h(normalizedX[i],weights) - y[i]
weights[0] = weights[0] - alpha * (errorDiff) * normalizedX[i][0]
weights[1] = weights[1] - alpha * (errorDiff) * normalizedX[i][1]
weights[2] = weights[2] - alpha * (errorDiff) * normalizedX[i][2]
print(weights)
predictedX = [1,(2100 - avgX1) / stdX1,(3 - avgX2) / stdX2]
firstPrediction = np.array(predictedX)
print('firstPrediction',firstPrediction)
firstPrediction = h(firstPrediction,weights)
print(firstPrediction)
首先,它很快收敛.仅经过14次迭代.其次,它给出了与sklearn的线性回归不同的结果.作为参考,我的sklearn代码是:
import numpy
import matplotlib.pyplot as plot
import pandas
import sklearn
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
dataset = pandas.read_csv('Housing.csv',header=None)
x = dataset.iloc[:,:-1].values
y = dataset.iloc[:,2].values
linearRegressor = LinearRegression()
xnorm = sklearn.preprocessing.scale(x)
scaleCoef = sklearn.preprocessing.StandardScaler().fit(x)
mean = scaleCoef.mean_
std = numpy.sqrt(scaleCoef.var_)
print('stf')
print(std)
stuff = linearRegressor.fit(xnorm,y)
predictedX = [[(2100 - mean[0]) / std[0],(3 - mean[1]) / std[1]]]
yPrediction = linearRegressor.predict(predictedX)
print('predictedX',predictedX)
print('predict',yPrediction)
print(stuff.coef_,stuff.intercept_)
我的自定义模型预测为y值为337,000,sklearn预测为355,000.我的数据是47行,看起来像
2104,3,3.999e+05
1600,3.299e+05
2400,3.69e+05
1416,2,2.32e+05
3000,4,5.399e+05
1985,2.999e+05
1534,3.149e+05
我假设(a)我的梯度下降回归在某种程度上是错误的或(b)我没有正确地使用sklearn.
为什么2不会为给定输入预测相同输出的任何其他原因?
python实现线性回归预测不用sklearn库_python – 为什么我的自定义线性回归模型不匹配sklearn?...相关推荐
- python好用的内置库_Python开发哪些库好?老男孩Python学习班
近年来,伴随着人工智能时代的到来,也促使Python编程语言发展,因此Python成为公认的人工智能编程语言.之所以Python受欢迎,得益于其内置大量的库,那么Python开发有哪些基本库呢?这六大 ...
- python实现线性回归预测_机器学习实战笔记(Python实现)-08-线性回归
--------------------------------------------------------------------------------------- 本系列文章为<机器 ...
- python什么模块动态调用链接库_Python调用C/C++动态链接库的方法详解
本文以实例讲解了Python调用C/C++ DLL动态链接库的方法,具体示例如下: 示例一: 首先,在创建一个DLL工程(本例创建环境为VS 2005),头文件: 1 2 3 4 5 6 7 8 9 ...
- python中读写excel的扩展库_Python读写Excel文件第三方库汇总,你想要的都在这儿!...
常见库简介 xlrd xlrd是一个从Excel文件读取数据和格式化信息的库,支持.xls以及.xlsx文件. http://xlrd.readthedocs.io/en/latest/ 1.xlrd ...
- python文件读写用到的库_python 读写txt文件并用jieba库进行中文分词
python用来批量处理一些数据的第一步吧. 对于我这样的的萌新.这是第一步. #encoding=utf-8 file='test.txt'fn=open(file,"r")pr ...
- python什么模块动态调用链接库_python如何调用扩展模块
楔子 我们知道python的执行效率不是很高,而且由于GIL的原因,导致python不能充分利用多核CPU.一般的解决方式是使用多进程,但是多进程开销比较大,而且进程之间的通信也会比较麻烦.因此在解决 ...
- python文件读写用到的库_Python使用pyshp库读取shapefile信息的方法
通过pyshp库,可以读写shapefile文件,查询相关信息,github地址为 import shapefile # 使用pyshp库 file = shapefile.reader(" ...
- python中文转拼音不用第三方库_又一个奇葩要求,Python是如何将“中文”转“拼音”的?...
作者:黄同学 这年头什么样子的需求都会出现,下面这张图就是很好的体现了. 这就是说为啥要你学学Python啦!保不准你的领导会有各种奇葩需求,对于像Python这样的"万金油"编程 ...
- python网络爬虫方向的第三方库_Python网络爬虫中常用第三方库总结
python对于爬虫的编写已经是相当的友好了,不过除了利用requests库或者scrapy框架之外,有一些库还需要我们知道,以便于我们更熟练.便捷的完成目标数据的爬取,接下来我就总结一下我认为在爬虫 ...
最新文章
- 关于持续集成几点知识点
- 【IT资讯】继哈工大Matlab软件被美禁用后,华为、360再遭Docker软件禁令
- Visual Studio 竖向选择功能
- c++代码根据点位连线_邹军:数控车倒角C与自动倒圆角R编程方法
- Thrift 个人实战--Thrift 网络服务模型
- GAN 生成对抗网络论文阅读路线图
- 企业管理器控制台本地无法访问
- python类基础知识
- 使用PowerShell 导出Exchange中的用户中用户信息到Office 365
- Excel导出xml
- 十分钟django后台 simpleui -含自定义后台首页
- 招商银行软件开发笔试知识汇总
- windows live messenger 80072eff
- Java中输入一个整数n,实现n的阶乘
- 使用pytorch自己从头搭建一个Lenet分类器网络及其训练、检测脚本
- java奈奈老师2_【图片】奥尔三X作【新任女教师奈奈、同居俏佳人、同居俏女仆】攻略&结局【javagame吧】_百度贴吧...
- 湖北师范大学----操作系统实训(c语言)
- [读书笔记]增长黑客:创业公司的用户与收入增长秘籍
- hive删除表或表信息出现的问题
- ZYNQ学习之路16.SDSoC开发环境介绍
热门文章
- Linux 应用程序 网络通讯函数记录
- 【计算机网络复习 数据链路层】3.4.4 选择重传协议(SR)
- 7-4 最短工期 (25 分)
- 【剑指offer】面试题05:替换空格(java)
- MVC与三层架构的联系及三层架构实现学生注册功能
- mybatis mysql5.7_spring boot整合ES+mysql5.7+mybatis+iview个人博客系统
- 分数怎么在计算机上关,电脑如何在注册表上关闭AutoRun功能
- 机器学习中防止过拟合的方法总结
- MFC空间几何变换之图像平移、镜像、旋转、缩放
- Java消息服务~@JmsListener集成