python pp模块_Python ppdire包_程序模块 - PyPI - Python中文网

true时才创建属性

白化:白化数据矩阵(通常表示为k)

混合:混合矩阵估计

缩放对象:从sprm.robcent缩放对象

方法适合(x,*args,**kwargs):适合型号

预测(x):根据拟合进行预测

转换(x):将x投影到潜在空间上

getattr():获取属性列表

setattr(*kwargs):设置SPRM对象的单个属性

函数接受几个可选的输入参数。这些是旗帜

通常不需要交叉验证。它们是:y,numpy向量或1d矩阵,直接作为arg或作为kwarg

h,int.覆盖n_components的单个调用fit。小心使用。

dmetric,内部使用str.距离度量。默认为'euclidean'

混合,布尔。返回混合矩阵?

回归方法的进一步参数可以在这里传递

作为附加kwargs

辅助功能dicomo(类):(共-)矩

capi(类):共矩分析投影索引

示例

加载和准备数据

运行玩具示例:源包和数据:# Load data

import pandas as ps

import numpy as np

data = ps.read_csv("./data/Returns_shares.csv")

columns = data.columns[2:8]

(n,p) = data.shape

datav = np.matrix(data.values[:,2:8].astype('float64'))

y = datav[:,0]

X = datav[:,1:5]

# Scale data

from sprm import robcent

centring = robcent()

Xs = centring.fit(X)

pp估计值与scikit learn的比较

让我们首先运行ppdre来生成

PCA和PLS。这样可以很容易地验证算法是否正确。投影寻踪作为一种计算主成分分析的缓慢、近似的方法。比较:# PCA ex Scikit-Learn

import sklearn.decomposition as skd

skpca = skd.PCA(n_components=4)

skpca.fit(Xs)

skpca.components_.T # sklearn outputs loadings as rows !

# PP-PCA

from ppdire import dicomo, ppdire

pppca = ppdire(projection_index = dicomo, pi_arguments = {'mode' : 'var'}, n_components=4)

pppca.fit(X)

pppca.x_loadings_

同样,投影追踪作为计算pls的一种缓慢、近似的方法。比较:# PLS ex Scikit-Learn

skpls = skc.PLSRegression(n_components=4)

skpls.fit(Xs,(y-np.mean(y))/np.std(y))

skpls.x_scores_

skpls.coef_

Xs*skpls.coef_*np.std(y) + np.mean(y)

# PP-PLS

pppls = ppdire(projection_index = dicomo, pi_arguments = {'mode' : 'cov'}, n_components=4, square_pi=True)

pppls.fit(X,y)

pppls.x_scores_

pppls.coef_scaled_ # Column 4 should agree with skpls.coef_

pppls.fitted_

注:基于潜在变量投影的降维技术,

如pca、pls和ica等,都是与分量相关的不确定符号。

因此,不同算法的估计符号可能是相反的,但是

绝对值应与算法精度相同。这里,这意味着

sklearn和ppdre'sx嫒scores嫒u和x嫒loadings可能有相反的迹象,

然而,系数和拟合响应应该是相同的。

稳健投影寻踪估计基于中值绝对偏差(mad)的稳健主成分分析[3]。lcpca = ppdire(projection_index = dicomo, pi_arguments = {'mode' : 'var', 'center': 'median'}, n_components=4)

lcpca.fit(X)

lcpca.x_loadings_

# To extend to Robust PCR, just add y

lcpca.fit(X,y,ndir=1000,regopt='robust')

基于修剪(co)方差的稳健连续回归[4]rcr = ppdire(projection_index = dicomo, pi_arguments = {'mode' : 'continuum'}, n_components=4, trimming=.1, alpha=.5)

rcr.fit(X,y=y,ndir=1000,regopt='robust')

rcr.x_loadings_

rcr.x_scores_

rcr.coef_scaled_

rcr.predict(X)

备注:对于rcr,continuum参数alpha调整多个

通过PLS(alpha->0)回归到PCR(alpha=1)。当然,

robust pls选项也可以通过pi_arguments={'mode':'cov'},trimming=.1

投影寻踪广义betas

使用

共矩分析投影指数(capi)[2]。from ppdire import capi

est = ppdire(projection_index = capi, pi_arguments = {'max_degree' : 3,'projection_index': dicomo, 'scaling': False}, n_components=1, trimming=0,center_data=True,scale_data=True)

est.fit(X,y=y,ndir=200)

est.x_weights_

# These data aren't the greatest illustration. Evaluating CAPI

# projections, makes more sense if y is a market index, e.g. SPX

通过scikit learn进行交叉验证

from sklearn.model_selection import GridSearchCV

rcr_cv = GridSearchCV(ppdire(projection_index=dicomo,

pi_arguments = {'mode' : 'continuum'}),

cv=10,

param_grid={"n_components": [1, 2, 3],

"alpha": np.arange(.1,3,.3).tolist(),

"trimming": [0, .15]

}

)

rcr_cv.fit(X[:2666],y[:2666])

rcr_cv.best_params_

rcr_cv.predict(X[2666:])

数据压缩

而ppdre非常灵活,可以根据非常广泛的种类进行投影

对于投影索引,它可能需要计算。对于平面数据表,

已内置解决方案。# Load flat data

datan = ps.read_csv("./ppdire/data/Glass_df.csv")

X = datan.values[:,100:300]

y = datan.values[:,2]

# Now compare

rcr = ppdire(projection_index = dicomo,

pi_arguments = {'mode' : 'continuum'},

n_components=4,

trimming=.1,

alpha=.5,

compression = False)

rcr.coef_

rcr = ppdire(projection_index = dicomo,

pi_arguments = {'mode' : 'continuum'},

n_components=4,

trimming=.1,

alpha=.5,

compression = True)

rcr.coef_

但是,如果数据包含几个低比例,压缩将无法正常工作

可变值。在本例中,它不适用于x=datan.values[:,8:751]。这个

将发出警告,并且ppdre将在不压缩的情况下继续。

独立调用投影索引

dicomo和capi都可以作为调用矩的一致框架

它们本身,或它们的线性组合。让我们从

数据:pip install ppdire0

现在计算一些力矩,并将它们与

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值