1
私はKaggleのウェブサイトから有名なタイタニックデータセットを持っています。ロジスティック回帰を使って乗客の生存を予測したい。 Rでglm()関数を使用しています。最初にデータフレーム(合計行= 891)を列車(行1から800)とテスト(行801から891)の2つのデータフレームに分割します。 コードはタイタニックデータセットでロジスティック回帰を適用する
`
>> data <- read.csv("train.csv", stringsAsFactors = FALSE)
>> names(data)
`[1] "PassengerId" "Survived" "Pclass" "Name" "Sex" "Age" "SibSp"
[8] "Parch" "Ticket" "Fare" "Cabin" "Embarked" `
#Replacing NA values in Age column with mean value of non NA values of Age.
>> data$Age[is.na(data$Age)] <- mean(data$Age, na.rm = TRUE)
#Converting sex into binary values. 1 for males and 0 for females.
>> sexcode <- ifelse(data$Sex == "male",1,0)
#dividing data into train and test data frames
>> train <- data[1:800,]
>> test <- data[801:891,]
#setting up the model using glm()
>> model <- glm(Survived~sexcode[1:800]+Age+Pclass+Fare,family=binomial(link='logit'),data=train, control = list(maxit = 50))
#creating a data frame
>> newtest <- data.frame(sexcode[801:891],test$Age,test$Pclass,test$Fare)
>> prediction <- predict(model,newdata = newtest,type='response')
`
を次のようにあると私はコードを私は次のエラーにevalの中
エラーを取得
prediction <- predict(model,newdata = newtest,type='response')
(exprの最後の行を実行すると、envir、enclos):オブジェクト 'Age'が見つかりません
誰でも問題の内容を説明してください。私はnewteset変数をチェックしており、そこに問題はないようです。私はコメントとして、あなたは、列名に問題があり、
data$sexcode <- ifelse(data$Sex == "male",1,0)
その後:ここ
はタイタニックデータへのリンクはまず、あなたがデータフレームに直接sexcode
を追加する必要があります
https://www.kaggle.com/c/titanic/download/train.csv
問題は、あなたの 'newtest'データフレームは、列名が、'テストとして 'Age'、' Pclass'と 'Fare'を持っていないということです。 Age'、 'test.Pclass'、' test.Fare'です。それらの名前を変更する必要があります。 – Kabulan0lak
助けてくれてありがとう。データフレームの列名を変更する方法を知っていますか? –