3.2.2 データの探索
データにアクセスできたら、データを調べ、データの品質を理解して評価します。 このステージでは、データを評価してデータ内のデータ型およびノイズを識別します。 欠損値および数値外れ値を探します。
データをより深く理解し、潜在的な問題を特定するために、データ品質評価に焦点を当て、欠損値または外れ値を特定して、データセットを調べます。
ore.frame
オブジェクトCUSTOMERS
の行数および列数を確認するには、dim(CUSTOMERS)
を使用します。dim(CUSTOMERS) 55500 6
- ore.frameオブジェクト
SUPPLEMENTARY_DEMOGRAPHICS
の行と列の数を確認するには、dim(SUPPLEMENTARY_DEMOGRAPHICS)
を使用dim(SUPPLEMENTARY_DEMOGRAPHICS) 4500 4
- 表
CUSTOMERS
およびSUPPLEMENTARY_DEMOGRAPHICS
を共通列CUST_ID
の内部結合とマージして、新しいore.frame
オブジェクトCUST_DF
を作成します。 マージ関数は、1つのore.frame
を別のore.frame
に結合します。CUST_DF <- merge(SUPPLEMENTARY_DEMOGRAPHICS,CUSTOMERS, by="CUST_ID")
CUST_DF
データの最初の5行を表示するには、次のコードを実行します:z.show(head(CUST_DF,5))
CUST_DF
プロキシ・オブジェクトを使用してディメンションを取得するには、'dim'を使用します:dim(CUST_DF) 4500 9
CUST_DF
プロキシ・オブジェクトの列CUST_YEAR_OF_BIRTH
をCUST_AGE
に変換し、顧客の年齢分布のバー・プロットを生成するには、次のコードを使用します。Date1 <- format(Sys.Date(), "%Y") Date2 <- as.numeric(Date1) CUST_DF$CUST_AGE <- Date2-CUST_DF$CUST_YEAR_OF_BIRTH CUST_DF$CUST_YEAR_OF_BIRTH <- NULL tbl <- with(CUST_DF, table(CUST_AGE)) barplot(tbl, ylim=c(0,150), ylab = "Number of Customers", xlab = "Customer Age", las=3)
- @desc演算子を使用して、
CUST_DF
の列のデータ型を表示します。これは、データを理解し、計算を正確に実行するために非常に重要です。CUST_DF@desc
- データに欠落値があるかどうかを確認するには、次のコードを実行します。 次のコードでは、
CUST_DF
プロキシ・オブジェクトの欠落値の合計数を示します。sum(is.na(CUST_DF)) 0
値0は、
CUST_DF
プロキシ・オブジェクトに欠落値がないことを示します。 - クロス集計メソッドを使用して、データベース内のore.frameオブジェクトの列間分析を実行します。 デフォルトでは、列と集計関数が渡されないかぎり、列の頻度表が計算されます。 この例では、クロス集計関数によって、
CUST_CREDIT_LIMIT
の一意の値の分布がx軸に沿って、発生頻度がy軸に沿って表示されます。出力で、棒グラフをクリックします。 「設定」タブで、「グループ化基準」列として「CUST_CREDIT_LIMIT」を選択し、「重複の集計」関数として「最後」を使用します。
ct <- ore.crosstab(~CUST_CREDIT_LIMIT, data=CUST_DF) z.show(ct)
CUST_DF
表の統計をコンピュートするには、summary
関数を使用します。options(width = 80) summary(subset(CUST_DF, select = -CUST_ID)) CUST_GENDER CUST_MARITAL_STATUS CUST_INCOME_LEVEL Length:4500 Length:4500 Length:4500 Class :ore.character Class :ore.character Class :ore.character Mode :character Mode :character Mode :character CUST_CREDIT_LIMIT HOUSEHOLD_SIZE YRS_RESIDENCE Y_BOX_GAMES Min. : 1500 Length:4500 Min. : 0.000 Min. :0.0000 1st Qu.: 5000 Class :ore.character 1st Qu.: 3.000 1st Qu.:0.0000 Median : 9000 Mode :character Median : 4.000 Median :0.0000 Mean : 7924 Mean : 4.022 Mean :0.3124 3rd Qu.:11000 3rd Qu.: 5.000 3rd Qu.:1.0000 Max. :15000 Max. :14.000 Max. :1.0000 CUST_AGE Min. : 39.00 1st Qu.: 49.00 Median : 59.00 Mean : 60.38 3rd Qu.: 69.00 Max. :112.00
これで、データ理解ステージが完了します。
データ準備
モデルを構築する前に、必要に応じてデータを消去します。 通常、データには、モデルの品質に影響を与える可能性のある個別のクラスタを形成する外れ値を含めることができます。 次のコマンドは、データ・フレーム・オブジェクトの四分位範囲を計算する関数filter_outliers
を定義します。 関数remove_outliers
は、forループを使用して、機能のリストの四分位範囲をコンピュートします。 ユーザー定義関数remove_outliers
は、四分位数範囲を使用してデータの外れ値を検出し、削除します。
# create filter outliers function
filter_outliers <- function(x) {
# calculate first quantile
Quantile1 <- quantile(x, probs=.25)
# calculate third quantile
Quantile3 <- quantile(x, probs=.75)
# calculate inter quartile range
IQR = Quantile3-Quantile1
# return true or false
x < Quantile3 + (IQR*1.5) & x > Quantile1 - (IQR*1.5)
}
# create remove outliers function
remove_outliers <- function(dataframe,
columns=names(dataframe)) {
# for loop to traverse in columns vector
for (col in columns) {
# remove observation if it satisfies outlier function
dataframe <- dataframe[filter_outliers(dataframe[[col]]),]
}
ore.pull(dataframe)
}
CUST_DF_CLEAN <- remove_outliers(CUST_DF, c('CUST_AGE', 'CUST_CREDIT_LIMIT', 'YRS_RESIDENCE', 'Y_BOX_GAMES'))
CUST_DF_CLEAN <- ore.push(CUST_DF_CLEAN)
dim(CUST_DF_CLEAN)
4233 9
これでデータ準備ステージは完了です。
親トピック: クラスタリング・ユース・ケース