1. ホーム
  2. r

[解決済み】ロジスティック回帰 - eval(family$initialize) : y 値は 0 <= y <= 1 である必要があります。

2022-02-09 05:07:38

質問

ここで提供されているデータセットで、Rを使ってロジスティック回帰を行おうとしています。 http://archive.ics.uci.edu/ml/machine-learning-databases/00451/ 乳がんについてです。このデータセットには、カラム 分類 のみを含む 1 (患者が癌でない場合)または 2 (がんに罹患している場合)

library(ISLR)
dataCancer <- read.csv("~/Desktop/Isep/Machine 
Leaning/TD/Project_Cancer/dataR2.csv")
attach(dataCancer)
names(dataCancer)
summary(dataCancer)

cor(dataCancer[,-11])
pairs(dataCancer[,-11])

#Step : Split data into training and testing data
training = (BMI>25)
testing = !training
training_data = dataCancer[training,]
testing_data = dataCancer[testing,]

Classification_testing = Classification[testing]

#Step : Fit a logistic regression model using training data
as.factor(dataCancer$Classification)
classification_model = glm(Classification ~ ., data = 
training_data,family = binomial )
summary(classification_model)

スクリプトを実行すると、:

> classification_model = glm(Classification ~ ., data = training_data,family = binomial )
Error in eval(family$initialize) : y values must be 0 <= y <= 1
> summary(classification_model)
Error in summary(classification_model) : object 'classification_model' not found . 

を追加しました。 as.factor(dataCancer$Classification) 他の投稿にあるように、それは私の問題を解決していません。 この予測変数の内容である場合、分類の値を0と1の間で持たせる方法を教えていただけないでしょうか? よろしくお願いします。

解決方法は?

を追加しました。 as.factor(dataCancer$Classification) をスクリプトに追加しても、データセットが データキャンサー がアタッチされている場合、上記のようなコマンドを実行しても、データセット変数 分類 を係数に変換します。コンソールにファクターが表示されるだけです。

学習用データセットにモデルを当てはめたいので、この場合は

training_data$Classification <- as.factor(training_data$Classification)
classification_model <- glm(Classification ~ ., data = 
                           training_data, family = binomial) 

を使用するか as.factor 関数で glm ラインコード

classification_model <- glm(as.factor(Classification) ~ ., data = 
                           training_data, family = binomial)