Sklearn

回归分析之Sklearn实现电力预测

参考原文:http://www.cnblogs.com/pinard/p/6016029.html 这里进行了手动实现,增强记忆。 1:数据集介绍 使用的数据是UCI大学公开的机器学习数据 数据的介绍在这: http://archive.ics.uci.edu/ml/datasets/Combined+Cycle+Power+Plant 数据的下载地址在这:http://archive.ics.uci.edu/ml/machine-learning-databases/00294/ 里面是一个循环发电场的数据,共有9568个样本数据,每个数据有5列,分别是:AT(温度), V(压力), AP(湿度), RH(压强), PE(输出电力)。我们不用纠结于每项具体的意思。 我们的问题是得到一个线性的关系,对应PE是样本输出,而AT/V/AP/RH这4个是样本特征, 机器学习的目的就是得到一个线性回归模型,即: $$ PE = \theta _{0} + \theta _{0} * AT + \theta _{0} * V +\theta _{0} * AP +\theta _{0}*RH $$ 而需要学习的,就是θ0,θ1,θ2,θ3,θ4这5个参数。 2:准备数据 下载源数据之后,解压会得到一个xlsx的文件,打开另存为csv文件,数据已经整理好,没有非法数据,但是数据并没有进行归一化,不过这里我们可以使用sklearn来帮我处理 sklearn的归一化处理参考:http://blog.csdn.net/gamer_gyt/article/details/77761884 3:使用pandas来进行数据的读取 import pandas as pd # pandas 读取数据 data = pd.read_csv("Folds5x2_pp.csv") data.head() 然后会看到如下结果,说明数据读取成功: AT V AP RH PE 0 8.34 40.77 1010.84 90.01 480.48 1 23.64 58.

继续阅读

数据归一化和其在sklearn中的处理

一:数据归一化 数据归一化(标准化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。 归一化方法有两种形式,一种是把数变为(0,1)之间的小数,一种是把有量纲表达式变为无量纲表达式。在机器学习中我们更关注的把数据变到0~1之间,接下来我们讨论的也是第一种形式。 1)min-max标准化 min-max标准化也叫做离差标准化,是对原始数据的线性变换,使结果落到[0,1]区间,其对应的数学公式如下: $$ X_{scale} = \frac{x-min}{max-min} $$ 对应的python实现为 # x为数据 比如说 [1,2,1,3,2,4,1] def Normalization(x): return [(float(i)-min(x))/float(max(x)-min(x)) for i in x] 如果要将数据转换到[-1,1]之间,可以修改其数学公式为: $$ X{scale} = \frac{x-x{mean}}{max-min} $$ x_mean 表示平均值。 对应的python实现为 import numpy as np # x为数据 比如说 [1,2,1,3,2,4,1] def Normalization(x): return [(float(i)-np.mean(x))/float(max(x)-min(x)) for i in x] 其中max为样本数据的最大值,min为样本数据的最小值。这种方法有个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。 该标准化方法有一个缺点就是,如果数据中有一些偏离正常数据的异常点,就会导致标准化结果的不准确性。比如说一个公司员工(A,B,C,D)的薪水为6k,8k,7k,10w,这种情况下进行归一化对每个员工来讲都是不合理的。 当然还有一些其他的办法也能实现数据的标准化。 2)z-score标准化 z-score标准化也叫标准差标准化,代表的是分值偏离均值的程度,经过处理的数据符合标准正态分布,即均值为0,标准差为1。其转化函数为 $$ X_{scale} = \frac{x-\mu }{\sigma } $$ 其中μ为所有样本数据的均值,σ为所有样本数据的标准差。 其对应的python实现为: import numpy as np #x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] def z_score(x): return (x - np.

继续阅读