質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • Python

    11700questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • ArrayList

    104questions

    Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。

Pythonでの配列の圧縮

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 389

HiruLow

score 43

◆目的
1次元の配列を特定数インデックスに圧縮したい
用途としては機械学習にてテキストをベクトル化し、機械学習のモデルデータとしての利用

◆例
以下のようなベクトルが有った場合、この値を2つに圧縮したい

Arr=[1,-0.5,1,0.4,0.5,0.2,-0.64,-0.1.2]

↓
Arr=[-0.1,0.3]

方法が有りましたらご教授願います

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

「次元削減」で検索すると色々出てきます。情報をできるだけ保ったままベクトルの次元を下げる方法はいろいろあります(代表的なものとして、たとえば主成分分析などがあります)。

やりたいことがあまりよく理解できないので、これが適切な回答なのかどうかはわかりませんが・・・

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/11/20 21:27

    回答ありがとうございます

    具体的には、word2vecに登録されているモデルデータのベクトルを機械学習の学習データとして使いたいと思っております。
    ただ、現時点ではモデルに格納されているベクトルが300次元の配列な為ちょっと大きすぎるので圧縮したいと考えています。
    pca等も考慮しましたが、pcaでは複数の同次元数配列をfit_transformに渡す必要が有り、word2vecにより取得されたShape(300,1)の配列では圧縮が不可能な為困っております。

    キャンセル

  • 2018/11/20 21:31

    300次元ならそこまで大きくもない気がしますが、どんな重たいモデルを使うつもりですか? また、word2vecのベクトルはどちらかといえばうまく次元削減しづらい印象があります(むしろモデル作成の段階で小さい次元として学習させるべき。既存のモデルを使うなら仕方ありませんが)。
    機械学習の学習データにするのなら通常は複数のデータからなるデータセット(shape=(n_samples, 300)かな)を渡して学習させると思うので、うまくいくかは別としてPCAで取り扱えると思います。

    キャンセル

  • 2018/11/20 21:40

    別で学習用のデータを他にも4次元程用意しており、これら配列と300次元の配列データを一緒に学習させた場合どうも結果が良く無かったとゆう結果になっています。(学習時には、各データを0~1の値にし隠れ層で一緒に重み付けを行っています)
    ただhayataka2049さんの言うように得に問題ないとの事なので、AI側のモデル構造を見直した方がいいのでしょうか・・
    一緒に学習させるべきではなくモデルを分離し後半でマージする等を考えているのですが

    キャンセル

  • 2018/11/20 21:50

    ごめんなさい、全体像が見えないので理解できていません。機械学習を使ってどんなことをするのが目的で、何が特徴量で、何がターゲット(目的変数)で、どんなモデルを使って学習させるのかを順番に書いてください。

    キャンセル

  • 2018/11/20 22:00

    すいません記述が足りませんでした

    機能としましては、テキストを学習値として、クラス分類を行う機能を作りたいと考えています。

    目的としては
    Target=["other","money","days"]
    等のいくつかのクラス項目を自動識別するものとし

    Data=["こんにちわ","100$","二十円","二十年四月","月とすっぽん"]
    等のデータを学習用データとして使うものになります。

    キャンセル

  • 2018/11/20 22:04 編集

    クラス項目を自動識別する、って単純な教師あり学習ではない気がするのですが、一体どんな処理ですか?

    また、
    Data=["こんにちわ","100$","二十円","二十年四月","月とすっぽん"]
    はこれ1つで1つの文書(テキスト)を表現するということでしょうか? それとも、リストの要素それぞれが1テキストでしょうか?

    word2vecはどうやって使うのですか?

    キャンセル

同じタグがついた質問を見る

  • Python

    11700questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • ArrayList

    104questions

    Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。