[ZQY]多项式拟合

20210904

昨晚跟zqy bb发现她竟然知道我这个博客

因为某天她在百度搜名字的时候搜到了我以前有篇写到过她。。

于是我决定让自己的blog看起来整齐一点。并且给这个大哥开个专栏。

有一个技术专栏叫周沁谕!!

---------------------------------------------这是一条分界线---------------------------------------------------------------

笑死!记录一下!

事情的前景:ZQY一个学经济的笨蛋学妹~

我们在以前的聊天里就有说到数据之类啥的,她说以后读研了都要学爬虫啥的,我说没事 我教你。。balabala的总说代码干啥干啥多方便。。

嗯。。是的。。。虽然很方便。。但是我。。。并不怎么会啊。。我只知道。。百度 github Google啊。。。

啊哈哈哈哈哈所以人总不能装X太过的。。

事情的起因:昨天跟ZQY见面。然后她在做毕设嘛。。然后要从前18年的数据预测后1年的。我的第一反应是。。

这数据很少啊。。感觉没办法投模型啊。。(表示皱眉= =

然后她说她有个软件可以预测 但是省份太多 要一个一个来 太麻烦了

然后 我哎。。软件都可以预测 那我也一定可以啊

然后我 嗯那我晚上回去想想

然后就想到多项式拟合。。奈何那时候太晚了。。于是太困了 没想多久就关掉电脑睡觉去了(没有什么比睡觉重要

开始。。

当然首先要读取execl的数据了。

当然 我连这个都忘了 。。

毕竟我比鱼的记忆还短0 0

#读取数据
databook = xlrd.open_workbook(XXX)
sheet = databook.sheets()[0]
years = sheet.col_values(0)
province = sheet.col_values(1)
price = sheet.col_values(2)
#表的行数
row_num = sheet.nrows

然后横坐标都是00年到17年嘛

x = np.array([x for x in range(2000, 2018)])

然后其实之前自己偷偷取过两个省份 发现好像数据都是一次式 然后我就嗯。用一次式拟合。。

res = []
province_num = 0
for i in range(row_num):
    if years[i] == '2000':
        st = i
        y = []
        y.append(price[i])
        continue
    if years[i] == '2017':
        y.append(price[i])
        province_num += 1
        #多项式拟合 f1返回 各项式的次数  我这里的3表示拟合三次式
        f1 = np.polyfit(x, y, 3)
        #p1是拟合成的多项式的式子
        p1 = np.poly1d(f1)
        #yvals表示2018年的预测值
        yvals = p1(2018)
        res.append(yvals)
        
        #数据可视化
        fig = plt.figure()
        plt.title(province[i] + "趋势图")
        plt.plot(x, y)
        fig.savefig(路径)
        continue
    if years[i] !=' ' and years[i] != '年度标识':
        y.append(price[i])

嗯。。顺便把各省份趋势图都画了画。。

发现。。。并不是我想的那样。。

什么一次式。。都奇奇怪怪的趋势。。

什么回落的。平的。。乱七八糟的都有。。算了。。我不会。。于是我做了二次三次的拟合。。然后把数据给了ZQY。。

嗯。。ZQY说她一次二次三次的结果都试一试。。哪个结果更好。。。

一次失败的。。经历。。。所以。。好好学习。才能。。帮到好朋友。菜鸡不配。。。。。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值