Python—随机生成数据 拟合模型

在很多情况下,大家的工作会遇到y数据与x数据存在相关性,但无法知道y与x是那种相关,需要具体知道两者关系,我们可以用拟合模型来完成这个事情。

1:随机源数据

很多初学者想动手尝试的时候,苦于无源数据,就此放弃。今天小编教大家一个生成随机数据的方法。

用到numpy,pandas 两个python库。

Numpy:是python科学计算的基础包。它提供以下功能(不限于此):

快速高效的多维数组对象ndarry

用于对数组执行元素级计算以及直接对数组执行数学运算的函数

用于快速读写硬盘上基于数组的数据集工具

线性代数运算,傅里叶变换,以及随机数生成

Pandas:提供了快速便捷处理结构化数据的大量数据结构和函数。

代码:

import numpy as np

import pandas as pd

data_df = pd.DataFrame(array)

print data_df

writer = pd.ExcelWriter('Save_Excela.xlsx')

data_df.to_excel(writer,'page_1',float_format='%.5f')# float_format 控制精度

writer.save()

如下是执行代码后,打印出来的结果。

2:刻意生成---线性关系源数据

现在大家已经自行能够生成随机数据,显然20列数据是没有任何关系的,刚刚小编刻意保留了本地文件Save_Excela.xlsx,代码执行完成后,各位打开excel文件,插入Y列,生成与第一列相关的数据。如下

writer = pd.ExcelFile('Save_Excela.xlsx')

table1=writer.parse('page_1')

array0 = table1.get(0) ##第一列数据

Yi= [x for x in array0] ##目的是去掉角标,只有参与模型的值

array01 = table1.get(1)

Xi= [x for x in array01]

print array0

print Yi

print Xi

如下结果分别问:array0,Yi ,Xi

3:数据模型

3.1:简单介绍

先介绍一个相关的库:Scikit—Learn

是一个强大的机器学习的库,刻意提供完整的机器学习工具箱,包括数据预处理,分类,回归,聚类,预测和模型分析。

如下,我们开头随机生成20*20数据,多了几行代码。

from pandas import Series,DataFrame ##导入数据结构(目的是转换成array识别的数组)

from sklearn import linear_model ##导入线性回归模型

import matplotlib.pyplot as plt ##导入matplotlib

假设,我们并没有from pandas importSeries,DataFrame ##导入数据结构(目的是转换成array识别的数组)

那么执行模型会出现如下情况:

3.2:数据转换

转换成识别的格式

3.3:开始建模

如下结果:

1表示呈线性相关,系数为25,拟合图形如下:

如下是y与第二列的数据拟合图形:显然不成线性相关

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180710G0NDCG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券