본문 바로가기

Python/Machine Learning10

[ML]_분류 모형의 평가 지표 - Confusion Matrix, ROC 곡선 이 공부는 다음 멋진 책과 함께 합니다. 위키북스와 저자님 너무나도 감사합니다. 머신러닝 모델은 여러 가지 방법으로 예측 성능을 평가할 수 있습니다. 일반적으로 모델이 분류/회귀이냐에 따라서 여러 종류로 나뉩니다. 회귀 - 대부분 실제값과 예측값의 오차 평균값에 기반 분류 - 단순히 정확도만으로 판단하면 잘못된 평가 결과에 빠질 수 있습니다. 분류는 결정 클래스 값 종류의 유형에 따라 긍정/부정과 같은 2개의 결괏값만을 가지는 이진 분류와 여러 개의 결정 클래스 값을 가지는 멀티 분류로 나뉠 수 있습니다. 앞으로 언급할 분류의 성능 지표는 이진/멀티 분류 모두에 적용되는 지표지만 특히 이진 분류에서 더욱 중요하게 강조하는 지표입니다. 분류 모형의 평가 지표에는 Confusion Matrix, ROC 곡선.. 2023. 10. 14.
[ML]_타이타닉 생존자 예측하기(kaggle data 사용) 이 공부는 다음 멋진 책과 함께 합니다. 위키북스와 저자님 너무나도 감사합니다. kaggle kaggle은 오픈된 데이터를 기반으로 누구나 자신의 데이터 분석 실력을 보여줄 수 있는 포털입니다. 저도 코드 공부할때 많이 참고합니다. 여기서 제공하는 유명한 데이터 셋 중에 타이타닉 생존자 데이터가 있습니다. 이번 포스팅에서는 사이킷런으로 타이타닉 생존자를 예측해보겠습니다. 데이터 다운로드 https://www.kaggle.com/c/titanic/data 에 접속하여 데이터를 다운로드합니다. 여러분들이 사용하는 주피터 노트북이나 코랩 등에 데이터를 저장합니다. 저는 train.csv / test.csv / gender_submission.csv로 저장하였습니다. 라이브러리 및 데이터 불러오기 import .. 2023. 10. 3.
[ML]_Feature Scaling : 변수 값의 범위 맞추기 이 공부는 다음 멋진 책과 함께 합니다. 위키북스와 저자님 너무나도 감사합니다. Feature Scaling Feature Scaling : 서로 다른 변수의 값 범위를 일정한 수준으로 맞추는 작업 표준화(Standardization) : 데이터의 피처 각각을 평균 0, 분산 1인 가우시안 정규 분포를 가진 값으로 변환 정규화(Normalization) : 서로 다른 피처의 크기를 통일하기 위해 크기를 변환 사이킷런의 전처리에서 제공하는 Normalizer 모듈과 일반적인 정규화는 약간 차이가 있습니다. Normalizer 모듈 - 선형대수에서의 정규화 개념 → 개별 벡터의 크기를 맞추기 위해 변환(개별 벡터를 모든 피터 벡터의 크기로 나눠줍니다.) 용어를 다음과 같이 지칭하겠습니다. 피처 스케일링 - .. 2023. 10. 1.
[ML]_데이터 전처리 >> 데이터 인코딩(Label & One-Hot) 이 공부는 다음 멋진 책과 함께 합니다. 위키북스와 저자님 너무나도 감사합니다. 데이터에 대해서 공부하면서 느낀 점이 있습니다. 데이터만 "멀쩡"하면, 우선 시작은 할 수 있겠다!!!! 하지만 생각보다 "멀쩡"한 데이터는 많이 없습니다. 일부 데이터값이 없는 경우도 꽤 있었습니다. 이럴 땐 어떻게 해야 할까요? 무작정 없앨까요? 아니면 적당히 모른척 값을 채워넣어볼까요?(ㅎㅎ) 이미 탐색적 데이터 분석(EDA)을 하며 이러한 데이터값을 처리하는 것을 경험하셨을 것입니다. 우리는 머신러닝을 하는 만큼, 머신러닝에서 주의해야할 것을 알아야겠죠? 사이킷런의 머신러닝 알고리즘은 문자열 값을 입력값으로 허용하지 않기 때문에, 모든 문자열 값은 인코딩되어서 숫자 형으로 변환해야 합니다. 우리는 이번 포스팅에서 인코.. 2023. 8. 28.
[ML]_하이퍼 파라미터 튜닝(GridSeachCV) 이 공부는 다음 멋진 책과 함께 합니다. 위키북스와 저자님 너무나도 감사합니다. GridSeachCV - 교차 검증과 최적 하이퍼 파라미터 튜닝을 한 번에 결정 트리 알고리즘의 여러 가지 최적화 파라미터를 순차적으로 적용해 붓꽃 데이터를 예측 분석하는 데 GridSeachCV를 이용해보겠습니다. from sklearn.datasets import load_iris # 예제 데이터 불러오기 from sklearn.tree import DecisionTreeClassifier # 결정트리 머신러닝 알고리즘 중 하나 from sklearn.model_selection import train_test_split # 훈련 데이터 / 테스트 데이터 from sklearn.metrics import accuracy_.. 2023. 8. 27.
[ML]_파라미터도 있는데 하이퍼 파라미터는 또 뭐야? 이 공부는 다음 멋진 책과 함께 합니다. 위키북스와 저자님 너무나도 감사합니다. 분석 모형을 선정하고 나면 모형에 적합한 변수를 선택하여야 합니다. 이때 우리는 Parameter(매개변수)와 Hyper Parameter(초매개변수)를 선정하여야 합니다. 이 둘에 대해 한 번 알아보겠습니다. Parameter(매개변수) 모델 내부에서 확인이 가능한 변수로 데이터를 통해서 산출이 가능한 값 예측을 수행할 때 모델에 의해 요구되어지는 값들 parameter가 모델의 성능을 결정 parameter는 측정되거나 데이터로부터 학습 사람에 의해 수작업으로 측정되지 않음(임의로 조정 불가) 종종 학습된 모델의 일부로 저장 예 인공신경망에서의 가중치 서포트 벡터 머신에서의 서포트 벡터 선형 회귀나 로지스틱 회귀 분석에서.. 2023. 8. 27.
[ML]_머신러닝에서의 교차 검증 - K 폴드 vs. Stratified K 폴드 이 공부는 다음 멋진 책과 함께 합니다. 위키북스와 저자님 너무나도 감사합니다. 교차 검증 교차 검증은 데이터 편중을 막기 위해 별도의 여러 세트로 구성된 학습 데이터 세트와 검증 데이터 세트에서 학습과 평가를 수행하는 것입니다. 머신러닝에서 사용되는 데이터 세트를 학습 데이터와 테스트 데이터로 나눕니다. 학습 데이터 세트를 다시 분할하여, 학습 데이터 세트와 학습된 모델의 성능을 일차 평가하는 검증 데이터 세트로 나눕니다. 모든 학습/검증 과정이 완료된 후 테스트 데이터 세트로 최종적으로 성능을 평가합니다. 데이터가 적을 때 사용합니다. K 폴드 교차 검증 데이터 샘플링에서 생길 수 있는 이슈를 줄이고자 학습과 검증 평가를 반복적으로 수행하는 것입니다. 사이킷런에서는 K 폴드 교차 검증 프로세스를 구현.. 2023. 8. 22.
[ML]_머신 러닝의 시작, 사이킷런 이 공부는 다음 멋진 책과 함께 합니다. 위키북스와 저자님 너무나도 감사합니다. 이번 포스팅에서는 머신러닝을 수행할 때 자주 만나는 친구들(?)의 정체를 밝혀보겠습니다. 머신러닝의 코드를 하나 하나 음미할 수 있는 포스팅이 되길 바랍니다! 모델 학습 & 예측 메서드 모든 사이킷런 클래스에서 머신러닝 모델 학습을 위해서 fit()을, 학습된 모델의 예측을 위해서는 predict() 메서드를 사용합니다. 사이킷런에서는 분류 알고리즘을 구현한 클래스를 Classifier로, 회귀 알고리즘을 구현한 클래스를 Regressor로 지칭합니다. 사이킷런에서는 매우 많은 유형의 Classifier와 Regressor 클래스를 제공합니다. Classifier와 Regressor를 합쳐서 Estimator 클래스라고 부릅.. 2023. 8. 22.
[ML]_붓꽃 품종 예측하기 이 공부는 다음 멋진 책과 함께 합니다. 위키북스와 저자님 너무나도 감사합니다. 이 책은 코드와 자세한 설명이 함께 있어 찬찬히 한 장 한 장 넘기며 공부하기 좋습니다. 맨 앞 챕터에서는 파이썬의 기본 문법과 라이브러리에 대한 예제 코드도 함께 나와 있습니다. **분류**하기 우리는 붓꽃 데이터셋으로 붓꽃의 품종을 분류할 것입니다.(Classification) 붓꽃 데이터셋은 꽃잎의 길이와 너비(Sepal length, Sepal width), 꽃받침의 길이와 너비(Petal length, Petal width)로 붓꽃의 품종(Setosa, Vesicolor, Virginica)를 예측할 것입니다. 이때, 꽃잎의 길이와 너비, 꽃받침의 길이와 너비를 피처(feature), 붓꽃의 품종을 레이블(label.. 2023. 8. 21.
[ML]_머신러닝, 같이 할래요? 머신러닝? 내가 그걸 어떻게 알아? 몇 년 전에 처음 '머신러닝'이란 말을 들었을 때에는 너무나 단순하게 단어만 있는 그대로 해석하고 으잉? 했었습니다. 전 그랬습니다. ㅎㅎ 지금은 '머신러닝'이라는 단어는 굉장히 익숙하고 대략적으로 뭔지는 압니다. 기계학습. 뭔가 인공지능 같고 그런 것. 근데 나는 못하는 것 이렇게만 생각했는데 이제 머신러닝이 뭔지 맛 좀 제대로 보려고 합니다. 이 공부는 다음 멋진 책과 함께 합니다. 위키북스와 저자님 너무나도 감사합니다. 이 책은 코드와 자세한 설명이 함께 있어 찬찬히 한 장 한 장 넘기며 공부하기 좋습니다. 맨 앞 챕터에서는 파이썬의 기본 문법과 라이브러리에 대한 예제 코드도 함께 나와 있습니다. 그래서 머신러닝이 뭔데?? 일반적으로는 애플리케이션을 수정하지 않고.. 2023. 8. 17.
반응형