2017-02-14 6 views
0

私はAzureのMLと私の目標を扱ってると、私は私のデータセット内の欠損値の(パーセンテージ)一定量を持っている場合、何が起こるかを確認することです。 、(例えば、大人データセットに取る)データセットから始め 元のデータセットを複製し、大会X.データセットXが20%の割合で無作為に欠損値が含まれますためにそれを呼び出す: 私の考えがある可能性があります。オリジナルデータセットと重複データセットXを取得したら、ニューラルネットアルゴリズムを使用してトレーニングとテストセットを作成し、データセットXを入力としてこのニューラルネットをトレーニングします。興味深いのは、発生したグローバルエラーです。私たちは、20%から始めて、データセットXに欠損値の範囲を拡大するために想像することができた後、40%の後のように...私は、最も難しい部分は、元のデータセットを複製することだと思うので、この不足しているとのデータセットXを作成します値。データセット内の欠損値の一定量を入れて - AzureのML

どのように私はそれを行うことができますか? Azure MLや多分R/Pythonスクリプトでモジュールを使う?ただ、私の考えを共有

+0

それは難しいことではありません。 1とデータフレームの長さの間の乱数のリストをセットの20%の値の数だけ作成し、それを変数に保存します。あなたの行識別子としてそれらのものを使用してforループをinのforループに置き換えますfor(ro in 1:nrow(df)){if(ro%in%random_list){df $ datafield [ro] < - NA}} ' – sconfluentus

+0

これはrです...ところで。しかし、あなたがしなければならないことは、いくつかの言語でスクリプトを作成し、それらの値を無作為に生成された行IDと置き換えることを学ぶことです。 – sconfluentus

+0

@bethanyPあなたの答えをありがとう。私は別の列の型を持っている場合でも動作しますか?私はR言語を知らないし、コンセプトも本当にはっきりしない...ごめんなさい! – Fraangel

答えて

0

は、以下のようにサンプルコードに&のコメントを参照してください。

import numpy as np 
import pandas as pd 

# Origin DataFrame 
df = pd.DataFrame(np.random.randn(6,4)) 

# Copy data via flatten data matrix as an array 
array = df.values.flatten() 

# insert missing data by percent 
# Define the percent of missing data 
percent = 0.2 
size = len(array) 
# generate a random list for indexing data which will be assigned NaN 
chosen = np.random.choice(size, int(size*percent)) 
array[chosen] = np.nan 

# Create a new DataFrame with missing data 
df2 = pd.DataFrame(np.reshape(array, (6,4))) 

希望します。

関連する問題