鱼C论坛

 找回密码
 立即注册
查看: 4020|回复: 7

[技术交流] python小练习(025):用python分析并预测四档热门综艺节目

[复制链接]
发表于 2016-11-27 21:56:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 jerryxjr1220 于 2016-11-27 23:37 编辑

python小练习(024)给大家分享了自制的小游戏2048,传送门

今天的小练习会和大家分享如何利用python丰富的而且功能强大的第三方库来分析数据并进行简单预测。

数据源我就简单爬取了近1个月来我比较喜欢的4档热门综艺节目的收视率,它们分别是:蒙面唱将、今夜百乐门、喜剧总动员、快乐大本营。

数据源:
日期         节目         频道         收视率         市场份额
11/14-11/20 蒙面唱将         江苏卫视         2.010%         6.826%
11/14-11/20         今夜百乐门         东方卫视         1.377%         3.934%
11/14-11/20         喜剧总动员         浙江卫视         1.987%         5.728%
11/14-11/20         快乐大本营         湖南卫视         1.299%         3.735%
11/07-11/13         蒙面唱将         江苏卫视         1.840%         6.294%
11/07-11/13         今夜百乐门         东方卫视         1.336%         4.012%
11/07-11/13         喜剧总动员         浙江卫视         2.049%         6.013%
11/07-11/13         快乐大本营         湖南卫视         1.606%         4.710%
10/31-11/06         蒙面唱将         江苏卫视         1.388%         5.334%
10/31-11/06         今夜百乐门         东方卫视         1.246%         3.759%
10/31-11/06         喜剧总动员         浙江卫视         1.972%         5.905%
10/31-11/06         快乐大本营         湖南卫视         1.489%         4.426%
10/24-10/30         蒙面唱将         江苏卫视         1.830%         6.271%
10/24-10/30         今夜百乐门         东方卫视         0.868%         2.573%
10/24-10/30         喜剧总动员         浙江卫视         1.860%         5.504%
10/24-10/30         快乐大本营         湖南卫视         1.464%         4.315%


捕获.PNG

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-11-27 21:59:17 | 显示全部楼层
本帖最后由 jerryxjr1220 于 2016-11-28 20:07 编辑

提示:会用到的库有:numpy , sklearn,matplotlib

其实只是利用了线性回归拟合了近1个月的数据,由于样本量比较少,多半预测的数据是不准确的。

这里只是提供一个思路,对于大量样本的话,预测是有一定可信度的。

代码:
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Sun Nov 27 22:01:32 2016

  4. @author: Administrator
  5. """
  6. import numpy as np
  7. import matplotlib.pyplot as plt
  8. from sklearn import linear_model as ln

  9. viewer = [['11/14-11/20','蒙面唱将','江苏卫视',2.010,6.826],\
  10.           ['11/14-11/20','今夜百乐门','东方卫视',1.377,3.934],\
  11.           ['11/14-11/20','喜剧总动员','浙江卫视',1.987,5.728],\
  12.           ['11/14-11/20','快乐大本营','湖南卫视',1.299,3.735],\
  13.           ['11/07-11/13','蒙面唱将','江苏卫视',1.840,6.294],\
  14.           ['11/07-11/13','今夜百乐门','东方卫视',1.336,4.012],\
  15.           ['11/07-11/13','喜剧总动员','浙江卫视',2.049,6.013],\
  16.           ['11/07-11/13','快乐大本营','湖南卫视',1.606,4.710],\
  17.           ['10/31-11/06','蒙面唱将','江苏卫视',1.388,5.334],\
  18.           ['10/31-11/06','今夜百乐门','东方卫视',1.246,3.759],\
  19.           ['10/31-11/06','喜剧总动员','浙江卫视',1.972,5.905],\
  20.           ['10/31-11/06','快乐大本营','湖南卫视',1.489,4.426],\
  21.           ['10/24-10/30','蒙面唱将','江苏卫视',1.830,6.271],\
  22.           ['10/24-10/30','今夜百乐门','东方卫视',0.868,2.573],\
  23.           ['10/24-10/30','喜剧总动员','浙江卫视',1.860,5.504],\
  24.           ['10/24-10/30','快乐大本营','湖南卫视',1.464,4.315]]
  25. for i in range(len(viewer)):
  26.     viewer[i].append(viewer[i][-1]*viewer[i][-2])
  27.    
  28. plt.scatter([5,4,3,2],[e[-1] for e in viewer if e[1] == '蒙面唱将'],color='blue')
  29. plt.scatter([5,4,3,2],[e[-1] for e in viewer if e[1] == '今夜百乐门'],color='red')
  30. plt.scatter([5,4,3,2],[e[-1] for e in viewer if e[1] == '喜剧总动员'],color='green')
  31. plt.scatter([5,4,3,2],[e[-1] for e in viewer if e[1] == '快乐大本营'],color='black')

  32. X = np.array([5,4,3,2]).reshape(-1,1)
  33. px = np.array([6,5,4,3,2]).reshape(-1,1)

  34. regm = ln.LinearRegression()
  35. regm.fit(X,[e[-1] for e in viewer if e[1] == '蒙面唱将'])
  36. plt.plot(px,regm.predict(px),color='blue',label="mask")
  37. print ('预测《蒙面唱将》将在11/21-11/28的收视率达到%.3f percent' % (regm.predict(6)/sum([e[-2] for e in viewer if e[1] == '蒙面唱将'])*4))

  38. regj = ln.LinearRegression()
  39. regj.fit(X,[e[-1] for e in viewer if e[1] == '今夜百乐门'])
  40. plt.plot(px,regj.predict(px),color='red',label="tonight")
  41. print ('预测《今夜百乐门》将在11/21-11/28的收视率达到%.3f percent' % (regm.predict(6)/sum([e[-2] for e in viewer if e[1] == '今夜百乐门'])*4))

  42. regx = ln.LinearRegression()
  43. regx.fit(X,[e[-1] for e in viewer if e[1] == '喜剧总动员'])
  44. plt.plot(px,regx.predict(px),color='green',label="comedy")
  45. print ('预测《喜剧总动员》将在11/21-11/28的收视率达到%.3f percent' % (regm.predict(6)/sum([e[-2] for e in viewer if e[1] == '喜剧总动员'])*4))

  46. regk = ln.LinearRegression()
  47. regk.fit(X,[e[-1] for e in viewer if e[1] == '快乐大本营'])
  48. plt.plot(px,regk.predict(px),color='black',label="happy")
  49. print ('预测《快乐大本营》将在11/21-11/28的收视率达到%.3f percent' % (regm.predict(6)/sum([e[-2] for e in viewer if e[1] == '快乐大本营'])*4))

  50. plt.legend(loc='upper left')
  51. plt.xticks([0, 2, 3, 4, 5, 6],
  52.        ['', '10/24\n-10/30', '10/31\n-11/06', '11/07\n-11/13', '11/14\n-11/20', '11/21\n-11/28'])
  53. plt.show()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-10 13:03:03 | 显示全部楼层
numpy 模块没有怎么弄?

numpy模块导入不进来

numpy模块导入不进来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-10 20:41:11 | 显示全部楼层
龙骑战龙 发表于 2016-12-10 13:03
numpy 模块没有怎么弄?

pip3 install numpy
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-14 14:38:32 | 显示全部楼层

谢谢!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-14 16:03:04 | 显示全部楼层
66666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-28 09:04:00 | 显示全部楼层
这个预测题目,这个跨度有点大,确实不知道从哪入手。翻看了下数据科学导论,涉及的算法看不太懂,关于sklearn这个模块具体操作应用有点少。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-24 10:29:47 | 显示全部楼层
为什么好帖子人这么少,顶顶顶
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-4 04:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表