전체 글
-
[imbalanced-learn] 기계학습에서 불균형 데이터를 처리하는 샘플링 알아보기Python/기계학습 2024. 3. 15. 13:28
기계학습에서 불균형 데이터를 처리하는 imbalanced-learn 기계학습(Machine Learning) 작업을 진행하다 보면, 불균형 데이터(Imbalanced Data) 문제에 맞닥뜨리는 일이 종종 생깁니다. 예를 들어, 강아지와 고양이를 구분하는 모델을 구현한다고 하면 항상 강아지와 고양이 사진이 1:1 비율로 확보되지는 않습니다. 이 때 기계학습 모델이 한쪽의 클래스 정보에 편향된 학습을 하는 문제가 발생하는데, 문제는 이런 모델이 분류나 예측 등의 결과마저도 편향되는 상황이 일어납니다. [그림 1] 의사결정나무 모델의 불균형 데이터 학습 결과 차이 (출처) 그래서, 이런 문제를 해결하기 위해 데이터 샘플링(Data Sampling) 과정을 거칩니다. 데이터 샘플링은 특정 편향 문제를 해결할 ..
-
[scikit-learn] 머신러닝 최적화를 위한 GridSearch, RandomSearch CV 알아보기Python/기계학습 2024. 3. 14. 14:17
기계학습 모델 최적화를 위한 GridSearch, RandomSearch Cross Validation 알아보기 파이썬(Python)으로 기계학습을 구현할 때 고려해야 할 사항은 아주 많습니다. 이번에는 GridSearch, RandomSearch Cross Validation를 이용해서 기계학습 모델을 최적화하는 작업을 GridSearch, RandomSearch Cross Validation을 이용해서 알아보도록 하겠습니다. 두 교차검증 역시 사이킷런에서 sklearn.model_selection 모듈에서 지원하고 있습니다. 최적화(Optimization) 기계학습 모델을 만들 때는, 모델 종류 및 입력 데이터만 선정하는게 아니라 초매개변수(하이퍼파라미터, Hyper-parameter)를 설정하는 작..
-
[scikit-learn] 기계학습 모델 평가용 k-Fold Cross Validation 알아보기Python/기계학습 2024. 3. 14. 10:24
기계학습 모델 평가를 위한 k-Fold Cross Validation 알아보기 기계학습 모델을 만든 뒤, 학습만 끝냈다고 해서 모든 문제가 해결되는게 아닙니다. 얼마나 잘 돌아가는 모델을 만들었는지 평가(Validation)하는 과정이 필요한데요, 이번에는 파이썬(Python)의 기계학습 패키지인 사이킷런(scikit-learn)에서 제공하는 교차 검증(Cross Validation) 기능을 알아보도록 하겠습니다. 교차 검증 교차 검증이란, 데이터의 다양한 부분집합을 사용해서 모델을 테스트하는 검증 기술입니다. 기계학습(지도학습에 한해 설명합니다)은 항상 학습 데이터(training set)의 특징에 지나치게 의존도하게 되는 과적합(overfitting) 문제가 발생할 위험이 있는데, 이를 방지하기 위해..
-
[scikit-learn] 사이킷런 레이블인코더, 원-핫 인코더로 기계학습 데이터 전처리하기Python/기계학습 2024. 3. 13. 10:21
사이킷런 레이블인코더, 원-핫 인코더를 이용해서 기계학습 데이터 전처리하기 기계학습에 사용되는 데이터는 기본적으로 숫자 기반의 입력값을 가져야 합니다. 그런데, 이 세상의 모든 데이터가 숫자로만 이루어져 있지는 않지요. 그래서 레이블 인코딩(Label Encoding) 및 원-핫 인코딩(One-Hot Encoding)이라는 개념이 생겨나게 되었습니다. 각각의 인코딩은 아래와 같이 정의할 수 있습니다. 레이블 인코딩이란, n개의 항목이 있다면, 각 항목을 0, 1, 2, ..., (n-1) 까지의 숫자로 항목의 이름을 대체하는 방법입니다. 이렇게 하면, 문자열이었던 이름을 차원 확장 없이 숫자로 처리할 수 있다는 장점이 있습니다. 원-핫 인코딩은 n개의 항목이 있다면, 각각의 항목이 있는지 없는지를 0과 ..
-
[BeautifunSoup] 파이썬으로 구글 뉴스 크롤링해보기Python/크롤링 2024. 3. 8. 09:29
파이썬으로 구글 뉴스 크롤링해보기단순히 뉴스레터 구독을 위한 시스템을 만들고 싶어도, 뉴스 데이터를 이용해서 분석을 하고 싶을때도 뉴스기사 크롤링은 중요한 테크닉입니다. 그런데, 특정 언론사의 정보만 수집하는게 아니라 다양한 언론사의 정보를 모두 모으고 싶다면 크롤링 난이도가 높아지기 때문에 쉽게 도전하기는 어려운 주제지요. 이번에는 파이썬(Python)에서 이용할 수 있는 셀레니움(Selenium), 뷰티풀수프(BeautifulSoup), 뉴스페이퍼(newspaper3k) 패키지를 이용해 구글 뉴스 정보를 크롤링하도록 하겠습니다. URL 특징 알아보기웹사이트 크롤링을 할 때는 URL의 특징을 알아보면 신경쓸 일이 적어집니다. 구글 뉴스 검색 결과의 URL은 검색어와 페이지, 검색 기간이 나타나는 구..
-
[Selenium] 파이썬 셀레니움을 이용한 네이버 지도 크롤링 프로그램 만들기 - 2Python/크롤링 2024. 3. 5. 18:23
파이썬 셀레니움을 이용한 네이버 지도 크롤링 프로그램 만들기 이전에 파이썬 셀레니움(Python Selenium)을 이용해서 네이버 지도에 등록된 업체 정보를 크롤링해보았습니다. 그런데, 이전에 작성한 코드에는 두 가지 문제가 있어서 완전한 크롤링을 할 수 없다는 단점이 있었지요. 네이버 지도는 한 페이지에 50건의 업체를 보여줍니다만, 스크롤을 내리지 않으면 일부분만 보여줍니다. 업체 세부정보를 보기 위해서는 해당 업체를 클릭해야 합니다. 그래서, 위에 언급된 두 가지 문제를 해결하는 코드를 이용해서 새로운 크롤링 프로그램을 만들어 보도록 하겠습니다. 이번에는 셀레니움을 이용한 동적 크롤링뿐만 아니라 뷰티풀수프(BeautifulSoup)를 이용한 정적 크롤링까지 병행해서 이용해 보겠습니다. # impo..
-
[Python] 파이썬의 set, frozenset 자료형 알아보기Python/파이썬 기초 2024. 2. 29. 17:07
파이썬의 set, frozenset 자료형 알아보기 파이썬(Python)에서 수학의 집합 개념을 표현할 수 있는 자료형으로는 set 또는 frozenset이 있습니다. 이는 중복 제거와 교집합, 합집합, 차집합 계산 등의 연산을 지원해서 복잡한 코드를 적어야 하는 문제를 간편하게 해결할 수 있게 해줍니다. 몇 가지 코드 예제를 통해서 set, frozenset 자료형의 특징과 사용 예시를 알아보도록 하겠습니다. set 자료형 set 자료형은 흔히 집합이라고 부르는 파이썬 기본 자료형입니다. 파이썬 공식 문서 기준으로는 서로 다른 해시 가능 객체의 순서 없는 컬렉션이라는 알 수 없는 정의가 제시되어 있는데요, 이를 쉬운 말로 풀어쓰면 아래와 같이 나타낼 수 있습니다. 중복을 허용하지 않습니다. 순서 정보를..
-
[Selenium] 셀레니움 ActionChains로 스크롤 끝까지 내리는 방법 알아보기Python/크롤링 2024. 2. 28. 14:53
파이썬 셀레니움 ActionChains로 스크롤 끝까지 내리는 방법 알아보기 파이썬(Python)을 이용한 크롤링 작업 중, 셀레니움(Selenium)을 이용한 크롤링은 다양한 상호작용을 지원합니다. 그중에서, 스크롤을 일정 수준 내리면 새로운 콘텐츠가 로드되는 방식의 웹사이트는 단순히 HTML 문서를 파싱하는 방법으로는 크롤링할 수 없기 때문에 셀레니움 사용이 필수지요. 이번에는 원티드(wanted)에서 채용정보를 검색하는 상황을 가정하여 자동으로 스크롤 끝까지 내리는 방법을 구현해 보도록 하겠습니다. [사진 1] 원티드에서 채용정보를 검색했을 때의 화면 원티드에서 플러터(Flutter) 기술 관련 채용정보를 검색한다고 가정해 봅시다. 이 때, 검색창에 flutter라는 키워드를 적은 뒤, 해당 포지션..