@univprofblog1

大学教授

初めまして.「大学教授」さんのHPからコードを購入し学習させていただこうと考えている学生です.質問が二つあります. 一つ目です. コード購入の際,ライセンス条件が見当たらなかったのですが,コードの改変は許されているのでしょうか. 二つ目です. GTM(generative topographic mapping)の基底関数のグリッドの決定の際は,すべてを等間隔に置かなくてもよいでしょうか.私の扱いたい解析したいデータセットは,グリッドが一部等間隔ではない方がうまくいくのではないかと考えています. よろしくお願いいたします.

TAKAMUKU TAKAHIRO
ご質問およびコード購入のご検討ありがとうございます。
質問に回答させていただきます。
一つ目につきまして、コードは改変していただいて問題ございません。
二つ目につきまして、今回のGTMでは基底関数のグリッドは等間隔に置く必要がございます。申し訳ございませんがよろしくお願い致します。

Latest answers from 大学教授

初めまして。私もデータ分析を始めて間もない初心者です。目的変数が複数ある場合の回帰分析の手法についてです。目的変数を一つずつで重回帰分析を行い、その後、複数ある回帰モデルをどのように関連付けると良い結果が得られるのでしょうか。 ご回答のほど、よろしくお願いいたします。

muscat
ご質問ありがとうございます。
関連付けると申しますか、与えられた説明変数の値を、それぞれの回帰モデルに入力して、それぞれ目的変数の値を計算することになります。
目的変数の間の関係を調べたい場合は、目的変数のみで主成分分析などの手法を用いるのがよいかと思います。

「データを準備するだけ!PythonでEGO!目的変数が複数」を購入した者です。サンプルデータを使用して実行してみたのですが、「operands could not be broadcast together with shapes (50,10) (8,) 」というエラーが発生してしまいました。どうすれば実行できますでしょうか。大変お手数ですが、返信よろしくお願いします。

muscat
ご質問ありがとうございます。
またこのたびはプログラムのご購入をいただき感謝致します。
プログラムについてご不便をおかけ致しまして申し訳ございません。
サンプルデータについて、今回は目的変数の数を 3 にしているにもかかわらず、data.csvの説明変数の数と、data_prediction2.csvの説明変数の数とが異なることが原因でした。
data_prediction2.csvを開いていただき、X1 と X2 の二列を削除していただけないでしょうか。
申し訳ございませんがよろしくお願い致します。

クロスバリデーション(CV)について質問です。一般的に、時系列データの予測モデルを作るときにCVを行うことは受け入れられているのでしょうか?CVでは、データ全体をいくつかの塊(K個)に分割して、K個の中から1つをテストデータにして、それ以外をモデル構築データにして精度を図るという行為をK個すべてに対して行うものだと思いますが、そうすると(時系列の場合)テストデータに対してまだ存在していないはずのデータを使ってモデル構築するパターンがでてきてしまうため、そもそもこの手法自体が使えないんじゃないかなと思うのですが、そのあたりってどう考えたらいいのでしょうか??

anger
ご質問ありがとうございます。
基本的には、時系列データでも普通のデータと同じようにクロスバリデーションをします。おっしゃる通り、クロスバリデーションの中では時間の概念はありません。ただ、問題なくハイパーパラメータの設定はできます。
クロスバリデーションはハイパーパラメータの最適化と割り切って用いて、ハイパーパラメータを決めた後に、トレーニングデータより後の時間のテストデータで予測性能を検証する、といった考え方がよいと思います。

11の見える化・可視化手法を一気に実行して結果を比較する!で以下のエラーコードにはどのように対処したらよいでしょうか。これは匿名でお願いします。 ValueError: Error in determining null-space with ARPACK. Error message: 'Factor is exactly singular'. Note that method='arpack' can fail when the weight matrix is singular or otherwise ill-behaved. method='dense' is recommend

TEMOSANA’s Profile PhotoTS
ご質問いただきありがとうございます。
このたびはご不便をおかけ致しまして申し訳ございません。
85, 92, 99行目をそれぞれ
Score_LLE = manifold.LocallyLinearEmbedding(n_neighbors=n_neighbors_LLE, n_components=2,eigen_solver="dense").fit_transform(X)
Score_MLLE = manifold.LocallyLinearEmbedding(n_neighbors=n_neighbors_MLLE, n_components=2, method='modified', modified_tol=modified_tol_MLLE,eigen_solver="dense").fit_transform(X)
Score_HLLE = manifold.LocallyLinearEmbedding(n_neighbors=n_neighbors_HLLE, n_components=2, method='hessian', modified_tol=modified_tol_HLLE,eigen_solver="dense").fit_transform(X)
に変更するとよいかと存じます。
よろしくお願い致します。

お世話になります。SVMを用いて、正規乱数の2乗で作成した5つの変数Xの和を目的変数として、サンプル数を変化させました。サンプル数を変化させてシミュレーションしましたが、サンプル数が20未満では次のエラーが出てシミュレーション停止となる場合がありました。Error in predict.svm(ret, xhold, decision.values = TRUE) : Model is empty!以上です。よろしくお願い致します。

nagakura katsuhiko
再度のご連絡ありがとうございます。
エラーを拝見致しましたところ、SVRモデルが構築されていないようです。
28行目の
TunedSVR = ...
の手前で、X や Y を確認して、変な値が入っていないかや値が同じ変数がないかなど確認されるとよいと思います。
ちなみに、こちらではサンプル数 20未満でも問題なくSVRのモデル構築ができております。
よろしくお願い致します。

コピペだけで実用的かつ実践的なSVM (MATLAB・R・Python)を購入した者です。サンプル数を変化させた計算を行いましたが、サンプル数が20よりも少なくなるとエラーが出て計算でSきません。説明変数は5です。一般に、SVRの使用範囲をご教示頂けると助かります。

nagakura katsuhiko
このたびはご購入いただき感謝申し上げます。
ご不便をおかけ致しまして申し訳ございません。
エラーの原因を特定するため、エラーメッセージを教えていただけないでしょうか?
お手数おかけ致しまして申し訳ございません。
よろしくお願い致します。

お手数ですが、leave one out においてNLSVRResltGS.grid_scores_の返り値の確認を頂けませんでしょうか。全てのハイパラメーターの組み合わせに対してデータの予測値が0になっています。よろしくお願いいたします。

H.A
再度のご指摘をいただき感謝申し上げます。
こちらでも同じ状況になることを確認致しました。
該当する箇所を
NLSVRResltGS = GridSearchCV(svm.SVR(kernel='rbf', gamma=OptimalNLSVRGamma), TunedParameters, cv=FoldNumber, scoring='neg_mean_squared_error' )
に変更していただけないでしょうか?
他にも GridSearchCV が使われているところで、
scoring='neg_mean_squared_error'
を追加すると leave one out でも正常に動作致します。
お手数をおかけ致しまして申し訳ございませんがよろしくお願い致します。

以前、12の変数選択手法、10の回帰分析手法についてleave one outの実装をお願いしたものです。10の回帰分析手法において、13dataでleave one out(FoldNumber = 13)を行うと、NLSVRのハイパラメーターの最適値が最も精度が高いものになりません。grid_scores_で値を見てみると、予測値が全て0になっている事が恐らく原因だと考えられます。恐らくGridSearchCVを用いている他の手法も同様のトラブルが発生していると考えられます。お手数ですが、どのようにスクリプトを変更すれば良いのかご教授頂けませんでしょうか。

H.A
ご質問いただきありがとうございます。
ご不便をおかけ致しまして申し訳ございません。
ご質問の中に、
> NLSVRのハイパラメーターの最適値が最も精度が高いものになりません。
とございましたが、ここでおっしゃっている "精度が高い" とは具体的に何のことをおっしゃっているのでしょうか?
ちなみに、NLSVRのGridSearchCVではクロスバリデーション (質問された方の状況ですと leave one out クロスバリデーション) 後の r2 が最大になるようにハイパーパラメータを選んでいます。
よろしくお願い致します。

回帰分析について質問です。 以前PLSのスクリプトを購入したのですが、PLS以外にも多重共線性に強い手法としてリッジがあることを知りました。 PLSとリッジの特徴の違い等を教えて頂けたら幸いです。 宜しくお願い致します。

data_analysis’s Profile Photoanalyzer
ご質問ありがとうございます。
PLSとリッジ回帰の違いについてはこちらに書きました。
http://univprof.com/archives/16-06-08-3768097.html
ご参照ください。

いつも大学教授様のHPを参考にデータ解析の勉強をさせて頂いております。 そこで質問なのですが、どんな手法でも前処理としてオートスケーリングはするものなのでしょうか? そろそろ自分の力で実装してみようと考えております。混合分布モデルに興味を持って実践しようとしているのですが、これにも前処理としてオートスケーリングが必要なのか考えている次第です。 ご回答宜しくお願い致します。

data_analysis’s Profile Photoanalyzer
ご質問ありがとうございます。
はい、基本的にどんな手法でも前処理としてオートスケーリング(標準化)をするものです。混合分布モデルのときも例外ではありません。
実装頑張ってください。

Language: English