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

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

ただいまの
回答率

90.52%

  • Python 3.x

    6316questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

麻雀役を機械学習で覚えさせる

解決済

回答 3

投稿

  • 評価
  • クリップ 2
  • VIEW 893

はじめて機械学習を使ってみるにあたって、
麻雀の役をscikit-learnを使って学習させたいと思っています。
萬子・筒子・索子をそれぞれリストで並ばせて、

tile_data = ['1-Bam', '2-Bam', '3-Bam', '4-Bam', '5-Bam', '6-Bam', '7-Bam', '8-Bam', '9-Bam',
'1-Char', '2-Char', '3-Char', '4-Char', '5-Char', '6-Char', '7-Char', '8-Char', '9-Char',
'1-Dot', '2-Dot', '3-Dot', '4-Dot', '5-Dot', '6-Dot', '7-Dot', '8-Dot', '9-Dot',
'East', 'South', 'West', 'North', 'Blank', 'Fortune', 'Center']

各牌に対する要素番号で、これの番号とする
例[0, 0, 0] == [1索,1索,1索]

これの後にランダムに牌の組み合わせを生成し、
train用とlabel用の配列を作りました各500*3, 500

(1: 役 0: 無役)
train         label
[1, 1, 1] ==   [1]
[1, 2, 3] ==   [1]
[1, 2, 4] ==   [0]
[1, 2, 2] ==   [0]
などなど

機械学習用のデータの加工の仕方がわからず
これをそのまま
data = [1, 1, 1]
clf = svm.LinearSVC()
clf.fit(train, label)
clf.predict(data)
として実行してみるとエラーが以下のように出ます。

DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and will raise ValueError in 0.19. Reshape your data either using X.reshape(-1, 1) if your data has a single feature or X.reshape(1, -1) if it contains a single sample.
DeprecationWarning)

どなたか理由を教えていただければと思います。
また今回のエラーの直接的な解決策でなくてもいいので、代替案などあったらそれも幸いです。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 3

+4

本題ではありませんが、「こういう場面で何を切ればいいか」というような判定なら機械学習が役に立つと思います。

一方で、「役の有無の判定」については、

  • データパターンが34種類の牌×14枚という、ごく限られたものである
  • どのパターンが役になるかは、形式的に記述可能なルールで決まっている
  • つまり、同じ牌の組み合わせであれば、誰が判断しても同じ結果となる

という条件上、誤判定のリスクがある機械学習を使うのは、面倒なだけでメリットがないと考えます。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

checkベストアンサー

0

ヘルプpredict(X)によるとX : {array-like, sparse matrix}, shape (n_samples, n_features)なので、以下のように指定すればよいです。(ヘルプにサンプルソースもあります)

#data = [1, 1, 1]  # eprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and will raise ValueError in 0.19.

data = [[1, 1, 1]]          # こちらか
data = np.array([[1, 1, 1]])# あるいはこちら
clf.predict(data) 

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

0

「非推奨に関する警告:一次元配列ををdataとして渡すことは(バージョン?)0.17では非推奨で、(バージョン?)0.19では多分ValueErrorにします(=>もうその形のdataは使わないでね)・・・」というようなことをエラーは語っていると思います。

自分ならそのライブラリーの使い方としてdataをどういう形式にすべきかを調べると思います。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

  • ただいまの回答率 90.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    FuelPHP Validationクラスを使用する際にエラーを日本語にしたい

    FuelPHPでValidationクラスを使用して検証しているのですが、吐き出されるエラーメッセージが なぜか日本語ではなく、英語になってしまっています。 これを日本語にしたいの

  • 受付中

    重複しない選択肢のセレクトボックス

    cakephp2.7を使っています。 セレクトボックスの選択肢を、テーブルのデータにしたいのですが、 (例) id   name   posi 1    aaa      FW

  • 解決済

    Rにて手書き数字MNISTをnnetで学習させたい

    前提・実現したいこと Rにて手書き数字データMNISTをnnetで学習させたいと考えています。 サイトを参考に実行してみましたが、エラーが出てしまいうまくいきません。 発

  • 解決済

    tf.get_variablesが定義されないためtf.train.AdamOptimizerが使え...

    下記のようにGeneratorとDiscriminatorを定義したあとにtf.train.AdamOptimizerを使おうとすると下記エラーが出て使用できないのは何故なのでしょ

  • 解決済

    numpyのreshape関数について

    ニューラルネットワークを用いて画像認識のアルコリズムを実装しています。 「達人データサイエンティストによる理論と実践/python機械学習プログラミング」の第12章のコードをそのま

  • 解決済

    MNISTデータをreshapeできない

    前提・実現したいこと tensorflowでDCGANを使って画像生成するサンプルを自分のPCで動かそうとしています win10,anaconda(python3.5)で作業してい

  • 解決済

    【WordPress】Internal Server Errorが表示される

     前提・実現したいこと WordPressの画像容量が多くなっていたので、 画像のキャッシュを削除しようと思い、 「WP Fastest Cache」というプラグインをインストール

  • 解決済

    forとifの使い方の質問

    forとifの使い方がうまくいきません。 コードは以下になります。 for x in range(len(train["Sex"])): if [train["Sex"

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

  • Python 3.x

    6316questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。