小编Hew*_* Xu的帖子

为什么我的julia代码运行得这么慢?

redim = 2;
# Loading data
iris_data = readdlm("iris_data.csv");
iris_target = readdlm("iris_target.csv");

# Center data
iris_data = broadcast(-, iris_data, mean(iris_data, 1));
n_data, n_dim = size(iris_data);

Sw = zeros(n_dim, n_dim);
Sb = zeros(n_dim, n_dim);

C = cov(iris_data);


classes = unique(iris_target);

for i=1:length(classes)
    index = find(x -> x==classes[i], iris_target);
    d = iris_data[index,:];
    classcov = cov(d);
    Sw += length(index) / n_data .* classcov;
end
Sb = C - Sw;

evals, evecs = eig(Sw, Sb);
w = evecs[:,1:redim];
new_data = iris_data * w;
Run Code Online (Sandbox Code Playgroud)

此代码仅对iris_data执行LDA(线性判别分析).将iris_data的尺寸减小到2.大约需要4秒,但Python(numpy/scipy)只需要大约0.6秒.为什么?

performance julia

4
推荐指数
1
解决办法
981
查看次数

标签 统计

julia ×1

performance ×1