在很多情况下,大家的工作会遇到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与第二列的数据拟合图形:显然不成线性相关
领取专属 10元无门槛券
私享最新 技术干货