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

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

新規登録して質問してみよう
ただいま回答率
85.35%
機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

Q&A

0回答

732閲覧

正常、異常判断の学習用データとテスト用データの分け方について

hayatekun

総合スコア5

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

0グッド

0クリップ

投稿2020/07/10 05:12

正常と異常の判断をさせようと考えています。
異常時、正常時それぞれの画像データを統計量に変換しました。
勾配ブースティングを使用して学習させようと思うのですが、異常画像だけが入った
フォルダの中身、正常画像だけが入ったフォルダの中身を別々にデータフレームとして起こしています。ここからトレーニング用、テスト用に分けたいのですがどうすればいいのでしょうか?ちなみにデータフレーム上に正常か異常かのデータはありません。フォルダで分けているだけです。

python

1from pathlib import Path 2 3import cv2 4import numpy as np 5import pandas as pd 6 7img_dir = Path(r"C:/AI/izyou") 8 9results = [] 10for path in img_dir.iterdir(): 11 img = cv2.imread(str(path), cv2.IMREAD_COLOR) 12 if img is None: 13 continue 14 15 results.append({"file": path, "mean": img.mean(), "SD": img.std(),"min": img.min(),"max": img.max()}) 16 17results = pd.DataFrame(results) 18results 19 20img_dirc = Path(r"C:/AI/seizyou") 21 22results2 = [] 23for path in img_dirc.iterdir(): 24 img2 = cv2.imread(str(path), cv2.IMREAD_COLOR) 25 if img2 is None: 26 continue 27 28 results2.append({"file": path, "mean": img.mean(), "SD": img.std(),"min": img.min(),"max": img.max()}) 29 30results2 = pd.DataFrame(results2) 31results2 32

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

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

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

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

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

aokikenichi

2020/07/10 08:51

何が分からないのでしょうか? トレーニングとテストの2つに分ければよいと思いますが。 何%ずつにしたらよいかということでしょうか。データ件数によりますがとりあえず7:3くらいに分けて試してみていろいろ調整すればよいかと思います。 フォルダに分けた正常、異常をデータフレームに反映できないということでしょうか?
hayatekun

2020/07/13 02:25

回答ありがとうございます。 正常、異常共にデータフレームに反映するところまでは完了しています。 今からトレーニング用とテスト用に分ける段階です。正常データと異常データでデータのリストが分かれているのですが、2つを同時にXに入れる事は可能なのでしょうか? また、画像を統計量に変換しただけで目的変数(例えば正常なら0、異常なら1)が入っていないのですが、データフレームに反映した後からでも入れる方法はありますでしょうか?
aokikenichi

2020/07/13 03:21

>今からトレーニング用とテスト用に分ける段階です。正常データと異常データでデータのリストが分かれて >いるのですが、2つを同時にXに入れる事は可能なのでしょうか? 「リスト」とはデータフレームのことでよろしいでしょうか。 「2つを同時にXに入れる事」とはデータフレームの結合とのことでよろしいでしょうか > また、画像を統計量に変換しただけで目的変数(例えば正常なら0、異常なら1)が入っていないのです > が、データフレームに反映した後からでも入れる方法はありますでしょうか? データフレームの結合とのことでよろしいでしょうかであれば可能です データフレームの結合については https://note.nkmk.me/python-pandas-merge-join/ などがわかりやすいかと
hayatekun

2020/07/13 07:06

回答有り難うございます。試してみます。 追加でお聞きしたいことがあるのですが、データフレームが2つ存在し結合した際、半分が正常データ半分が異常データのように連続的に並んでいても学習時に問題ないのでしょうか? 訓練データ、テストデータと分ける際に偏りが発生しうまく学習出来ない可能性はあるのでしょうか。
aokikenichi

2020/07/13 09:07

「データフレームが2つ存在し結合した際、半分が正常データ半分が異常データのように連続的に並んでいても学習時に問題ないのでしょうか?」 問題ないです。正常/異常を示す目的変数の列があると思いますが、それさえあれば順番は特に関係ありません(ごく特殊な手法「自己組織化マップ」というようなものでは違いがあるのですが、通常の判別なら問題ないです) 「訓練データ、テストデータと分ける際に偏りが発生しうまく学習出来ない可能性はあるのでしょうか。」 大いにあります。 極端に言えば正常ばかり学習しても異常は分からないですしその逆も同じ。 少なくとも正常/異常の比率は同じにした方がいいですね。 他にもありますが、まずはランダムに同じ比率にすればよろしいかと。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問