728x90

사이킷런(sklearn)을 이용한 로지스틱 회귀모형의 예제입니다. 데이터는 사이킷런에 들어있는 iris 데이터를 사용하였습니다.

 

[전체 프로그램]

import pandas as pd
from sklearn.datasets import load_iris
iris = load_iris()  
X= pd.DataFrame(iris.data,columns=iris.feature_names)
y= pd.Series(iris.target)

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y, 
    train_size=0.7, test_size=0.3, random_state=12345)

from sklearn.linear_model import LogisticRegression
model_out = LogisticRegression(random_state=12345)
model_out.fit(X_train,y_train)
model_out.predict(X_test)
model_out.score(X_test,y_test)

[설명]

import pandas as pd                        # 판다스 불러오기
from sklearn.datasets import load_iris   # 사이킷런에 포함되어 있는 데이터 iris 불러오기(Buch 형태)
iris = load_iris()                                #  iris 데이터 불러오기
X= pd.DataFrame(iris.data,columns=iris.feature_names)  # iris.data 는 실제 데이터... 그리고 변수명 지정
y= pd.Series(iris.target)                      # 종속변수(target)

from sklearn.model_selection import train_test_split   #Training 데이터와 Test 데이터를 만듬
X_train, X_test, y_train, y_test = train_test_split(X,y, 
    train_size=0.7, test_size=0.3, random_state=12345)

from sklearn.linear_model import LogisticRegression   # LogisticRegression 불러옴
model_out = LogisticRegression(random_state=12345)   # 모형의 객체 만듬
model_out.fit(X_train,y_train)    # Train데이터와 train 타겟 데이터를 이용 모형 실행

model_out.fit(X_train,y_train)

Out[11]: LogisticRegression(random_state=12345)Out[12]: 
array([1, 0, 1, 0, 0, 0, 1, 0, 1, 2, 0, 2, 1, 2, 2, 2, 0, 2, 1, 1, 1, 1,
       0, 1, 0, 2, 0, 1, 0, 2, 0, 0, 2, 2, 1, 2, 2, 1, 0, 1, 0, 1, 0, 2,
       1])

model_out.predict(X_test)        # Test 데이터를 이용하여 예측


model_out.score(X_test,y_test)   # Test 데이터를 이용한 결과와 y_test 비교하여 정확률을 리턴

model_out.score(X_test,y_test)
Out[13]: 0.9777777777777777

+ Recent posts