python 58

10.1 선형회귀, 머신러닝교과서, python

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. * https://github.com/rickiepark/python-machine-learning-book-3rd-edition GitHub - rickiepark/python-machine-learning-book-3rd-edition: 의 코드 저장소 의 코드 저장소. Contribute to rickiepark/python-machine-learning-book-3rd-edition development by creating an account on GitHub. github.com 선형 회귀는 하나 이상의 특성과 연속적인 타깃 변수 사이의 관계를 모델링하는 것이 목적이다. 지도 학습의 다른 카테고리인 분류 알고리즘과 달리 회귀는 범주형 클..

익명 함수, 람다 함수, python

* 본 포스팅은 '파이썬 라이브러리를 활용한 데이터 분석' 을 참조하여 작성되었습니다. 파이썬은 익명(anonymous)함수 혹은 람다(lambda)함수라고 하는 값을 반환하는 단순한 한 문장으로 이루어진 함수를 지원한다. lambda 예약어로 정의하며, 이는 '익명 함수를 선언한다'라는 의미이다. def shor_function(x): return x * 2 equiv_anon = lambda x: x * 2 람다 함수는 데이터 분석에서 특히 편리한데, 이는 데이터를 변형하는 함수에서 인자로 함수를 받아야 하는 경우가 매우 많이 때문이다. 즉, 람다 함수를 사용하면 실제 함수를 선언하거나 람다 함수를 지역 변수에 대입하는 것보다 코드를 적게 쓰고 더 간결해지기 때문이다. def apply_to_list..

Python/basic 2022.12.21

python, 네임스페이스, 스코프, 지역 함수

* 본 포스팅은 '파이썬 라이브러리를 활용한 데이터 분석' 을 참조하여 작성되었습니다. 함수는 전역과 지역, 두 가지 스코프(영역)에서 변수를 참조한다. 변수의 스코프를 설명하는 다른 용어로 네임스페이스가 있다. 함수 내에서 선언된 변수는 기본적으로 모두 지역 네임스페이스에 속한다. 지역 네임스페이스는 함수가 호출될 때 생성되며 함수의 인자를 통해 즉시 생성된다. 함수의 실행이 끝나면 지역 네임스페이스는 사라진다. 다음 함수를 살펴보자. def func(): a = [] for i in range(5): a.append(i) func() 함수를 호출하면 비어 있는 리스트 a가 생성되고 다섯 개의 원소가 리스트에 추가된다. 그리고 함수가 끝나면 이 리스트 a는 사라진다. 하지만 리스트 a를 다음과 같이 선..

Python/basic 2022.12.21

8.2 BoW 모델 소개, 머신러닝교과서, python

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. * https://github.com/rickiepark/python-machine-learning-book-3rd-edition GitHub - rickiepark/python-machine-learning-book-3rd-edition: 의 코드 저장소 의 코드 저장소. Contribute to rickiepark/python-machine-learning-book-3rd-edition development by creating an account on GitHub. github.com 8.2.1 단어를 특성 벡터로 변환 사이킷런에 구현된 CounterVectorizer 클래슬르 사용하여 각각의 문서에 있는 단어 카운트를 기반으로 BoW 모델을..

7. 다양한 모델을 결합한 앙상블 학습, 머신러닝교과서, python

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. * https://github.com/rickiepark/python-machine-learning-book-3rd-edition GitHub - rickiepark/python-machine-learning-book-3rd-edition: 의 코드 저장소 의 코드 저장소. Contribute to rickiepark/python-machine-learning-book-3rd-edition development by creating an account on GitHub. github.com 7.1 앙상블 학습 앙살블 학습(ensemble learning)의 목표는 여러 분류기를 하나의 메타 분류기로 연결하여 개별 분류기보다 더 좋은 일반화 성능을 ..

6.2 k-겹 교차 검증을 사용한 모델 성능 평가

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. * https://github.com/rickiepark/python-machine-learning-book-3rd-edition GitHub - rickiepark/python-machine-learning-book-3rd-edition: 의 코드 저장소 의 코드 저장소. Contribute to rickiepark/python-machine-learning-book-3rd-edition development by creating an account on GitHub. github.com 모델이 너무 간단하면 과소적합(높은 편향)이 문제가 되고 너무 복잡하면 훈련 데이터에 과대 적합(높은 분산)이 될 수 있다. 적절한 편향-분산 트레이드오프를 찾..

5.3 커널 PCA를 사용하여 비선형 매핑, 머신러닝교과서, python

*본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. 5.3 커널 PCA를 사용하여 비선형 매핑 실전 애플리케이션에서는 비선형 문제를 더 자주 맞닥뜨린다. 이런 비선형 문제를 다루어야 한다면 PCA와 LDA 같은 차원 축소를 위한 선형 변형 기법은 최선의 선택이 아니다. 5.3.1 커널 함수와 커널 트릭 3장에서 커널 SVM에 관해 배운 것을 떠올려 보면 비선형 문제를 해결하기 위해 클래스가 선형으로 구분되는 새로운 고차원 특성 공간으로 투영할 수 있다. 즉, 커널 PCA를 통한 비선형 매핑을 수행하여 데이터를 고차원 공간으로 변환한다. 그 다음 고차원 공간에 표준 PCA를 사용하여 샘플이 선형 분류기로 구분될 수 있는 저차원 공간으로 데이터를 투영한다. 이 방식의 단점은 계산 비용이 아주 비싸다는 것..

프로그래머스 Level2, 전화번호 목록, python

문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은 전화번호가 중복해서 들어있지 않습니다. 문제풀이 처음 문..

5.차원 축소를 사용한 데이터 압축, 머신러닝교과서, python

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. 5.1 주성분 분석을 통한 비지도 차원 축소 특성 선택 vs 특성 추출 - 원본 특성을 유지한다면 특성 선택 - 새로운 특성 공간으로 데이터를 변환하거나 투영한다면 특성 추출 특성 추출은 대부분의 관련 있는 정보를 유지하면서 데이터를 압축하는 방법이다. 이는 저장 공간을 절약하거나 학습 알고리즘의 계산 효율성을 향상시키고 차원의 저주(curse of dimensionality) 문제를 감소시켜 예측 성능을 향상시키기도 한다. 5.1.1 주성분 분석의 주요 단계 PCA : 비지도 선형 변환 기법 PCA를 많이 사용하는 애플리케이션에는 탐색적 데이터 분석과 주식 거래 시장의 잡음 제거, 생물정보학 분야에서 게놈(genome) 데이터나 유전자 발현(ge..

4.6 랜덤 포레스트의 특성 중요도 사용, 머신러닝교과서, python

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. 4.6 랜덤 포레스트의 특성 중요도 사용 랜덤 포레스트를 사용하면 앙상블에 참여한 모든 결정 트리에서 계산한 평균적인 불순도 감소로 특성 중요도를 측정할 수 있다. 편리하게도 사이킷런의 랜덤 포레스트의 구현은 특성 중요도 값을 이미 수집하고 있다. RandomForestClassifier 모델을 훈련한 후 feature_importances_ 속성에서 확인할 수 있다. 다음 코드에서 Wine 데이터셋에서 500개의 트리를 가진 랜덤 포레스트를 훈련하고 각각 중요도에 따라 13개의 특성에 순위를 매긴다. * 트리 기반 모델은 표준화나 정규화를 할 필요가 없다. from sklearn.ensemble import RandomForestClassifie..