相关系数

numpy股票相关性分析

心已入冬 提交于 2019-11-28 01:43:37
基础知识-协方差 协方差其意义: 度量各个维度偏离其均值的程度。协方差的值如果为正值,则说明两者是正相关的(从协方差可以引出“相关系数”的定义),结果为负值就说明负相关的,如果为0,也是就是统计上说的“相互独立”。 如果正相关,这个计算公式,每个样本对(Xi, Yi), 每个求和项大部分都是正数,即两个同方向偏离各自均值,而不同时偏离的也有,但是少,这样当样本多时,总和结果为正。下面这个图就很直观。下面转载自:http://blog.csdn.net/wuhzossibility/article/details/8087863 在概率论中,两个随机变量 X 与 Y 之间相互关系,大致有下列3种情况: 当 X, Y 的联合分布像上图那样时,我们可以看出,大致上有: X 越大 Y 也越大, X 越小 Y 也越小,这种情况,我们称为“正相关”。 当X, Y 的联合分布像上图那样时,我们可以看出,大致上有:X 越大Y 反而越小,X 越小 Y 反而越大,这种情况,我们称为“负相关”。 当X, Y 的联合分布像上图那样时,我们可以看出:既不是X 越大Y 也越大,也不是 X 越大 Y 反而越小,这种情况我们称为“不相关”。 怎样将这3种相关情况,用一个简单的数字表达出来呢? 在图中的区域(1)中,有 X>EX ,Y-EY>0 ,所以(X-EX)(Y-EY)>0; 在图中的区域(2)中,有 X

EfficientNet学习笔记

本小妞迷上赌 提交于 2019-11-27 16:55:07
EfficientNet是谷歌大脑在2019年提出的,论文地址是: https://arxiv.org/pdf/1905.11946.pdf 这篇文章主要想解决的一个问题是, 如何平衡网络的深度、宽度和分辨率来提高模型的准确率 。 通常而言,提高网络的深度、宽度和分辨率来扩大模型,从而提高模型的泛化能力。但如果单一提高某个参数的话,模型准确率很快会达到饱和,如下图所示。 因此,需要同时对深度、宽度和分辨率来进行调整。作者提出了“复合相关系数(compound coefficient)”来动态提高这3个参数,如下图所示,(a)是baseline model,(b)-(d)是单一提高某个参数,(e)是3个参数动态调整。 最终得到的结果,如下图所示。就EfficientNet-b0而言,其准确率比ResNet50还高,参数量更少和FLOPS更低(不知道FLOPS能否代表速度的意思?)。从总体而言,在同等参数量下,EfficientNet系列都完胜其他网络。 下面,我们具体来了解一下EfficientNet的细节。 前文提及到,动态调整深度、宽度和分辨率能提高网络的准确率,那么谷歌是如何做的?通过实验,作者得到了两个结论: 扩大网络中深度、宽度或者分辨率的任一维度能提高模型的准确率,但随着模型的扩大,这种准确率的增益效果会逐步消失; 为了更好的准确率和效率,很有必要去平衡提升网络中深度

【Python】当你有10000+个一维向量, 怎么算相关系数最快?

帅比萌擦擦* 提交于 2019-11-26 16:39:10
背景 最近工作中需要用python计算大量的一维向量之间的相关系数, 其中: 测试数据: (1000, 100) one of them (100,) 模板数据: (1000, 100) one of them (100,) 那么就需要计算1,000,000次相关系数,那么在这种情况下, 计算效率就变得很重要了. 常见的几种计算相关系数的方法有: 基于Pandas DataFrame.corr() 实践了特别慢, 需要构建frame, 不推荐. 基于Numpy 1. np.cov() 这个是算协方差, 后续还需要手写代码进一步计算相关系数 2.np.corrcoef() 这个其实就是皮尔森系数的numpy实现, 算线性相关的. 基于scipy的三大相关性系数 (pearson系数, spearman系数, kendll系数) 3.stats.pearsonr() 皮尔森系数, 协方差cov(X,Y)除以它们各自标准差的乘积(σX, σY). 计算正态分布数据的线性关系, 非线性关系上表现差.优点是计算简单, 结果就是相关系数r, 也比较好理解. 4.stats.spearmanr() 斯皮尔曼相关性系数, 可以理解为秩次之间的相关性, 只计算他们之间分别排序以后的位置的差距, 不在乎真实的数值. 需要用计算出来的p值和一个spearman秩相关系数界值表对比, 比较麻烦,

线性回归 - 机器学习多元线性回归 - 一步一步详解 - Python代码实现

风流意气都作罢 提交于 2019-11-26 15:33:31
目录 数据导入 单变量线性回归 绘制散点图 相关系数R 拆分训练集和测试集 多变量线性回归 数据检验(判断是否可以做线性回归) 训练线性回归模型 先甩几个典型的线性回归的模型,帮助大家捡起那些年被忘记的数学。 ● 单变量线性回归: h(x)=theta0 + theta1* x 1 ● 多变量线性回归: h(x)=theta0 + theta1* x 1 + theta2* x 2 + theta3* x 3 ● 多项式回归: h(x)=theta0 + theta1* x 1 + theta2* (x2^2) + theta3* (x3^3) 多项式回归始终还是线性回归,你可以令x2=x2^2,x3=x3^3,简单的数据处理一下就好了,这样上述多项式回归的模型就变成多变量线性回归的模型了。 数据导入 下面我们要开始用数据说话了,先来看看数据源是什么样子吧。 import pandas as pd import numpy as np import matplotlib.pyplot as plt from pandas import DataFrame,Series from sklearn.cross_validation import train_test_split from sklearn.linear_model import LinearRegression