inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[개정판] 파이썬 머신러닝 완벽 가이드

사이킷런으로 수행하는 타이타닉 생존자 예측 - 02

코드 오류

947

flytothesky7008

작성한 질문수 1

0

안녕하세요!

생존자 예측할때 여러 classifier를 사용하고 학습, 예측, 평가 과정에서 다음과 같은 오류가 발생했습니다.

코드는 선생님이 적어주신 대로 확인하였는데,  무엇이 문제인지 알고 싶습니다.

오류의 윗부부는 다음과 같습니다.

추가로, randomforest 평가 수치가 선생님께서 보여주신 수치와 다른데, 이것도 코드의 문제인가요?

DecisionTreeClassifier 정확도: 0.7877
RandomForestClassifier 정확도: 0.8547
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-32-a717530aaf63> in <module>
     20 
     21 # LogisticRegression 학습/예측/평가
---> 22 lr_clf.fit(X_train, y_train)
     23 lr_pred = lr_clf.predict(X_test)
     24 print('LogisticRegression 정확도: {0:.4f}'.format(accuracy_score(y_test, lr_pred)))

머신러닝 배워볼래요? python 통계

답변 5

0

권 철민

이유를 모르겠군요.

뭔가 다른 패키지랑 충돌이 나는것 같습니다만,,

일단 pip install -U scikit-learn으로 0.24 로 upgrade를 해보시지요.

이것도 안되면 conda 가상환경을 새로 생성하셔서 여기에 처음부터 sklearn을 설치를 해보시지요.

conda create -n new_env python==3.6

하신 뒤 conda command console에서 conda activate new_env

그런 다음에 sklearn 을 new_env 가상환경에서 한번 설치 하셔서 테스트 해보시는 게 좋을 것 같습니다.

이게 어려우시면, google colab 환경으로 실습 환경을 바꾸어 보시지요.

colab에서 Google drive에 있는 파일을 연동하는 부분은 섹션 8 텍스트 분석에

텍스트 분석 실습 1: 캐글 경연 Mercari Price Suggestion 실습 개요 및 Google Colab 사용설명 동영상에 있습니다. 

 

0

flytothesky7008

당뇨병 실습 코드에서도 로지스틱 회귀를 이용하였으나 오류가 생겼습니다.

sklearn 버젼은 다음과 같습니다.

'0.23.2'


X_train 만드는 소스코드는 다음과 같습니다.

# 피쳐 데이터 세트 X, 레이블 데이터 세트 y를 추출

# 맨 끝이 outcome column으로, label 값임. 컬럼 위치 -1이용해 추출

X = diabetes_data.iloc[:, :-1]

y = diabetes_data.iloc[:, -1]

X_train, X_test, y_train, y_test = train_test_split(X,y,test_size = 0.2, random_state = 156, stratify = y)

# 로지스틱 회귀로 학습 예측 평가 수행

lr_clf = LogisticRegression()

lr_clf.fit(X_train, y_train)

pred = lr_clf.predict(X_test)

0

권 철민

흠, 이유를 잘 모르겠군요.

현재 Scikit learn 버전을 알려 주시겠습니까?

import sklearn

print(sklearn.__version__)

그리고 X_train 만드는 소스코드도 아래 글로 올려 주십시요.

0

flytothesky7008

다른 분류기는 제대로 실행되는데, 로지스틱회귀만 오류가 나타나는 것 같습니다!

<실행 코드>

from sklearn.tree import DecisionTreeClassifier

from sklearn.ensemble import RandomForestClassifier

from sklearn.linear_model import LogisticRegression

from sklearn.metrics import accuracy_score

# 결정틀, 랜덤포레스트, 로지스틱 회귀를 위한 사이킷런 Classifier 클래스 형성

dt_clf = DecisionTreeClassifier(random_state = 11)

rf_clf = RandomForestClassifier(random_state = 11)

lr_clf = LogisticRegression()

# DecisionTreeClassifier 학습/예측/평가

dt_clf.fit(X_train, y_train)

dt_pred = dt_clf.predict(X_test)

print('DecisionTreeClassifier 정확도: {0:.4f}'.format(accuracy_score(y_test, dt_pred)))

# RandomForestClassifier 학습/예측/평가

rf_clf.fit(X_train, y_train)

rf_pred = rf_clf.predict(X_test)

print('RandomForestClassifier 정확도: {0:.4f}'.format(accuracy_score(y_test, rf_pred)))

# LogisticRegression 학습/예측/평가

lr_clf.fit(X_train, y_train)

lr_pred = lr_clf.predict(X_test)

print('LogisticRegression 정확도: {0:.4f}'.format(accuracy_score(y_test, lr_pred)))

--

<출력 결과>

DecisionTreeClassifier 정확도: 0.7877
RandomForestClassifier 정확도: 0.8547

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-17-d49f91c1d5fd> in <module>
     22 
     23 # LogisticRegression 학습/예측/평가
---> 24 lr_clf.fit(X_train, y_train)
     25 lr_pred = lr_clf.predict(X_test)
     26 print('LogisticRegression 정확도: {0:.4f}'.format(accuracy_score(y_test, lr_pred)))

~/opt/anaconda3/lib/python3.8/site-packages/sklearn/linear_model/_logistic.py in fit(self, X, y, sample_weight)
   1405         else:
   1406             prefer = 'processes'
-> 1407         fold_coefs_ = Parallel(n_jobs=self.n_jobs, verbose=self.verbose,
   1408                                **_joblib_parallel_args(prefer=prefer))(
   1409             path_func(X, y, pos_class=class_, Cs=[C_],

~/opt/anaconda3/lib/python3.8/site-packages/joblib/parallel.py in __call__(self, iterable)
   1039             # remaining jobs.
   1040             self._iterating = False
-> 1041             if self.dispatch_one_batch(iterator):
   1042                 self._iterating = self._original_iterator is not None
   1043 

~/opt/anaconda3/lib/python3.8/site-packages/joblib/parallel.py in dispatch_one_batch(self, iterator)
    857                 return False
    858             else:
--> 859                 self._dispatch(tasks)
    860                 return True
    861 

~/opt/anaconda3/lib/python3.8/site-packages/joblib/parallel.py in _dispatch(self, batch)
    775         with self._lock:
    776             job_idx = len(self._jobs)
--> 777             job = self._backend.apply_async(batch, callback=cb)
    778             # A job can complete so quickly than its callback is
    779             # called before we get here, causing self._jobs to

~/opt/anaconda3/lib/python3.8/site-packages/joblib/_parallel_backends.py in apply_async(self, func, callback)
    206     def apply_async(self, func, callback=None):
    207         """Schedule a func to be run"""
--> 208         result = ImmediateResult(func)
    209         if callback:
    210             callback(result)

~/opt/anaconda3/lib/python3.8/site-packages/joblib/_parallel_backends.py in __init__(self, batch)
    570         # Don't delay the application, to avoid keeping the input
    571         # arguments in memory
--> 572         self.results = batch()
    573 
    574     def get(self):

~/opt/anaconda3/lib/python3.8/site-packages/joblib/parallel.py in __call__(self)
    260         # change the default number of processes to -1
    261         with parallel_backend(self._backend, n_jobs=self._n_jobs):
--> 262             return [func(*args, **kwargs)
    263                     for func, args, kwargs in self.items]
    264 

~/opt/anaconda3/lib/python3.8/site-packages/joblib/parallel.py in <listcomp>(.0)
    260         # change the default number of processes to -1
    261         with parallel_backend(self._backend, n_jobs=self._n_jobs):
--> 262             return [func(*args, **kwargs)
    263                     for func, args, kwargs in self.items]
    264 

~/opt/anaconda3/lib/python3.8/site-packages/sklearn/linear_model/_logistic.py in _logistic_regression_path(X, y, pos_class, Cs, fit_intercept, max_iter, tol, verbose, solver, coef, class_weight, dual, penalty, intercept_scaling, multi_class, random_state, check_input, max_squared_sum, sample_weight, l1_ratio)
    760                 options={"iprint": iprint, "gtol": tol, "maxiter": max_iter}
    761             )
--> 762             n_iter_i = _check_optimize_result(
    763                 solver, opt_res, max_iter,
    764                 extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)

~/opt/anaconda3/lib/python3.8/site-packages/sklearn/utils/optimize.py in _check_optimize_result(solver, result, max_iter, extra_warning_msg)
    241                 "    https://scikit-learn.org/stable/modules/"
    242                 "preprocessing.html"
--> 243             ).format(solver, result.status, result.message.decode("latin1"))
    244             if extra_warning_msg is not None:
    245                 warning_msg += "\n" + extra_warning_msg

AttributeError: 'str' object has no attribute 'decode'

0

권 철민

안녕하십니까,

뭔가 학습 데이터 세트에 문제가 있어 보입니다만,

실습용 소스코드 커널을 재 기동을 시키고 다시 수행을 해보십시요. 그래도 오류가 발생하면,  전체 출력 메시지를 여기에 텍스트 형식으로 올려 주십시요. 현재는 오류 메시지가 잘려서 확인이 어렵습니다.

그리고 소스코드 전체 역시 여기에 텍스트 형식으로 올려 주십시요.

안녕하세요 열심히 수강중인 학생입니다

0

59

2

정수 인덱싱

0

67

2

넘파이 오류

0

83

2

11강 numpy의 axis 축 질문 드립니다.

0

84

2

Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.

0

76

2

Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.

0

68

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

74

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

62

2

5강 강의 오류가 있어요.

0

82

1

실무에서 LTV 관련 모델 선택 질문입니다!

0

71

2

14강 강의 듣는중에 궁금한게 있어서 질문합니다~

0

68

3

파이썬 다운그레이 후 사이킷런 재설치

0

115

2

좋은 강의 감사합니다.

0

71

2

scoring 함수 음수값

0

66

2

6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?

0

98

2

분류 평가 정확도 예측

0

75

2

안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.

0

97

1

카카오톡 채널 있나요

0

105

1

혹시 강의에서 사용하시는 ppt 받을 수 있는건가요

0

187

2

pca 스케일링 관련하여 질문드립니다.

0

100

2

주피터 대신 구글 코랩

0

170

2

강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?

0

145

2

실루엣 스코어..

0

82

2

float64 null 값 처리 방법

0

100

2