"Sklearn 다항로지스틱회귀분석"의 두 판 사이의 차이

잔글 (봇: 자동으로 텍스트 교체 (-<source +<syntaxhighlight , -</source> +</syntaxhighlight>))
 
(다른 사용자 한 명의 중간 판 8개는 보이지 않습니다)
1번째 줄: 1번째 줄:
==개요==
==개요==
;Sklearn 다항로지스틱회귀분석
;Sklearn 다항로지스틱회귀분석
* 매 5번째 요소를 테스트셋으로하고 나머지를 훈련셋으로 하도록 데이터를 분할하였다. (대략 [[체계적 표집]])
:[[R 다항로지스틱회귀분석]]과 동일한 훈련셋/테스트셋을 부여하고자 했기 때문이다.


<source lang='python' run>
<syntaxhighlight lang='python' notebook>
# 데이터 준비
# 데이터 준비
from sklearn import datasets
from sklearn import datasets
8번째 줄: 10번째 줄:
df_x = iris.data
df_x = iris.data
df_y = iris.target
df_y = iris.target
print( len(df_x), len(df_y) )       # 150 150
print( len(df_x), len(df_y) ) # 150 150
 
</syntaxhighlight>
<syntaxhighlight lang='python' notebook>
# 훈련셋/테스트셋 분리
# 훈련셋/테스트셋 분리
import numpy as np
import numpy as np
train_x = df_x[np.arange(len(df_x)) % 5 != 4] # 매 5번째만 제외
train_x = df_x[np.arange(len(df_x)) % 5 != 4] # 매 5번째만 제외
train_y = df_y[np.arange(len(df_y)) % 5 != 4] # 매 5번째만 제외
train_y = df_y[np.arange(len(df_y)) % 5 != 4] # 매 5번째만 제외
test_x = df_x[np.arange(len(df_x)) % 5 == 4]   # 매 5번째만 포함
test_x = df_x[np.arange(len(df_x)) % 5 == 4] # 매 5번째만 포함
test_y = df_y[np.arange(len(df_y)) % 5 == 4]   # 매 5번째만 포함
test_y = df_y[np.arange(len(df_y)) % 5 == 4] # 매 5번째만 포함
print( len(train_x), len(train_y) ) # 120 120
print( len(train_x), len(train_y) ) # 120 120
print( len(test_x), len(test_y) )  # 30 30
print( len(test_x), len(test_y) )  # 30 30
 
</syntaxhighlight>
<syntaxhighlight lang='python' notebook>
# fit model
# fit model
from sklearn.linear_model import LogisticRegression
from sklearn.linear_model import LogisticRegression
model = LogisticRegression(C=1000).fit(train_x, train_y)
model = LogisticRegression(C=100000,solver='newton-cg').fit(train_x, train_y)
print( model )
print( model )
 
</syntaxhighlight>
<syntaxhighlight lang='python' notebook>
# 테스트셋 예측
# 테스트셋 예측
predicted = model.predict(test_x)
predicted = model.predict(test_x)
import pandas as pd
import pandas as pd
pd.crosstab(predicted, test_y)
print( pd.crosstab(predicted, test_y) )
</source>
</syntaxhighlight>


==같이 보기==
==같이 보기==
39번째 줄: 44번째 줄:
* https://scikit-learn.org/stable/auto_examples/linear_model/plot_iris_logistic.html
* https://scikit-learn.org/stable/auto_examples/linear_model/plot_iris_logistic.html


[[분류: sklearn 회귀분석]]
[[분류: sklearn]]
[[분류: 로지스틱 회귀분석]]
[[분류: 로지스틱 회귀분석]]
[[분류: iris]]

2021년 10월 23일 (토) 10:36 기준 최신판

1 개요[ | ]

Sklearn 다항로지스틱회귀분석
  • 매 5번째 요소를 테스트셋으로하고 나머지를 훈련셋으로 하도록 데이터를 분할하였다. (대략 체계적 표집)
R 다항로지스틱회귀분석과 동일한 훈련셋/테스트셋을 부여하고자 했기 때문이다.
# 데이터 준비
from sklearn import datasets
iris = datasets.load_iris()
df_x = iris.data
df_y = iris.target
print( len(df_x), len(df_y) ) # 150 150
# 훈련셋/테스트셋 분리
import numpy as np
train_x = df_x[np.arange(len(df_x)) % 5 != 4] # 매 5번째만 제외
train_y = df_y[np.arange(len(df_y)) % 5 != 4] # 매 5번째만 제외
test_x  = df_x[np.arange(len(df_x)) % 5 == 4] # 매 5번째만 포함
test_y  = df_y[np.arange(len(df_y)) % 5 == 4] # 매 5번째만 포함
print( len(train_x), len(train_y) ) # 120 120
print( len(test_x), len(test_y) )   # 30 30
# fit model
from sklearn.linear_model import LogisticRegression
model = LogisticRegression(C=100000,solver='newton-cg').fit(train_x, train_y)
print( model )
# 테스트셋 예측
predicted = model.predict(test_x)
import pandas as pd
print( pd.crosstab(predicted, test_y) )

2 같이 보기[ | ]

3 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}