편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
==개요== | ==개요== | ||
;Sklearn 다항로지스틱회귀분석 | ;Sklearn 다항로지스틱회귀분석 | ||
< | <source lang='python' run> | ||
# 데이터 준비 | # 데이터 준비 | ||
from sklearn import datasets | from sklearn import datasets | ||
10번째 줄: | 8번째 줄: | ||
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 | ||
# 훈련셋/테스트셋 분리 | # 훈련셋/테스트셋 분리 | ||
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 | test_x = df_x[np.arange(len(df_x)) % 5 == 4] # 매 5번째만 포함 | ||
test_y | 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 | ||
# fit model | # fit model | ||
from sklearn.linear_model import LogisticRegression | from sklearn.linear_model import LogisticRegression | ||
model = LogisticRegression(C= | model = LogisticRegression(C=10).fit(train_x, train_y) | ||
print( model ) | print( model ) | ||
# 테스트셋 예측 | # 테스트셋 예측 | ||
predicted = model.predict(test_x) | predicted = model.predict(test_x) | ||
import pandas as pd | import pandas as pd | ||
pd.crosstab(predicted, test_y) | |||
</ | </source> | ||
==같이 보기== | ==같이 보기== | ||
44번째 줄: | 39번째 줄: | ||
* 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 회귀분석]] | ||
[[분류: 로지스틱 회귀분석]] | [[분류: 로지스틱 회귀분석]] | ||