我正在尝试通过部分旋转来实现我自己的 LU 分解。我的代码在下面,显然工作正常,但对于某些矩阵,与内置的相比,它给出了不同的结果[L, U, P] = lu(A)matlab 中函数
谁能看出哪里错了?
function [L, U, P] = lu_decomposition_pivot(A)
n = size(A,1);
Ak = A;
L = zeros(n);
U = zeros(n);
P = eye(n);
for k = 1:n-1
for i = k+1:n
[~,r] = max(abs(Ak(:,k)));
Ak([k r],:) = Ak([r k],:);
P([k r],:) = P([r k],:);
L(i,k) = Ak(i,k) / Ak(k,k);
for j = k+1:n
U(k,j-1) = Ak(k,j-1);
Ak(i,j) = Ak(i,j) - L(i,k)*Ak(k,j);
end
end
end
L(1:n+1:end) = 1;
U(:,end) = Ak(:,end);
return …Run Code Online (Sandbox Code Playgroud) 我使用的是fourier()和fourierf()功能罗恩海德门的出色forecast包河展望验证的相同条款是否被选中,并在使用fourier()和fourierf(),我策划了几个输出项.
以下是使用的原始数据ts.plot(data).在时间序列中,频率为364,仅供参考. 
以下是使用术语的图表fourier(data,3).基本上,它看起来像现有数据的镜像.

再看看输出的sin1项,我们得到一些变化,显示类似的364天季节性与上述数据一致.

但是,当我使用fourierf(data,3, 410)以下数据绘制傅里叶预测的结果时.它似乎比原始fourier函数提供的术语更加平滑.

所以,我想知道的结果fourier()和fourierf()有关.是否可以只看到一个合并的傅立叶结果,以便您可以看到通过现有数据然后通过预测期间的罪或余弦结果?如果没有,我如何确认通过fourierf()拟合样本数据创建的术语?
我想在与其他外部回归量的函数auto.arima或glm函数中使用它,如下所示:
trainFourier<-fourier(data,3)
trainFourier<-as.data.frame(trainFourier)
trainFourier$exogenous<-exogenousData
arima.object<-auto.arima(data, xreg=trainFourier)
futureFourier<-fourierf(data,3, 410)
fourierForecast<-forecast(arima.object, xreg=futureFourier, h=410)
Run Code Online (Sandbox Code Playgroud)
并且想要完全确定auto.arima具有适当的拟合(使用术语from fourier())到我将在xreg下放入的内容forecast(其中包含来自不同函数的术语,即ffourier()).
根据Zeckendorf定理,每个正整数都可以以唯一的方式写为非连续的不同斐波那契数之和。可以使用贪婪算法轻松找到这种分解,该算法主要包括减去适合并迭代的最大斐波那契数,例如:
20 = 13 + 7 = 13 + 5 + 2
但是,该定理还暗示,任何整数(也<= 0)作为唯一的,非连续的negaFibonacci数之和具有唯一分解,即序列
0、1,-1、2,-3、5,-8,...
或F _(-n)=(-1)^(n + 1)F_n。一些例子:
-4 = - 3 - 1
4 = 5 + 1
11 = 13 - 3 + 1
是否有已知的简便算法以这种方式分解给定整数?
我试图通过 ml.linalg 方法使用 PCA 来减少广泛的数据集(51 个特征,约 1300 个个体),如下所示:
1)将我的列命名为一个列表:
features = indi_prep_df.select([c for c in indi_prep_df.columns if c not in{'indi_nbr','label'}]).columns
Run Code Online (Sandbox Code Playgroud)
2)导入必要的库
from pyspark.ml.feature import PCA as PCAML
from pyspark.ml.linalg import Vector
from pyspark.ml.feature import VectorAssembler
from pyspark.ml.linalg import DenseVector
Run Code Online (Sandbox Code Playgroud)
3)将特征折叠为 DenseVector
indi_feat = indi_prep_df.rdd.map(lambda x: (x[0], x[-1], DenseVector(x[1:-2]))).toDF(['indi_nbr','label','features'])
Run Code Online (Sandbox Code Playgroud)
4)删除除了保留索引的功能之外的所有内容:
dftest = indi_feat.drop('indi_nbr','label')
Run Code Online (Sandbox Code Playgroud)
5)实例化PCA对象
dfPCA = PCAML(k=3, inputCol="features", outputCol="pcafeats")
Run Code Online (Sandbox Code Playgroud)
6)并尝试拟合模型
PCAout = dfPCA.fit(dftest)
Run Code Online (Sandbox Code Playgroud)
但我的模型无法收敛(错误如下)。我尝试过的事情: - 均值填充或零填充 NA 和 Null 值(视情况而定) - 减少特征数量(减少到 25 个,然后我改用 SKlearn 的 PCA)
Py4JJavaError: An error occurred …Run Code Online (Sandbox Code Playgroud) 我有一个字符串,我正在尝试分解时间序列数据。每个数据点对应于给定月份的开始日期,如下所示:
A <- c(5,6,7,8,9,8,5,6,10,11)
Run Code Online (Sandbox Code Playgroud)
我使用以下方法将数据转换为时间序列:
A1 <- as.ts(A, frequency=12)
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用以下方法进行分解:
decompose(A1)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
时间序列没有或少于 2 个周期`
我还使用该zoo包创建了类似的时间序列,但得到了相同的结果。
有什么想法吗?
有一篇关于在 Python 中检查矩阵是否为 PSD 的文章。我想知道我们如何在 PyTorch 中检查它?有这个功能吗?
我有一个临时 DF,其中包含以下数据
Quarter
2016Q3 146660510.0
2016Q4 123641451.0
2017Q1 125905843.0
2017Q2 129656327.0
2017Q3 126586708.0
2017Q4 116804168.0
2018Q1 118167263.0
2018Q2 121633740.0
2018Q3 125314447.0
2018Q4 120994896.0
2019Q1 126124709.0
2019Q2 134753318.0
Run Code Online (Sandbox Code Playgroud)
我将其作为季度数据传递到季节分解中,如下所示,但我收到一条错误消息,指出“轴必须设置freq为转换为周期”。频率已在 DF 中设置。我认为这个问题与您必须向 matplotlib 指定 x 轴是句点这一事实有关,但我不知道如何做到这一点,并且找不到使用带有四分之一的DecomposeResult对象的任何其他示例
result = seasonal_decompose(temp, model='additive',period=4)
result.plot()
plt.show()
Run Code Online (Sandbox Code Playgroud) python中有没有可用的程序包来执行独立组件分析(ICA)?
请提供一些指针和链接,以便我可以从python开始。
我有一个在 R 中xts调用的时间序列hourplot,周期为 24(每小时数据)超过两周,由POSIXlt类的时间戳对象索引,如下所示:
> dput(hourplot)
structure(c(1, 1, 1, 1, 1, 1, 1.11221374045802, 1.3368, 1.18,
1.0032, 1, 1, 1, 1, 1, 1, 1.0736, 1.2536, 1, 1.0032, 1.1856,
1.0048, 1, 1, 1, 1, 1, 1, 1, 1, 1.04045801526718, 1.20229007633588,
1.00229007633588, 1, 1, 1, 1, 1, 1, 1, 1.1152, 1.008, 1, 1, 1.2648,
1.1832, 1, 1, 1, 1, 1, 1, 1, 1.0424, 1.2952, 1.6496, 1.1208,
1.0216, 1, 1, 1, 1, 1, 1, 1.1256, 1, 1, 1, …Run Code Online (Sandbox Code Playgroud) bfast 包中的函数bfast()应该能够检测长期趋势的断点和季节性成分的变化。下图就是一个例子(来源):

在此图中,子图编号。图 2 显示了检测到的季节性变化,而没有。图3显示了趋势中的断点。
但是,我不明白如何告诉bfast()寻找季节性的变化/断点。我得到的只是长期趋势中的断点。这是一个可重现的示例,通过每周测量季节性变量y(即每年 52 次测量)来模拟 50 年的时间序列:
n_years <- 50
freq <- 52
y_pattern <- sin(seq(0, 2*pi, length = freq))
y <- rep(y_pattern, n_years) + rnorm(freq*n_years, sd = 0.1)
mydata <- data.frame(Year = rep(1:n_years, each = freq), Week = rep(1:freq, n_years), y)
Run Code Online (Sandbox Code Playgroud)
这些数据显示了数据中恒定的季节性趋势,在第 13 周左右出现年度峰值。现在,让我们介绍第 25 年的季节性变化,将 26-59 年的季节性周期转移到 8 周后:
move_data <- function(data, year, weeks_to_move){
x <- data[data$Year == year, "y"]
c(x[seq(52 - weeks_to_move + 1,52)], x[seq(1, 52 …Run Code Online (Sandbox Code Playgroud) decomposition ×10
r ×4
time-series ×3
matrix ×2
algorithm ×1
data-science ×1
fibonacci ×1
forecasting ×1
greedy ×1
math ×1
matlab ×1
matplotlib ×1
pca ×1
pyspark ×1
python ×1
python-3.x ×1
pytorch ×1
xts ×1