机器学习实践笔记(二)EOF
1、简单介绍:
EOF是一种分析矩阵数据中的结构特征,提取主要数据特征量的一种方法。EOF又名PCA.(嘿嘿先这么想,其实在python里就一个函数鸭,PCA可以额外写一篇进行解释,这里只写一下应用啦)。Lorenz在1950年代首次将其引入气象和气候研究。
2、原理
选定要分析的数据,进行数据预处理,通常处理成距平的形式。得到一个数据矩阵Xm×n.
数据大概就是这样的:这个原出处我也没找到,就是给大家看看数据格式。
(1)开始导入包
import pandas as pd
import numpy as np
(2)把数据转换成距平和把数据标准化。
line = np.mean(data,axis=1)
data = np.array(data)
line = np.array(line)
for i in range(line.shape[0]):data[i,:]=data[i,:]-line[i]
mu = np.mean(data, axis=0)
sigma = np.std(data, axis=0)
data = (data - mu) / sigma
(3)计算X与其转置矩阵XT的交叉积,得到方阵并求出特征值
Cm×m = 1/n×X × XT
如果X是已经处理成了距平的话,则C称为协方差阵;如果X已经标准化(即C中每行数据的平均值为0,标准差为1),则C称为相关系数阵。
这里我把我对标准化的理解说一下,我感觉这个东西是用来处理一种多维tensor可能不同的变量的方差啊等数据差异很大的问题。如X={X1,X2},X1的方差等数据远远大于X2,如果求欧几里得距离等操作的话X1对结果影响远大于X2,所以要进行标准化。
计算特征值和特征向量:
import pandas as pd
import numpy as np
import cmatheof_data =pd.read_csv(r'C:/Users/13056/Desktop/气温.csv',encoding = 'gb2312')
data = eof_data.drop(['站点'],axis=1)#来一手数据标准化
mean = np.mean(data, axis=0) # 求平均值
std = np.std(data, axis=0) # 标准差
data_zcore = (data - mean)/std
#求交叉积
data1 = np.array(data_zcore)
data2 = np.array(data_zcore.T)
data_eof = (np.dot(data1,data2))/data1.shape[1]eigenvalue,featurevector=np.linalg.eig(data_eof)
#这里说一下eigenvalue是特征值,featurevector是特征向量,俺用库做的,因为懒。
(4)求时间系数矩阵
#3求时间系数矩阵
data_e = np.zeros([data1.shape[0],data1.shape[0]])
i =0
sum1=0
for e in eigenvalue:sum1+=edata_e [i][i]=ei+=1data_T = data_e.T.dot(data1)
(5)求方差贡献率
R = []
for e in eigenvalue:k = e/sum1R.append(k)
(6)我要拿特征根大于1的数据,一共五个
i = 0
for e in eigenvalue:if e>1 :i += 1else:break
l_R = R[0:i]
l_eigenvalue = eigenvalue[0:i]
l_featurevector = featurevector[0:i]
l_eigenvalue = eigenvalue[0:i]
l_data_T =data_T[0:i]
(7)显著性检验(重点!!!)
ca=[]
ca.append(l_eigenvalue[0])
ej = l_eigenvalue *cmath.sqrt(2/i)
for m in range(i-1):if (l_eigenvalue[m+1]-l_eigenvalue[m])>=ej[m]:ca.append(l_eigenvalue[m+1])
3、画图
具体是用Echarts写的。点击这里
机器学习实践笔记(二)EOF相关推荐
- 机器学习实践笔记(一)KNN
主要是参考机器学习实践(作者peter harrington) 优点:精度高,对异常值不敏感,无数据输入假定. 缺点:计算复杂度.空间复杂度高 适用数据:数值型和标称型 个人理解:数据型是连续数据,标 ...
- 机器学习入门 笔记(二) 机器学习基础概念
第二章 机器学习基础概念 1.机器的数据 2.机器学习的主要任务 3.监督学习和非监督学习 4.批量.在线学习.参数.非参数学习 5.哲学思考 6.环境的搭建 1.机器的数据 我们以鸢尾花的数据为例. ...
- 机器学习学习笔记(二)---PR曲线
学习笔记 PR曲线 一.P和R代表什么 TP FP TN FN 基本概念 P与R 的定义 评估PR曲线 二.绘制PR曲线 代码 参考文献 一.P和R代表什么 在信息检索中,我们经常会关心"检 ...
- 机器学习实践笔记(三)时间序列数据预测
时间序列模型 1.拿到数据咱们开始分析 2.Arima 硬性基础知识 Arima模型 AR MA ARMA ARIMA 如何选择p值和q值 自相关函数ACF 建立Arima模型 数据的确定 模型预测 ...
- 吴恩达机器学习 Coursera 笔记(二) - 单变量线性回归
Model and Cost Function 1 模型概述 - Model Representation To establish notation for future use, we'll us ...
- 吴恩达机器学习 Coursera 笔记(二) - 单变量线性回归...
Model and Cost Function 1 模型概述 - Model Representation To establish notation for future use, we'll us ...
- 吴恩达“机器学习”——学习笔记二
定义一些名词 欠拟合(underfitting):数据中的某些成分未被捕获到,比如拟合结果是二次函数,结果才只拟合出了一次函数. 过拟合(overfitting):使用过量的特征集合,使模型过于复杂. ...
- Spark机器学习实战 (十二) - 推荐系统实战
0 相关源码 将结合前述知识进行综合实战,以达到所学即所用.在推荐系统项目中,讲解了推荐系统基本原理以及实现推荐系统的架构思路,有其他相关研发经验基础的同学可以结合以往的经验,实现自己的推荐系统. 1 ...
- ng机器学习视频笔记(二) ——梯度下降算法解释以及求解θ
ng机器学习视频笔记(二) --梯度下降算法解释以及求解θ (转载请附上本文链接--linhxx) 一.解释梯度算法 梯度算法公式以及简化的代价函数图,如上图所示. 1)偏导数 由上图可知,在a点 ...
最新文章
- 3寸以上java手机_7寸屏手机有哪些(堪称性价比之王的四款手机)
- 1-NET UX1000-实战-配置-Lync Server 2010-集成
- 基于JSP/SERVLET学生管理系统
- SQL SERVER中架构的理解
- vc 控制台添加托盘显示_开源:ESP8266读DHT11温湿度,小程序实时显示
- 如何构建一个流量无损的在线应用架构 | 专题尾篇
- NVIDIA显卡Linux驱动180.44正式版
- WinForm两点注意的地方
- JavaWeb--HttpSession案例
- python实现决策树ID3算法
- 日常英语:最近的药店在哪里
- 【OpneWRT】编译ipk
- srvany把程序作为Windows服务运行
- 在MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES) 拒绝访问问题解决
- 微信公众号模板消息 换行
- www.gvlib video.php,求大佬帮忙
- CommonJS模块化
- AE使用函数集10:获取图层组中的所有图层
- 《飞轮效应》 - 系统动力学 - 增强回路 - 推荐序 /刘润
- 【小技巧】爆栈?栈的大小不够用怎么办?