1
我有從Kaggle網站着名的泰坦尼克號數據集。我想用邏輯迴歸來預測乘客的生存。我在R中使用glm()函數。首先將我的數據幀(總行數= 891)分成兩個數據幀,即列(從第1行到第800行)和測試(從第801行到第891行)。 的代碼如下在泰坦尼克號數據集中應用邏輯迴歸
`
>> 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')
`
當我運行的代碼
prediction <- predict(model,newdata = newtest,type='response')
我收到以下錯誤EVAL
錯誤(表達式的最後一行,envir,enclos):object'Age'not found
任何人都可以請解釋是什麼問題。我已經檢查過新的變量,並且似乎沒有任何問題。
這裏是鏈接到泰坦尼克號的數據集https://www.kaggle.com/c/titanic/download/train.csv
的問題是,你的'newtest'數據幀沒有'Age','Pclass'和'Fare'列名,但'測試。年齡','test.Pclass'和'test.Fare'。你必須重命名它們。 – Kabulan0lak
感謝您的幫助。我可以知道如何重命名數據框的列名稱嗎? –