2016-12-24 9 views
2

私はPythonの初心者です。私は、テンソルを使ってPythonで機械学習を学んでいます。Trueのみで構成されたデータセットをトレーニングするにはどうすればよいですか? Pythonで

私は 'testset.csv' 'trainset.csv'(単なる例)のような

trainset.csv設定された2件のデータがあります(単なる例)のような

#1 2 3 4 5 6 7 8 9 normal abnormal 
--------------------------------- 
0 1 2 3 1 2 1 4 6 1  0 
0 1 1 1 4 1 1 2 1 1  0 
0 2 1 1 1 2 1 2 2 1  0 
... 
0 1 1 1 1 4 3 1 1 1  0 

がtesetset.csv:

#1 2 3 4 5 6 7 8 9 
-------------------- 
0 1 2 1 3 4 1 4 5 
0 1 1 1 4 5 5 5 5 
0 2 3 1 5 2 1 2 2 
... 
0 1 6 1 7 4 3 4 1 

正常な機能のみを提示し、異常なデータをテストセットに分類した列車データを訓練するにはどうすればよいですか?

+0

トレーニングデータの中に異常な例*がありません。何かを訓練するためにそれらを取得しなければならないか、問題は分類ではなく外れ値検出*です。 –

答えて

0

私はあなたが異常な訓練の例を必要と思う、またはネットワークは毎回 "正常な"出力することを学ぶでしょう。トレーニングセットに異常がない異常検出を行いたい場合は、ニューラルネットワークが最良のアプローチであるかどうかはわかりません。

0

ここではpandasライブラリを使用しています。なぜなら、データを使用することは非常に便利だからです。あなたの問題について - 私はあなたが値の可能な組み合わせのすべてから新しい列車データセットを作成し、それを訓練しなければならないと思います。

すべての列に可能なすべての値を含む辞書があるとします。そして、あなたはこのことから、完全なデータフレームを作成することができます

>>> import pandas as pd 
>>> del df['abnormal'] 
>>> cols = [x for x in df.columns if x != 'normal'] 
>>> cols 
['1', '2', '3', '4', '5', '6', '7', '8', '9'] 
>>> d = df[cols].apply(lambda x: list(x.unique())).to_dict() 
>>> d 
{'1': [0], '3': [2, 1], '2': [1, 2], '5': [1, 4], '4': [3, 1], '7': [1, 3], '6': [2, 1, 4], '9': [6, 1, 2], '8': [4, 2, 1]} 

>>> df_full = pd.DataFrame(list(itertools.product(*d.values())), columns=d.keys()) 

そして今、あなたは新しい列車のデータフレームを作成することができます。

>>> df_train_new = pd.merge(df_full, df, how='left').fillna(0) 
あなたの列車のデータフレームからのすべての可能な組み合わせを取得することによって、ここでは、私は偽物

値の可能な組み合わせはすべて+ normal

関連する問題