私は R で predict() を読んでいて、混乱しています:
ランダム サンプリングを使用してトレーニング データとテスト データを作成したデータセット Spam があります。trainSpam (システムをトレーニングするためのトレーニング データ セット) を使用しました。テスト データセット (testSpam) でテストすることにより、モデルがどれほど優れているかを確認したいと考えています。
predictionModel = glm(numType ~ charDollar, family = "binomial", data = trainSpam)
predictionTest = predict(predictionModel, testSpam)
predictedSpam = rep("nonspam", dim(testSpam)[1])
predictedSpam[predictionModel$fitted > 0.5] = "spam" #Here is my problem
table(predictedSpam, testSpam$type)
私たちが言う行で:
predictedSpam[predictionModel$fitted > 0.5] = "spam"
predictionModel$fitted
テスト データでスパムを予測する方法。トレーニング データからの predictModel$fitted を使用しているようです。次に、テスト データのスパムと比較します。誰か説明できますか?
これが私が理解したものです。行で:
predictModel = glm(numType ~ charDollar、家族 = 「二項」、データ = trainSpam)
trainSpam データを使用してモデルを作成します。
次の行で:
predictTest = predict(predictionModel, testSpam)
テストデータ以外は同じモデルを使用して、predictionTest を作成します。
次の行で:
predictSpam = rep("非スパム", dim(testSpam)[1])
すべての値が「非スパム」のベクターを作成しました
次の行で:
predictSpam[predictionModel$fitted > 0.5] = "スパム"
どの行をスパムとして分類するかを決定するために、トレーニング データに適合させたpredictionModel$fittedを使用しています。スパムを識別するためにpredictionTestのようなものを使うべきではありませんか?
それがどうあるべきかについての私の考えは次のとおりです。
> predictionModel = glm(numType ~ charDollar, family = "binomial", data = trainSpam)
> predictionTest = predict(predictionModel, testSpam,type="response")
> predictedSpam = rep("nonspam", dim(testSpam)[1])
> predictedSpam[predictionTest > 0.5] = "spam"
> table(predictedSpam, testSpam$type)