Q> PyCaret의 에러 Simple_Imputer' object has no attribute 'fill_value_categorical'에 대한 문의

머신러링 모델을 구현하는데 깊이 있는 전문지식이 없더라도 비즈니스 도메인에 대한 이해가 높다면 쉽게 머신러닝 모델링을 구현할 수 있다는 AutoML을 소개받았습니다.
AutoML중에서도 안전성이 있고, 저의 개발환경인 Python과 연동성이 좋은 PyCaret을 이용해 개발하고 있는데요
PyCaret 공식 홈페이지에 있는 간단한 구현 전체 내용을 담고 있는 예제를 테스트하고 있는데 계속 setup() 메소드에서 에러가 발생합니다.
구글링으로 온 세상을 다 뒤져보고 해봤는데도 며칠째 해결이 되고 있지 않습니다. 도와주세요.

A>

o PyCaret을 비롯한 AutoML(Automated Machine Learning)의 시장은 정말 커질 겁니다.

기존에 ML(Machine Learning)이 연구원들만의 전유물이었다면, 단 몇 줄만으로(Low code) ML을 구현할 수 있는 AutoML을
높은 업무 이해도를 기반으로 ML을 쉽게 구현하고 활용한다면 ML의 활용도는 무궁무진해질 수 있다는 관점에서
AutoML 시장이 커질 것은 자명합니다.

단적인 예로 Azure, AWS, Elasticsearch 등에서 제공하는 ML의 기능들도 결국은 AutoML의 Framework를 기반으로 서비스하고 있으니까요.

o PyCaret은 저희도 제품개발에 일부 사용하고 있습니다.

정말 몇 줄 안되는 코드로 20여 개의 알고리즘을 비교하고, 가장 최적의 알고리즘을 선택하여 적용할 수 있는 기능은 환상적입니다.

o PyCaret의 에러는 대부분 setup 메소드에서 많이 납니다.

이놈도 다른 python의 라이브러리처럼 진짜 속 많이 썩입니다. 주로 setup 메소드에서 전혀 엉뚱한 에러들이 튀어나오곤 합니다.

~\anaconda3\lib\site-packages\PyCaret\regression.py
~\anaconda3\lib\site-packages\PyCaret\internal\tabular.py
~\anaconda3\lib\site-packages\sklearn\base.py
~\anaconda3\lib\pprint.py
~\anaconda3\lib\site-packages\sklearn\utils\_pprint.py
~\anaconda3\lib\site-packages\sklearn\utils\_pprint.py
~\anaconda3\lib\site-packages\sklearn\utils\_pprint.py
~\anaconda3\lib\site-packages\sklearn\base.py


그러나 대부분 아래의 두 가지 에러로 귀결되는 것을 알 수 있습니다. 구글링을 뒤져봐도 별다른 시원한 답변을 찾기 힘듭니다.

AttributeError: 'Simple_Imputer' object has no attribute 'fill_value_categorical'
PyCaret error 'Simple_Imputer' object has no attribute 'fill_value_categorical'

o PyCaret 관련버전들을 맞춰보십시오

저는 다른 python 오픈소스들과 마찬가지로 PyCaret과 pandas 등 관련성 있는 패키지들을 모두 업데이트해서 해결했습니다.
가장 최근에 업데이트해서 맞춘 버전은 아래와 같습니다.

  • PyCaret 2.3.1
  • pandas 1.2.4
  • numpy 1.19.5
  • python 3.8.10

특히, anaconda와 pip를 혼용해서 사용하는 경우에 충돌이 날 수 있어서, 저희 경우 pip로 통일해서 설치 및 업데이트하니깐 충돌을 줄일 수 있었습니다.
다만, docker를 쓰시는 경우나 가상환경으로 쓰시는 경우에는 더 필요한 라이브러리가 있을 수 있으니 설치된 라이브러리를 확인하시는 것이 좋을 것 같습니다.