問題タブ [incanter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
clojure - Incanterを使用したClojureでのロジスティック回帰のBFGS最小化アルゴリズムとの闘い
Incanter データ分析ライブラリを使用して、単純なロジスティック回帰の例を Clojure に実装しようとしています。シグモイド関数とコスト関数のコーディングは成功しましたが、Incanter の BFGS 最小化関数がかなりの問題を引き起こしているようです。
(minimize (cost-func X y) (matrix [0 0]))
関数を指定してパラメーターを開始しようとminimize
すると、REPL がエラーをスローします。
最小化機能が正確に何を期待しているのかについて、私は非常に混乱しています。
参考までに、すべて Python で書き直したところ、同じ最小化アルゴリズムを使用して、すべてのコードが期待どおりに実行されました。
出力中
Python コードが正常に実行できる理由がわかりませんが、私の Clojure 実装は失敗します。助言がありますか?
アップデート
新しいエラーをスローするminimize
導関数を計算しようとしていたため、ドキュメント文字列を読み直しました。cost-func
を使用trans
して 1xn col マトリックスを nx1 行マトリックスに変換すると、反対のエラーで同じエラーが発生します。
:asize [1 2], :bsize [2 1]}
私はここでかなり迷っています。
maven - clojars または maven で incanter-datasets または -stats jars が見つかりません
インカンターを使おうとしているとき、私は非常に奇妙なことを経験しています。私の lein project.clj ファイルで、-datasets と -stats (およびコアなど) の依存関係を設定し、「lein deps」を実行すると、これらの jar が maven または clojar リポジトリに見つからないことが報告されます。~/.m2/repositories/incanter を見ると、1.5.4 データセットと統計用のフォルダーがありますが、jar は含まれていません。他のすべての incanter パッケージには、1.5.4 jar と 1.4.1 などの古いバージョンがあります。うまくいけば、誰かがこれらの不足しているアイテムに光を当てることができます.
clojure - incanter 自体以外に、clojure/core/matrix クラスまたは .clj を期待する名前空間を incanter するのはなぜですか?
私が持っている.cljファイルでは(「(incanter core io ...)を使用してください)。そのコードを評価しようとすると、次のエラーが発生します: コードを次のように変更した場合: (use '(incanter))、必要な名前空間が使用できないことを除いて、すべて問題ありません。これは予想されることです。過去 18 か月間、jEdit と clojure プラグインを非常に満足して使用しており、クラスパスが問題ないことを綿密に確認しました。私は('... math.combinatoricsを使用して)試してみました.csvおよびjson jar(これらはすべて正常に機能しました)で、jEdit構成の問題ではないことを合理的に確認しました。clojure/core jar で「matrix」を探しましたが、見つかりませんでした。この問題を解決するための助けをいただければ幸いです。
さらに調査した結果、問題の原因を突き止めたと思います。clatrix-0.3.0 名前空間宣言では、clojure.core.matrix が必要です。クラスパスから clatrix を削除して評価 ('(incanter core ...) を使用) すると、次のエラーが発生します。 RT.java:443)。clatrix がクラスパスに追加されると、元のエラーが発生します (つまり、clojure.core.matrix が見つかりません)。Incanter-core には Matrix.class ファイルがあります。incanter は clojure.core に依存する clatrix に依存しているようです。存在しないマトリックス。この問題をどのように解決しますか、または回避策はありますか?
clojure - インカンターへの依存
次のリンクhttp://data-sorcery.org/category/pca/を実装しようとしていますが、必要な Incanter ライブラリをロードしようとして立ち往生していることに気付きました。
私が Incanter に持っている唯一の依存関係は[incanter "1.5.4"]
. ライブラリをロードするのにこれで十分ですか?
リンクで強調表示された 4 つのライブラリをロードする方法がよくわかりません。以前、REPL で Incanter を使用できたことに注意してください。
編集:私のテキストエディタには次のものがあります
エラーを返すCompilerException javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name, compiling:(pca.clj:11:22)
エラーは、内部部分、つまり get-dataset に起因するようです...修正方法がわかりません。
clojure - REPLを開く際の問題
新しいREPLを起動するたびに、常に同じメッセージが表示されます。
私が使用してきた名前空間はns test-app.core
REPL は引き続き表示され、それを使用してコードを実行できます。これが、インカンターや他のライブラリを操作しようとするなど、将来の問題につながるかどうかはわかりません。
clojure - Incanter 行列をネストされたベクトルに変換する
Incanter 行列を出力する関数を考えてみましょう。
関数からの出力を含むマトリックスの例を次に示します。
ポイントを表すマトリックスの行の分析を続けたいと思います。Incanter マトリックスにフィードしたい関数は、ネストされたベクトルを入力として受け取ります。
したがって、関数は上記のデータをフォームで必要とします
インカンター行列表現からネストされたベクトル構造への変換で、実行方法が不明です。データの表現を変換する簡単な方法はありますか?
clojure - ネストされたベクトルのプロット
次のようなネストされたベクトルを出力する関数を考えてみましょう。
一重括弧の間、つまり[-0.6925523827697917 -0.4095089425269985]
はデカルト座標にプロットされる数値です。
さらに、別のブラケット内にベクトルがあります。つまり、
[[0.7203362514229046 -0.3494564274369062]]
これはクラスターを表します。
上記のベクトルであるポイントをプロットし、クラスター内のポイントを結ぶ線を描画しようとしています。したがって、クラスター内のポイントは[[-0.6925523827697917 -0.4095089425269985] [-0.03856010899727634 0.8427233420960013] [-2.609986195686694E-13 -1.680032093051418E-12]]
接続されます。
私の最初の考えは、Incanter の xy-plot を使用することです。私が確信していない部分は、ベクトルなどのインデックス付き構造からプロット上のポイントに移動する方法です。さらに、クラスター化されたポイントを結ぶ線を引く方法がわかりません。上記の例では、最初のクラスター内の 3 つのポイントを通る 1 本の線 (できれば滑らかな線) が必要です。クラスター内には 1 つのポイントしかないため、最後のクラスターを通る線はありません。