科学の箱

科学・IT・登山の話題

機械学習

logistic regressionでの失敗

投稿日:2014年9月19日 更新日:

ロジスティック回帰でデータを分析しようとしたところうまくいかず。どうにもこうにもおかしな値が出るし、他の回帰分析との結果と明らか矛盾している。よくわからないのでとりあえずirisデータを使って手順を追っていきおかしなところを検証した。

おおいなる間違いをしていたのでメモしておく。

まずirisで作ったRのコードは以下の通り。

library(caret)

#
# create data set for train and testing
#
iris_data <- iris[,c(1:4)]
iris_class <- iris[5] # Factor

iris_train <- createDataPartition(y=iris_class$Species, p=0.75, list=FALSE)
iris_data_train <- iris_data[iris_train,]
iris_data_testing <- iris_data[-iris_train,]
iris_class_train <- data.frame(Species=iris_class[iris_train,])
iris_class_testing <- data.frame(Species=iris_class[-iris_train,])

#
# glm - logistic analysis
#
# glm with one independent variable.
res_glm_binomial <- glm(iris_class_train$Species~iris_data_train[,1], data=iris_data_train, family=binomial)
x <- summary(res_glm_binomial)
x
x$coefficients[8] # if less than 0.05, then siginificant.

# now extend to all of the column in iris_data_train to most significant column.
func_glm <- function(parm01){
  res_glm_binomial <- glm(iris_class_train$Species~iris_data_train[,parm01] , data=iris_data_train, family=binomial)
  x <- summary(res_glm_binomial)
  print( x$coefficients[8])
}
for (i in 1:length(iris_data_train)){
   func_glm(i)
}
#memo, from above anlysis, we can use column 1 and 2.

コードとしては単純なのになぜかロジスティック単回帰も重回帰でもおかしな変数が有意になってくる。何がおかしいかわからなかったので同じようにirisでロジスティック回帰をしているページを探してみたところ下記があった。

http://alumni.media.mit.edu/~tpminka/courses/36-350.2001/lectures/day31/

このページでロジスティック重回帰を実行しているがそのコードを見てみると以下のようになっている。

Consider the iris data from , reduced to the two classes versicolor and virginica:
data(iris) iris <- iris[(iris$Species != "setosa"),] 
iris$Species <- factor(iris$Species) 
predict.plot(Species~.,iris)

コードとしては単純だが何でsetosaを除いているんだろう、、、そうだよロジスティック回帰だから従属変数は2値じゃないとだめじゃないか。irisデータは3種類から分けるからそのまま使っては当然おかしな結果が出ることになる。

わかってみたら単純だったけどどんだけ時間がかかったんだろう。

メタ情報

inarticle



メタ情報

inarticle



-機械学習

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

実践ワークショップExcel徹底活用ビジネスデータ分析

メモ 相関係数の行列で傾向が似ている変数を探すことができる。例えば過去データとして商品A,B,C,D,E,Fがあるとする。今商品Xを開発し、マーケティング方法を決めたい。この時A~Fについてはすでに売 …

no image

回帰と分類の違い

回帰と分類は両方とも”予測”問題である。予測とは従属変数から目的変数を明らかにする。この目的変数の種類により回帰と分類に分けられる。 回帰では連続した数値を予測する。例えば株価 …

no image

DictVectorizerを使ってカテゴリデータについて特徴抽出をする

都市における温度データを考える。 measure = [ {‘city’: ‘Dubai’, ‘temperature’: 33.}, {‘city’: ‘London’, ‘temperature’ …

no image

手書き数字のデータセットについてイメージを確認

sklearnには手書き数字のデータが用意されている。このデータはイメージの分類モデルを学ぶためによいスタートである。今回はこのバイナリデータを読み込み、イメージとして確認する。 内容 load_di …

no image

線形回帰とリッジ回帰とラッソ回帰の違い

用語 線形回帰 データから平均二乗誤差を最低にするパラメータΘを求めて、直線で回帰すること $$ y = Θ_0 + Θ_1 \times x $$ コスト関数 損失関数とも呼ばれる。実際のデータと予 …

2014年9月
« 8月   10月 »
1234567
891011121314
15161718192021
22232425262728
2930  

side bar top



アーカイブ

カテゴリー