1
카글 글 웹 사이트에서 유명한 타이타닉 데이터 세트를 보유하고 있습니다. 로지스틱 회귀를 사용하여 승객의 생존을 예측하고 싶습니다. 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')
(EXPR의 마지막 줄을 실행으로 , envir, enclos) : 'Age'개체가 없습니다.
누구든지 문제를 설명해 주실 수 있습니까? 내가 newteset 변수를 확인하고 거기에 어떤 문제가없는 것 같습니다. 내가 주석으로, 당신은 당신의 열 이름에 문제가있다,
data$sexcode <- ifelse(data$Sex == "male",1,0)
다음 : 여기
는 거대한 데이터에 대한 링크가 먼저, dataframe에 직접sexcode
를 추가해야
https://www.kaggle.com/c/titanic/download/train.csv
문제는 당신'newtest' 데이터 프레임'Age','Pclass' 및 열 이름과 같은 'Fare'하지만,'검사를하지 않는다는 것입니다 :
그래서 여기에 전체 작업 코드입니다. Age','test.Pclass' 및'test.Fare'를 사용합니다. 이름을 변경해야합니다. – Kabulan0lak
도움에 감사드립니다. 데이터 프레임의 열 이름을 바꾸는 방법을 알고 있습니까? –