前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >关于数据分析之线性回归

关于数据分析之线性回归

作者头像
python与大数据分析
发布2022-03-11 17:01:57
发布2022-03-11 17:01:57
37400
代码可运行
举报
运行总次数:0
代码可运行

前文是讲从csv读取到pandas,本文是讲csv读取到numpy数组中的三种方法,当然genfromtext代码量最少,也最友好。

代码语言:javascript
代码运行次数:0
运行
复制
import csv
import os
import numpy as np
import matplotlib.pyplot as plt
# genfromtxt方式
pathfilename=os.path.abspath('.')+'\\02-traindata.csv'
my_data=np.genfromtxt(pathfilename,delimiter=',',skip_header=0)
print(my_data)

# loadtxt方式
f=open(pathfilename,'r')
my_data=np.loadtxt(f,delimiter=',')
print(my_data)

# csv.reader方式
with open(pathfilename,'r') as f:
    data_iter=csv.reader(f,delimiter=',')
    data=[data for data in data_iter]
my_data=np.asarray(data,dtype=float)
print(my_data)

关于线性回归的预测,可以用numpy自带的polyfit,也可以用scikit-learn,一般建议用后者,次数越高训练集准确率越高,但过度拟合会导致测试集的预测准确率降低。

代码语言:javascript
代码运行次数:0
运行
复制
# 构造训练数据
x=np.arange(1,10.1)
y=0.9*x+np.sin(x)
# 构造测试数据
testx=np.arange(-2,12,0.5)
plt.plot(x,y,'o')
plt.show()
代码语言:javascript
代码运行次数:0
运行
复制
# 一次线性回归求解
model=np.polyfit(x,y,deg=1)
# [0.85886294 0.36737264]
testy=np.polyval(model,testx)
plt.plot(x,y,'o',testx,testy,'x')
plt.show()
代码语言:javascript
代码运行次数:0
运行
复制
# 二次线性回归求解
model=np.polyfit(x,y,deg=2)
# [0.03238583 0.50261879 1.07986094]
testx=np.arange(-2,12,0.5)
testy=np.polyval(model,testx)
plt.plot(x,y,'o',testx,testy,'x')
plt.show()
代码语言:javascript
代码运行次数:0
运行
复制
# 三次线性回归求解
model=np.polyfit(x,y,deg=3)
# [-0.02581586  0.45834759 -1.46196846  3.29486208]
testx=np.arange(-2,12,0.5)
testy=np.polyval(model,testx)
plt.plot(x,y,'o',testx,testy,'x')
plt.show()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python与大数据分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档