2017-11-20 18 views
0

私はRの学習者です。私はインターネットからの「ヒューマンアクティビティ認識」データセットに取り組んでいます。これには563の変数があり、最後の変数は予測されるべきクラス変数 'Activity'です。Rのデータセットで(PCAの結果として)PCを使用する方法は?

私はR.

のキャレットパッケージからここKNNアルゴリズムを使用しようとしています、私は最後の2を除く561の数値型変数を別のデータセットを作成している - 主題と活動。

私はPCAを実行し、上位20台のPCを使用することに決めました。

pca1 <- prcomp(human2, scale = TRUE) 

は、私が「NEWDAT」今

newdat <- pca1$x[ ,1:20] 

私は以下のコードを実行するためにtryig午前と呼ばれる別のデータセットでは、これらのパソコンのデータを保存した:しかし、このNEWDATにはないので、それは私にエラーを与えます私は生データからの最後の列の活動」を抽出し、(上記)KNNフィットにそれを使用するには「NEWDAT」がCBINDを()を使用して、それを追加しようとした

trctrl <- trainControl(method = "repeatedcv", number = 10, repeats = 3) 
set.seed(3333) 
knn_fit <- train(Activity ~., data = newdat, method = "knn", 
       trControl=trctrl, 
       preProcess = c("center", "scale"), 
       tuneLength = 10) 

変数私のクラスを持っているが、その得ていません添付。

どのようにPCを使用するのですか?以下は


コードです:

human1 <- read.csv("C:/NIIT/Term 2/Prog for Analytics II/human-activity-recognition-with-smartphones (1)/train1.csv", header = TRUE) 
humant <- read.csv("C:/NIIT/Term 2/Prog for Analytics II/human-activity-recognition-with-smartphones (1)/test1.csv", header = TRUE) 

#taking the predictor columns 
human2 <- human1[ ,1:561] 


pca1 <- prcomp(human2, scale = TRUE) 
newdat <- pca1$x[ ,1:15] 
newdat <- cbind(newdat, Activity = as.character(human1$Activity)) 

pca1 <- preProcess(human1[,1:561], 
        method=c("BoxCox", "center", 
          "scale", "pca")) 
PC = predict(pca1, human1[,1:561]) 


trctrl <- trainControl(method = "repeatedcv", number = 10, repeats = 3) 
set.seed(3333) 
knn_fit <- train(Activity ~., data = newdat, method = "knn", 
       trControl=trctrl, 
       preProcess = c("center", "scale"), 
       tuneLength = 10) 

#applying knn_fit to test data 

test_pred <- predict(knn_fit, newdata = testing) 
test_pred 

#checking the prediction 
confusionMatrix(test_pred, testing$V1) 

私は以下の部分でエラーに実行しています。私はエラーが添付されました:

> knn_fit <- train(Activity ~., data = newdat, method = "knn", 
+     trControl=trctrl, 
+     preProcess = c("center", "scale"), 
+     tuneLength = 10) 
Error: cannot allocate vector of size 1.3 Gb 
+0

こんにちは!私は間違った[編集]リンクをクリックしたと思います。質問を編集するのではなく、質問に対する回答を編集しようとしました。編集レビューをご覧くださいhttps://stackoverflow.com/review/suggested-edits/18005793 –

答えて

0

どのようにコードを表示することができますか?私はあなたが単にStringsAsFactors = TRUEによって生み出された困難に足を踏み入れたと思う。次の行が問題を解決していますか?

#... 
#newdat <- pca1$x[ ,1:20]  
newdat <- cbind(newdat, Activity = as.character(human2$Activity)) 
+0

マヌエルありがとう、私はあなたから提案しました。以下のコードはデータセットを取得していますが、エラーが発生しています:.................................. ...>> trctrl < - trainControl(method = "repeatedcv"、number = 10、repeats = 3) > set.seed(3333) > knn_fit < - train(アクティビティ〜、データ= newdat、メソッド= "knn"、 + trControl = trctrl、 + preProcess = c( "center"、 "scale")、 + tuneLength = 10)................... .................................................. ........................................エラー:サイズ412.4 Mbのベクトルを割り当てることができません –

+0

質問を編集してエラーの完全な出力を投稿してください。さらに、 'dput(human2)'を介して使用しているデータや、 'dput(head(human2))'が長すぎる場合には、さらにいくつかの情報を提供してください。 –

+0

ここに十分な文字がないので、最初の投稿を編集しました。私はエラーと共に使用している完全なコードを与えました。 –

関連する問題