重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章运用简单易懂的例子给大家介绍利用Python编写一个数据预测工具,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
创新互联是一家专业提供清河企业网站建设,专注与成都网站建设、成都做网站、H5页面制作、小程序制作等业务。10年已为清河众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。大数据预测是大数据最核心的应用,是它将传统意义的预测拓展到“现测”。大数据预测的优势体现在,它把一个非常困难的预测问题,转化为一个相对简单的描述问题,而这是传统小数据集根本无法企及的。从预测的角度看,大数据预测所得出的结果不仅仅是用于处理现实业务的简单、客观的结论,更是能用于帮助企业经营的决策。
在过去,人们的决策主要是依赖 20% 的结构化数据,而大数据预测则可以利用另外 80% 的非结构化数据来做决策。大数据预测具有更多的数据维度,更快的数据频度和更广的数据宽度。与小数据时代相比,大数据预测的思维具有 3 大改变:实样而非抽样;预测效率而非精确;相关关系而非因果关系。
而今天我们就将利用python制作可视化的大数据预测部分集成工具,其中数据在这里使用一个实验中的数据。普遍性的应用则直接从文件读取即可。其中的效果图如下:
实验前的准备
首先我们使用的python版本是3.6.5所用到的模块如下:
数据的训练和训练的GUI窗口
经过算法比较,发现这里我们选择使用sklearn简单的多元回归进行拟合数据可以达到比较好的效果。
(1)首先是是数据的读取,通过设定选定文件夹函数来读取文件,加载数据的效果:
'''选择文件功能''' def selectPath(): # 选择文件path_接收文件地址 path_ =tkinter.filedialog.askopenfilename() # 通过replace函数替换绝对文件地址中的/来使文件可被程序读取 # 注意:\\转义后为\,所以\\\\转义后为\\ path_ =path_.replace("/", "\\\\") # path设置path_的值 path.set(path_) return path # 得到的DataFrame读入所有数据 data = pd.read_excel(FILENAME, header=0, usecols="A,B,C,D,E,F,G,H,I") # DataFrame转化为array DataArray = data.values # 读取已使用年限作为标签 Y = DataArray[:, 8] # 读取其他参数作为自变量,影响因素 X = DataArray[:, 0:8] # 字符串转变为整数 for i in range(len(Y)): Y[i] = int(Y[i].replace("年", "")) X = np.array(X) # 转化为array Y = np.array(Y) # 转化为array root = Tk() root.geometry("+500+260") # 背景图设置 canvas = tk.Canvas(root, width=600, height=200, bd=0, highlightthickness=0) imgpath = '1.jpg' img = Image.open(imgpath) photo = ImageTk.PhotoImage(img) #背景图大小设置 canvas.create_image(700, 400, image=photo) canvas.pack() path = StringVar() #标签名称位置 label1=tk.Label(text = "目标路径:") label1.pack() e1=tk.Entry( textvariable = path) e1.pack() bn1=tk.Button(text = "路径选择", command = selectPath) bn1.pack() bn2=tk.Button(text = "模型训练", command = train) bn2.pack() bn3=tk.Button(text = "模型预测", command = test) bn3.pack() #标签按钮等放在背景图上 canvas.create_window(50, 50, width=150, height=30, window=label1) canvas.create_window(280, 50, width=300, height=30, window=e1) canvas.create_window(510, 50, width=150, height=30, window=bn1) canvas.create_window(50, 100, width=150, height=30, window=bn2) canvas.create_window(510, 100, width=150, height=30, window=bn3) root.mainloop()