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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python

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

Q&A

解決済

1回答

351閲覧

深層学習で、ワインのスコアを予測したい

trey_0329

総合スコア109

Python

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

0グッド

0クリップ

投稿2019/01/24 05:58

編集2019/01/24 06:00

背景
深層学習を使って下記のデータからワインの"point"を予測したいです。

shape = (12000,7)

データのカテゴリカル変数をダミー変数に直したのが下記図です。
イメージ説明
shape = (11900,1192) ← 列をdrop NaNしました

分からないこと
深層学習を使ってスコアを予測したいのですが、ここからどのように進めればいいのかわかりません。
データをクリーニング → データを訓練/テストデータに分ける → ? → 正確さを出す

最終的には下記図のような結果を導きたいと思っています
イメージ説明

ちなみに今参考にしている資料はこちらです。
https://zhuanlan.zhihu.com/p/30806088

少々投げやりな質問になってしまいましたが、どなたか手順をおおまかにでもいいので、お教えいただける方、または参考になる資料などご存知でしたらお教え頂けますと幸いです。
宜しくお願い致します。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

深層学習を使ってスコアを予測したいのですが、ここからどのように進めればいいのかわかりません。

モデルを作って学習するってことになるかと思います。


ワインデータセットはいくつか種類があるみたいですが、この Wine Data Set を学習するサンプルコードを置いておきますね。

bash

1!wget https://gist.githubusercontent.com/tijptjik/9408623/raw/b237fa5848349a14a14e5d4107dc7897c21951f5/wine.csv

python

1import numpy as np 2from keras.models import Sequential 3from keras.layers import Dense 4from keras.utils import np_utils 5from sklearn.model_selection import train_test_split 6from sklearn.preprocessing import StandardScaler 7import pandas as pd 8 9# The wine dataset を読み込む。 10# データセットの仕様は https://archive.ics.uci.edu/ml/datasets/wine を確認してください 11df = pd.read_csv('wine.csv') 12 13data = df.iloc[:, 1:].astype(float) 14labels = df.Wine - 1 # クラス ID を 1, 2, 3 -> 0, 1, 2 にする。 15 16# データセットの8割を学習用、2割をテスト用に分割する。 17x_train, x_test, y_train, y_test = \ 18 train_test_split(data, labels, test_size=0.1) 19 20# 前処理 21scaler = StandardScaler() 22x_train = scaler.fit_transform(x_train) # 標準化 23y_train = np_utils.to_categorical(y_train) # One-Hot 表現にする。 24 25# モデルを構築する。 26model = Sequential() 27model.add(Dense(30, activation='relu', input_dim=13)) 28model.add(Dense(30, activation='relu')) 29model.add(Dense(3, activation='softmax')) 30model.compile( 31 optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) 32# 学習を実行する。 33model.fit(x_train, y_train, batch_size=8, epochs=30, 34 validation_split=0.1, verbose=0) 35 36# 推論する。 37x_test = scaler.transform(x_test) # 標準化 38y_test = np_utils.to_categorical(y_test) # One-Hot 表現にする。 39loss, accuracy = model.evaluate(x_test, y_test) 40print('test accuracy: {:.2%}'.format(accuracy))
test accuracy: 100.00%

投稿2019/01/24 06:50

tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

trey_0329

2019/01/24 07:03

毎度ためになるアドバイス頂き誠にありがとうございます。 すみませんがもう一つだけ質問させてください。 Trainデータ、Testデータに分けるときに、 何故x、yを使って4つに分けるのでしょうか?(x_train, x_test, y_train, y_test) ここでのX,Yとはどういう意味でしょうか?
tiitoi

2019/01/24 07:08 編集

以下の部分についての質問でしょうか? x_train, x_test, y_train, y_test = \ train_test_split(data, labels, test_size=0.1) データセットすべてを学習に使ってしまうと汎化性能を検証できないので、データとラベルを学習用、テスト用に分けています。 x はデータ、y はラベルを表すときの変数名としてよく使われます
trey_0329

2019/01/24 07:11 編集

ご返信ありがとうございます。 x はデータ、y はラベルを表すときの変数名としてよく使われます こちら承知しました。 誠にありがとうございます。
tiitoi

2019/01/24 07:13 編集

data は特徴量です。labels は正解ラベルです。 これを (x_train 学習用の特徴量、y_train 学習用のラベル) (x_test テスト用の特徴量、y_test テスト用のラベル) の2つのペアに分けています。 これで伝わりますでしょうか? 教師あり学習なので、特徴量だけでなく、正解ラベルも必要になりますよね
trey_0329

2019/01/24 07:21

現在、機械学習ならびにデータ分析を独学で勉強しておりますが、独学ではかなり難しい部分もあり、 どなたか有料で、メンターとなっていただける方を探しています。 tiitoi様はこちらの方面にとても詳しそうなので、もしよろしければ謝礼込みで長期でお教え頂くことは可能でしょうか https://menta.work/user/3490 こちらのサービスを使えば、スムーズにやり取り可能かな、と思います。 突然のご提案で大変失礼だとは存じていますが、ご検討宜しくお願い致します。
trey_0329

2019/01/24 07:22

ご丁寧にご回答頂き、ありがとうございます!
tiitoi

2019/01/24 07:36

そのサイトは初めて知りました。 すいません。ご提案いただいて恐縮ですが、契約となると責任が生じる点と時間が確保できる保証がないので難しいです。 teratail はたまたま目にした内容がわかる質問について回答しているだけなので。
tiitoi

2019/01/24 07:36 編集

メンター探すというのも一つの手とは思いますが、独学でしたら書籍を購入して勉強されたほうがいいと思います。Web サイトは情報が断片的だったり、間違っていたりするので、入門で参考にするのはおすすめできません。 書籍もあたりハズレがあるので、いくつか購入されて自分のレベルにあったもので勉強することをおすすめします。
trey_0329

2019/01/24 07:40

承知致しました。こちらこそ突然のご提案にて大変失礼致しました。 そうですね、今まではWeb中心に情報を収集していたので、一度書籍でしっかりと勉強してみます。 ご検討いただき誠にありがとうございます。今後とも引き続き宜しくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問