データサイエンス

データサイエンスの専門家、機械学習の専門家、およびこの分野に関する知識が豊富な方へ

1
XGBoost線形回帰の出力が正しくない
私はXGBoostの初心者なので、無知です。これがPythonコードです: import pandas as pd import xgboost as xgb df = pd.DataFrame({'x':[1,2,3], 'y':[10,20,30]}) X_train = df.drop('y',axis=1) Y_train = df['y'] T_train_xgb = xgb.DMatrix(X_train, Y_train) params = {"objective": "reg:linear"} gbm = xgb.train(dtrain=T_train_xgb,params=params) Y_pred = gbm.predict(xgb.DMatrix(pd.DataFrame({'x':[4,5]}))) print Y_pred 出力は: [ 24.126194 24.126194] ご覧のとおり、入力データは単純な直線です。だから私が期待する出力は[40,50]です。ここで何が悪いのですか?

3
環境データに基づいて作物収量を予測する機械学習モデルを構築する
私は、10年間(2005〜2014年)の農場の気温、降水量、大豆収量に関するデータを含むデータセットを持っています。このデータに基づいて、2015年の利回りを予測したいと思います。 作物の収穫は作物の生育シーズンの終わりに行われるため、データセットには気温と降水量のDAILY値がありますが、収量は1年に1つしかありません。 回帰または他のいくつかの機械学習ベースのモデルを構築して、2015年の収穫を予測します。これは、前年の収穫と温度および降水量との関係を研究することによって導出された回帰/その他のモデルに基づいています。 scikit-learnを使用した機械学習の実行に精通しています。ただし、この問題をどのように表すかはわかりません。ここで注意が必要なのは、気温と降水量は毎日ですが、収量は1年に1つの値に過ぎないということです。 これにどのように取り組みますか?

1
ユーザー製品のポジティブ(データをクリック)を利用できます。ネガティブ(クリックなしのデータ)を生成する方法は?
レコメンダーでは、「クリック」などのラベルが付いたユーザー製品データがあることが非常に一般的です。モデルを学習するために、クリックデータと非クリックデータが必要です。 生成する最も簡単な方法は、クリックデータにはないユーザーと製品のペアを取得することです。ただし、それは誤解を招く可能性があります。例: user1, product1 (click) user2, product2 (click) user2, product3 (click) user3, product2 (click) user1をproduct1以外のすべての製品で取得し、「no_click」などのラベルを付けることができます。しかし、これは本当ではないかもしれません。たぶん、user1がproduct2を表示された場合、user1はproduct2をクリックしたでしょう。しかし、他の製品のセットが表示されたからといって、クリックするかクリックしないかを決定する機会がありませんでした2。 では、単項データの問題にどのように対処するのでしょうか?

2
テストデータの機能がトレーニングデータよりも少ない場合はどうすればよいですか?
店舗の売上を予測していて、トレーニングデータに2つの機能セットがあるとします。 日付のある店舗の売上に関する1つ(「店舗」フィールドは一意ではありません) 店舗タイプに関する1つ(「店舗」フィールドはここでは一意です) したがって、マトリックスは次のようになります。 +-------+-----------+------------+---------+-----------+------+-------+--------------+ | Store | DayOfWeek | Date | Sales | Customers | Open | Promo | StateHoliday | +-------+-----------+------------+---------+-----------+------+-------+--------------+ | 1 | 5 | 2015-07-31 | 5263.0 | 555.0 | 1 | 1 | 0 | | 2 | 5 | 2015-07-31 | 6064.0 | 625.0 …

2
科学者はどのようにして正しい隠れマルコフモデルのパラメーターとトポロジーを思い付きますか?
隠れマルコフモデルが、遺伝子の検索などのゲノムシーケンスでどのように使用されるかを理解しています。しかし、特定のマルコフモデルを考え出す方法がわかりません。つまり、モデルにはいくつの状態があるべきですか?可能な遷移はいくつありますか?モデルにループが必要ですか? 彼らは自分のモデルが最適であることをどのようにして知るのでしょうか? 彼らは、10の異なるモデルを想像し、それらの10のモデルをベンチマークして、最高のモデルを公開しますか?

1
目的関数と出力層活性化関数の間のリンクはどの程度柔軟ですか?
多くのニューラルネットワークパッケージでは、最小化する目的関数と出力層のアクティブ化関数をペアにするのが標準のようです。 たとえば、回帰に使用される線形出力層の場合、二乗誤差目的関数を持つことは標準的です(多くの場合、選択肢は1つだけです)。もう1つの通常の組み合わせは、ロジスティック出力とログ損失(またはクロスエントロピー)です。さらにもう1つは、ソフトマックスとマルチログ損失です。 表記法を使用すると、はアクティベーション前の値(重みの合計に前のレイヤーのアクティベーションを掛けたもの)、aはアクティベーション、yはトレーニングに使用されるグラウンドトゥルース、iは出力ニューロンのインデックスです。zzzaaayyy私私i 線形活性化は2乗誤差1を伴いますai=ziai=zia_i=z_i12∑∀i(yi−ai)212∑∀i(yi−ai)2\frac{1}{2} \sum\limits_{\forall i} (y_i-a_i)^2 シグモイド活性化 logloss /クロスエントロピ目的と進む-Σ∀I(YI*LOG(I)+(1-YI)*LOG(1-I))ai=11+e−ziai=11+e−zia_i = \frac{1}{1+e^{-z_i}}−∑∀i(yi∗log(ai)+(1−yi)∗log(1−ai))−∑∀i(yi∗log(ai)+(1−yi)∗log(1−a私))-\sum\limits_{\forall i} (y_i*log(a_i) + (1-y_i)*log(1-a_i)) Softmaxアクティベーションa私= ez私Σ∀ Jezja私=ez私Σ∀jezja_i = \frac{e^{z_i}}{\sum_{\forall j} e^{z_j}}− ∑∀ 私(y私∗ l o g(a私))−Σ∀私(y私∗log(a私))-\sum\limits_{\forall i} (y_i*log(a_i)) それらは私が知っているものであり、まだ聞いていないことがたくさんあると思います。 yyy ただし、二乗誤差の目的でシグモイド出力を試すことはそれほど悪くないようです。安定していて、少なくとも収束する必要があります。 δEδzδEδz\frac{\delta E}{\delta z}EEEtanh ニューラルネットワークのアーキテクチャを設計するときに、出力のアクティブ化と目的関数の「非標準」の組み合わせを使用する、または使用する必要がある状況はありますか?

1
word2vecにはどのくらいのトレーニングデータが必要ですか?
出典が異なる同じ言葉の違いを比較したい。つまり、「民主主義」などの不明確な言葉の使い方が著者によってどのように異なるかです。 簡単な計画は 「民主主義」という用語を述べた本を平文とする それぞれの本には、交換するdemocracyとdemocracy_%AuthorName% word2vecこれらの本でモデルを訓練する 間の距離を計算しdemocracy_AuthorA、democracy_AuthorB及びその他の再ラベルは、「民主主義」の言及 したがって、各作者の「民主主義」は、比較のために使用される独自のベクトルを取得します。 しかし、word2vec信頼できるベクトルを訓練するには、数冊の本よりはるかに多くのラベルが必要です(各ラベルが付けられた単語は、本のサブセットでのみ発生します)。公式ページには、言葉の十億を含むデータセットを推奨しています。 私は、そのような推論を行うために、word2vecまたは利用可能な場合は代替ツールを作成するために、1人の著者の本のサブセットがどのくらいの大きさであるかを尋ねたかっただけですか?

1
以前のたたみ込み層のデルタ項と重みを考慮して、たたみ込み層のデルタ項を計算するにはどうすればよいですか?
2つの畳み込み層(c1、c2)と2つの非表示層(c1、c2)を持つ人工ニューラルネットワークをトレーニングしようとしています。標準のバックプロパゲーションアプローチを使用しています。バックワードパスでは、前のレイヤーの誤差、前のレイヤーの重み、現在のレイヤーのアクティベーション関数に関するアクティベーションの勾配に基づいて、レイヤーの誤差項(デルタ)を計算します。より具体的には、レイヤーlのデルタは次のようになります。 delta(l) = (w(l+1)' * delta(l+1)) * grad_f_a(l) 通常のレイヤーに接続するc2の勾配を計算できます。私はh1の重みにデルタを掛けます。次に、その行列をc2の出力の形式に再形成し、活性化関数の勾配を掛けて、完了です。 今私はc2のデルタ項を持っています-これはサイズの4D行列です(featureMapSize、featureMapSize、filterNum、patternNum)。さらに、c2の重みがあります。これは、サイズの3Dマトリックス(filterSize、filterSize、filterNum)です。 これら2つの項とc1のアクティブ化の勾配を使用して、c1のデルタを計算します。 短い話: 以前の畳み込み層のデルタ項とその層の重みが与えられた場合、畳み込み層のデルタ項をどのように計算しますか?

1
Rを使用して意思決定ツリーを構築する場合、データを正規化する必要がありますか?
したがって、今週のデータセットには14の属性があり、各列には非常に異なる値があります。1つの列には1未満の値があり、別の列には3〜4桁の値があります。 先週、正規化について学習しましたが、値が大きく異なる場合は、データを正規化する必要があるようです。ディシジョンツリーの場合、ケースは同じですか? これについてはよくわかりませんが、正規化は同じデータセットから得られる決定木に影響しますか?どうやらそうじゃないけど...
10 r  beginner 

2
局所性に敏感なハッシュの増幅
可能なすべてのペアを比較する必要なく、類似した候補アイテムのペアを見つけることができるように、コサイン局所性に敏感なハッシュを作成しようとしています。基本的には機能していますが、データ内のほとんどのペアは-0.2から+0.2の範囲でコサイン類似度を持っているようですので、細かくダイシングしてコサイン類似度0.1以上のものを選択しようとしています。 私は大量データセットのマイニングの第3章を読んでいます。これは、局所性に敏感なファミリーを増幅することにより、候補ペアの選択の精度を高めることについて説明しています。私は数学的な説明を理解するところだと思いますが、これを実際に実装する方法を見るのに苦労しています。 これまでのところは次のとおりです 100万人のユーザーの一部の選択からの評価付きの1000本の映画と言っています。各映画は、ユーザースコアのスパースベクトルで表されます(行番号=ユーザーID、値=ユーザーのスコア) N個のランダムなベクトルを作成します。ベクトルの長さは、映画のベクトルの長さ(つまり、ユーザー数)と一致します。ベクトル値は+1または-1です。私は実際にこれらのベクトルをバイナリとしてエンコードしてスペースを節約し、+ 1を1に、-1を0にマッピングします 映画とN個のランダムベクトルのそれぞれのドット積をとって、各映画のスケッチベクトルを構築します(または、N個のランダムベクトルを水平に配置し、それらを互いの上に重ねてからスケッチで行列Rを作成した場合は、スケッチ映画mはR * m)であり、結果のベクトルの各要素の符号を取るので、+ 1と-1の各映画のスケッチベクトルで終わります。各ベクトルは長さNビットです。 次に、次のようにして類似のスケッチを探します スケッチベクトルをrビットのbバンドに分割します rビットの各バンドは数値です。その番号をバンド番号と組み合わせて、その番号の下のハッシュバケットに映画を追加します。各ムービーは複数のバケットに追加できます。 次に、各バケットを調べます。同じバケットにある映画はすべて候補ペアです。 これをmmdsの3.6.3と比較すると、私のANDステップは、rビットのバンドを見るときです。rビットの値が同じであれば、2つのムービーがANDステップを通過します。私のORステップはバケットで発生します。両方のバケットに含まれている映画は候補ペアです。 この本は、ANDとORのステップを追加することで結果を「増幅」できることを示唆していますが、追加のレイヤーの構築プロセスの説明は、ペアワイズの同等性のチェックではなく、バケット番号を考え出す。 誰かがこれを行う方法を理解するのを手伝ってくれる?

3
オントロジーとセマンティックWebは死んでいますか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 セマンティックWebは死んでいますか?オントロジーは死んでいますか? 「湿地周辺の利益団体のためのセット・オントロジーによる知識ベース」に関する私の論文の作業計画を作成しています。私はそのためのオントロジーの研究と開発を行ってきましたが、まだ多くのことについては不明です。オントロジーのモデリング言語は何ですか? オントロジーのどの方法論が優れていますか?OTKまたはMETHONTOLOGY? するようなプログラムはありますか Cratiloは、テキストのコーパスを分析し、研究領域の特定の用語を抽出するためのソフトウェアです(アンティオキア大学哲学研究所、ホルヘアントニオメヒア教授、フランシスコハビエルアルバレス教授、ジョンアルベイロサンチェス教授によって開発されました)。テキストの字句分析を可能にし、テキスト内で出現頻度と位置を示す単語を識別します。認識のプロセスを通じて、Cratylusはテキスト内のすべての単語を識別し、データベースを構築して作品のドラフト分析になります。他に同様のツールはありますか? Cratiloが見つけた用語を知識ベースの作成に使用できますか? そのようなことに使用できる既存のオープンなセマンティックフレームワークは何ですか? RDF、OWL、XMLを自動的に作成するソフトウェアはありますか?テイルスはどのように機能しますか?イエナ?ごま?

2
scikit分類器が分類にかかる時間はどれくらいですか?
100万のラベル付きドキュメントで構成されるコーパスのテキスト分類にscikit線形サポートベクターマシン(SVM)分類器を使用することを計画しています。私がやろうとしていることは、ユーザーがキーワードを入力すると、分類子はまずそれをカテゴリーに分類し、次にそのカテゴリーのカテゴリーのドキュメント内で後続の情報検索クエリが発生することです。少し質問があります: 分類にそれほど時間がかからないことを確認するにはどうすればよいですか?より良い結果を得るために、ユーザーが分類が完了するのを待つ時間を費やす必要はありません。 ウェブサイト/ウェブアプリケーションにPythonのscikitライブラリを使用することはこれに適していますか? アマゾンまたはフリップカートがユーザークエリで分類を実行する方法を知っている人はいますか?それとも完全に異なるロジックを使用していますか?

3
ネットワーク分析のクラシックデータセット
機械学習の分類/回帰タスクには、いくつかの古典的なデータセットがあります。最も人気のあるものは: アイリスフラワーデータセット ; タイタニックデータセット ; モータートレンドカー ; 等 しかし、誰もがネットワーク分析/グラフ理論のための同様のデータセットを知っていますか?より具体的- 比較/評価/学習のためのゴールド標準データセットを探しています: 中心性対策; ネットワーククラスタリングアルゴリズム。 公開されているネットワークやグラフの膨大なリストは必要ありませんが、実際に知っておくべきデータセットがいくつかあります。 編集: 「ゴールドスタンダードデータセット」に正確な機能を提供することは非常に困難ですが、ここではいくつかの考えを示します。実際のクラシックデータセットは次の基準を満たす必要があると思います。 記事や教科書の複数の参照; 有名なネットワーク分析ソフトウェアパッケージに含まれています。 十分な存在時間; グラフ分析に関する多くのコースでの使用。 私の関心分野については、頂点のラベル付きクラス、および/または事前計算された(または事前定義された)「オーソリティスコア」(つまり、中心性推定)も必要です。この質問をした後、私は検索を続けました、そしてここにいくつかの適切な例があります: Zacharyの空手クラブ:1977年に導入され、1.5K回以上引用され(Google Scholarによる)、頂点にはFaction属性があります(これはクラスタリングに使用できます)。 Erdos Collaboration Network:残念ながら、このネットワークはデータファイルの形式で見つかりませんが、かなり有名で、誰かが数学者の専門データでネットワークを充実させれば、クラスタリングアルゴリズムのテストにも使用できます。
10 dataset  graphs 

2
ベクトル演算に基づく確率的勾配降下法?
N個のサンプルを持つデータセットを使用して、確率的勾配降下回帰アルゴリズムをトレーニングしたいとします。データセットのサイズは固定なので、データをT回再利用します。各反復または「エポック」で、トレーニングセット全体をランダムに並べ替えた後、各トレーニングサンプルを1回だけ使用します。 私の実装はPythonとNumpyに基づいています。したがって、ベクトル演算を使用すると、計算時間を大幅に短縮できます。バッチ勾配降下法のベクトル化された実装を考え出すことは非常に簡単です。ただし、確率的勾配降下法の場合、各エポックですべてのサンプルを反復する外部ループを回避する方法を理解できません。 誰かが確率的勾配降下法のベクトル化された実装を知っていますか? 編集:データセットのサイズが固定されている場合、オンライン勾配降下法を使用する理由を尋ねられました。 [1]から、オンライン勾配降下法は、バッチ勾配降下法よりも経験的コストの最小値まで収束が遅いことがわかります。ただし、一般化のパフォーマンスを測定する予想コストの最小値に速く収束します。これらの理論上の結果が私の特定の問題に及ぼす影響を、相互検証によってテストしたいと思います。ベクトル化された実装がない場合、私のオンライン勾配降下コードはバッチ勾配降下コードよりもはるかに遅くなります。これにより、相互検証プロセスが完了するまでの時間が大幅に増加します。 編集:私は、ffriendからの要求に応じて、オンライン勾配降下法の実装の疑似コードをここに含めます。回帰問題を解決しています。 Method: on-line gradient descent (regression) Input: X (nxp matrix; each line contains a training sample, represented as a length-p vector), Y (length-n vector; output of the training samples) Output: A (length-p+1 vector of coefficients) Initialize coefficients (assign value 0 to all coefficients) Calculate outputs …


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.