[sklearn] 알고리즘이 분류, 회귀, 이상치탐지 중 어떤건가?

Python/Scikit-Learn 2021. 1. 24. 22:11

아주 희박한 확률로, model 객체를 받았는데, 이게 분류 (classifier) 모델인지, 회귀 (regressor) 모델인지, 이상치 (outlier_detector) 인지를 프로그램적으로 판단해야할 때가 있다. 그럴 때를 위해 sklearn에는 is_classifier, is_regressor, is_outlier_detector 총 3가지의 validation 툴이 존재한다. from sklearn.base import is_classifier, is_regressor, is_outlier_detector from sklearn.ensemble import RandomForestClassifier, RandomForestRegressor, IsolationForest models = [Rando..

Article Thumbnail
[sklearn] One Hot Encoding 되돌리기

Python/Scikit-Learn 2021. 1. 24. 21:56

scikit-learn에서 OneHotEncoder를 사용하고 되돌리는 방법에 대해 알아보자. 머신러닝을 할 때, sklearn.preprocessing.OneHotEncoder 또는 sklearn.preprocessing.LabelEncoder를 사용하여 학습을 하게된다면, 최종 예측 결과도 one-hot encoded 된 결과로 나오게 되는데, 간단하게 inverse_transform을 통해 원래 형식으로 바꿀 수 있다. 아래처럼 샘플 시리즈 ["a", "b", "c"]가 있다고 할 때, OneHotEncoder 또는 LabelEncoder를 사용하게 된다면: import pandas as pd from sklearn.preprocessing import LabelEncoder, OneHotEncod..

Article Thumbnail
[debugging] Access Control Allow Origin 에러 해결법

Python 2021. 1. 24. 17:49

UI 등을 만들 때, 만약 아래와 같은 에러가 난다면? Access to XMLHttpRequest at 'http://192.168.1.10:9999/api/list?' from origin 'http://localhost:3200' has been blocked by CORS policy. Response to preflight request doesn't pass acess control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. 99%의 확률로 브라우저 단에서 막고 있는 것이므로 아래와 같이 해결한다. 주의! 본 블로그는 본인이 실행한 코드에 대해 그 어떠한 책임도 지지 않습니다. Chro..

Article Thumbnail
[python] 파이썬 빌트인 모듈 (내장모듈들)

Python 2021. 1. 24. 14:44

주의: 이 글은 파이썬 3.5.4를 기준으로 작성되었습니다 공식 홈페이지[영문] 공식 홈페이지[한글]

Article Thumbnail
Python Enhancement Proposal (PEP) 이란?

Python 2021. 1. 24. 13:40

PEP가 뭐야? PEP (이하 펩)이란, Python Enhancement Proposal, 즉 파이썬 개선안의 약자로써, 파이썬 커뮤니티에 파이썬 디자인에 대한 정보를 공유하고, 새로운 기능 및 해당 기능의 프로세스 또는 환경에 대해 설명한다... 라고 되어있다. 뭔소리인고 하니, 개발할 땐 이렇게 하는게 좋고, 이 기능은 뭘 하는데 왜 만들었고, 뭐 그런것들을 문서화 해놓은 거라고 생각하면 된다. 물론, 실질적인 코드단의 문서야 이미 공식문서에 잘 적혀 있지만, 기본적으로 왜 이러한 기능들이 포함되어야 하는지, 어떻게 쓰길 기대하면서 만들었는지에 대한 서술이므로 시간날 때 한번쯤 읽어보면 파이썬에 대한 더 깊은 이해가 가능하다. PEP의 종류 기본적으로 3가지의 종류가 있다. Standards Tra..

Article Thumbnail
[python] 파이썬 버전별 차이점

Python 2021. 1. 24. 13:35

파이썬은 계속 새로워 지고 있다는데, 내가 쓰고 있는 파이썬 대비 다음 버전엔 어떤 차이가 있을까? 필자의 원래 개발 환경은 Ubuntu 16.04.X LTS로, 16년에 출시한 우분투 버전인데, 최근 20.04로의 이식을 고려하면서 자연스레 파이선 버전 또한 신경쓰게 되었다. 필자의 정리가 아니라 공식 문서를 보고 싶다면, 아래 링크를 참조: 3.5 -> 3.6 : What’s New In Python 3.6 — Python 3.9.1 documentation 3.6 -> 3.7 : What’s New In Python 3.7 — Python 3.9.1 documentation 3.7 -> 3.8 : What’s New In Python 3.8 — Python 3.9.1 documentation 파이썬..

Article Thumbnail
[python] URL에서 원하는 부분만 예쁘게 추출하기 - urllib

Python 2020. 8. 14. 11:13

URL 관련한 작업을 하고 있다면, 원하는 부분만 추출하고 싶을 때가 있다. 아래의 예시를 살펴보자. https://docs.python.org/3.5/search.html?q=urllib&check_keywords=yes 요녀석은 대략 4가지 부분으로 이루어져 있는데, scheme: https netloc: docs.python.org path: /3.5/search.html query: q=urllib&check_keywords=yes 라고 부분별 명칭이 있다. 이걸 re 를 써서 정규식으로 추출하려고 하면 머리가 아파질텐데, 다행히 built-in 라이브러리 중에 이걸 자동으로 해주는 녀석이 있다. from urllib.parse import urlparse url = 'https://docs.py..

Article Thumbnail
[debugging] Expected 2D array, got 1D array instead

Python/Scikit-Learn 2019. 11. 15. 16:01

sklearn을 사용하다 보면 제목과 같은 에러 메시지를 종종 볼 수 있다. 다행히 개발자분들 께서 친절히 에러 메시지에 해결책을 써두고는 한다: from sklearn.impute import SimpleImputer imp = SimpleImputer() imp.fit_transform([1,2,3]) ValueError: Expected 2D array, got 1D array instead: array=[1. 2. 3.]. Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample. fit_transform..

Article Thumbnail
[python] 파이썬 빌트인 함수 (내장함수들)

Python 2019. 3. 11. 16:08

주의: 이 글은 파이썬 3.5.4를 기준으로 작성되었습니다 공식 홈페이지[영문] 공식 홈페이지[한글] 사실 요즘엔 공홈에 한글 번역도 되어 있어서 쓸까말까 했지만... 워낙 설명이 거지같고 불친절해서 해외에서도 악명이 높다보니 어느정도의 주석과 팁을 포함해서 문서를 작성했습니다 각각의 내장함수들에 대해 문서를 작성할 때 마다 링크가 업데이트 됩니다. 독립문서가 존재하는 항목은 기울임이 적용되어 있습니다. Built-in Functions abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod() id() object() sorted() ascii() enumerate() input() oct() staticmeth..

Article Thumbnail
[List] 파이썬 List 완전 정복 - 기초편

Python 2019. 3. 11. 16:03

공식문서(영문) class list([iterable]) 먼저 list를 만드는 방법에는 여러가지가 존재하는데: 꺿쇠괄호(...?) 만 가지고 빈 리스트 생성 : [] 꺿쇠괄호로 오브젝트 또는 콤마로 구분된 여러 오브젝트들을 둘러싸서 리스트 생성: [1] 또는 [1,2,3] List Comprehension 으로 생성: [x for x in iterable] 생성자 (Constructor)를 통해 생성: list() 또는 list(iterable) 이 중 생성자를 통한 list 생성은 초보자에겐 그닥 추천하고 싶지 않은데, iterable 에 대한 개념이 제대로 잡히지 않은 상태에서 list('abc') 와 같이 꺿쇠괄호와 비슷한 문법으로 list를 생성해서 기대와는 전혀다른 결과가 나온다거나 할 수 있..

Article Thumbnail