gpt4 book ai didi

java - 使用 incanter 从 clojure 中的数组获取均值和协方差矩阵

转载 作者:行者123 更新时间:2023-12-02 04:29:51 26 4
gpt4 key购买 nike

我正在尝试使用 incanter1000x2 的数据结构中获取数组均值和协方差矩阵。

我的测试用例看起来是这样的

(ns test.mean-cov
(:require clojure.string
[incanter.core :as in-core]
[incanter.stats :as in-stats])
(:use clojure.java.io))

(def test-mat [[1 2] [2 2]])

(in-stats/mean test-mat)

我正在 LightTable 中运行。

我得到的错误是这样的:

java.lang.ClassCastException: clojure.lang.PersistentList cannot be cast to java.lang.Number
Numbers.java:1104 clojure.lang.Numbers.double_array
stats.clj:1492 incanter.stats/mean

我不能说我完全理解这一点,不幸的是我的谷歌搜索没有帮助。有人可以提供一个简单的解释和解决方案吗?

当然,一种糟糕的做法是

(def c1 (first (transpose test-mat)))
(def c2 (second (transpose test-mat)))

(def data-cov-mat [[(in-stats/covariance c1 c1) (in-stats/covariance c1 c2)] [(in-stats/covariance c2 c1) (in-stats/covariance c2 c2)]])

全面披露:我是 clojure 新手。

谢谢

最佳答案

对于矩阵协方差,您需要使用以下内容:

(in-stats/covariance (in-core/matrix test-mat))

对于矩阵均值 vector :

(mapv in-stats/mean (in-core/trans test-mat))

关于java - 使用 incanter 从 clojure 中的数组获取均值和协方差矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31611904/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com