본문 바로가기

Machine Learning21

[ML] Hyperparameter Tuning Hyperparameter Tuning : 모델의 성능을 확보하기 위해 조절하는 설정 값 튜닝 대상 - 결정나무에서 아직 우리가 튜닝해 볼만한 것은 max_depth이다. 간단하게 반복문으로 max_depth를 바꿔가며 테스트해볼 수 있을 것이다. ! 그런데 앞으로를 생각해서 보다 간편하고 유용한 방법을 생각해보자. import pandas as pd red_url = "https://raw.githubusercontent.com/PinkWink/ML_tutorial/master/dataset/winequality-red.csv" white_url = "https://raw.githubusercontent.com/PinkWink/ML_tutorial/master/dataset/winequality-whi.. 2023. 1. 6.
[ML] Hyperparameter Tuning_ 교차검증 교차검증 과적합 : 모델이 학습 데이터에만 과도하게 최적화된 현상. 그로 인해 일반화된 데이터에서는 예측 성능이 과하게 떨어지는 현상. 지난번 와인 맛 평가에서 훈련용 데이터의 Acc는 72.94, 테스트용 데이터는 Acc가 71.61%였는데, 누가 이 결과가 정말 괜찮은 것인지 묻는다면? 나에게 주어진 데이터에 적용한 모델의 성능을 정확히 표현하기 위해서도 유용하다 import numpy as np from sklearn.model_selection import KFold X = np.array([ [1, 2], [3, 4], [1, 2], [3, 4] ]) y = np.array([1, 2, 3, 4]) kf = KFold(n_splits=2) print(kf.get_n_splits(X)) print.. 2023. 1. 5.
[ML] Pipeline 단순히 iris, wine 데이터를 받아서 사용했을 뿐인데도 코드 진행시에 어려움이 있다. Jupyter Notebook상황에서 데이터의 전처리와 여러 알고리즘의 반복실행, 하이퍼 파라미터의 튜닝과정을 번갈아 하다보면 코드 실행 순서에 혼돈이 있을 수 있다. 이런경우 클래스class로 만들어서 진행해도 되지만, sklearn에는 그럴 필요가 없게 준비된 기능이 있다. -> Pipeline import pandas as pd red_url = "https://raw.githubusercontent.com/PinkWink/ML_tutorial/master/dataset/winequality-red.csv" white_url = "https://raw.githubusercontent.com/PinkWink/M.. 2023. 1. 5.
[ML] Wine Analysis _DecisionTree STEP01. Import Data import pandas as pd red_url = "https://raw.githubusercontent.com/PinkWink/ML_tutorial/master/dataset/winequality-red.csv" white_url = "https://raw.githubusercontent.com/PinkWink/ML_tutorial/master/dataset/winequality-white.csv" red_wine = pd.read_csv(red_url, sep=';') white_wine = pd.read_csv(white_url, sep=';') pinkwink github의 red_wine / white_wine 데이터로 프로젝트를 진행한다. 해당 파일을 훑.. 2023. 1. 5.
[ML] Encoder and Scaler ML의 대표적인 도구 sklearn을 사용할때, 대표적인 두가지(가지를 치자면4가지)의 개념 STEP 01. LabelEncoder : 문자를 숫자로 바꾸는데 유용하다. pd.DataFrame으로 표를 하나 생성해준 뒤, LabelEncoder를 import해준다. 이를 le변수에 담아준 뒤 df['A']를 fit(학습)시켜준다. le.classes_로 개체를 확인 가능하다. transform으로 fit에서 학습시킨 부분을 적용시켜주면 된다. 이를 눈으로 확인해보고자 df에 le_A 칼럼을 추가하여 해당 내용을 담아주었다. fit_transform으로 fit과 transform을 동시 출력도 가능하다. le.transform(['a'])로 a의 숫자정보를 바로 볼 수도 있다. inverse_transfo.. 2023. 1. 4.
[ML] Titanic Survivor Prediction_ dicaprio&winslet STEP 01. Data Info titanic의 구조를 확인해 쓸 수 있는 데이터를 확인해본다. pclass, sex, age, fare 등이 활용하기 좋을 것 같다. 각각의 컬럼에 1309개의 데이터가 있어야 하는데, 그렇지 않은 칼럼도 존재한다. 이번 프로젝트에서 age와 fare을 제외한 결측치는 포기해준다. 중요한 것은 머신러닝을 위해서는 해당 컬럼을 숫자로 변경해야 한다는 점이다. STEP 02. Transform Data sklearn의 preprocessing 전처리 모듈에서 제공하는 LabelEncoder을 사용한다.이는 문자를 숫자로 바꿔주는 키워드이며, 이를 fit(학습)을 시켜준다. classes_를 확인해보면 해당 값 확인 가능하다. titanic 데이터에 gender 컬럼을 새로.. 2023. 1. 3.
[ML] Titanic Survivor Prediction STEP01. Import Data # !pip install plotly_express import pandas as pd titanic_url = "https://raw.githubusercontent.com/PinkWink/ML_tutorial/master/dataset/titanic.xls" titanic = pd.read_excel(titanic_url) titanic.head() 민형기 강사님의 github에 있는 titanic.xls를 사용하여 프로젝트를 진행한다. STEP02. Data Analysis import matplotlib.pyplot as plt import seaborn as sns plt.subplots( )로 하나의 창에 여러개의 도표를 띄우게 하고 이를 f, ax 변수에.. 2023. 1. 3.
[ML] Data Split_ zip / unpacking list1, list2가 존재하는 상황에서 pair for pair in zip(list1, list2)로 zip해준다. dict형태, tuple, list 형태로 변환 가능하다. unpacking은 x, y = zip(*pairs)로 x, y변수에 각각의 데이터를 담아주어 나누는 것이다. 이 또한 형태 변환이 가능하다. 2023. 1. 2.
[ML] Data split_ tree_ iris STEP01. Import, Split Data load_iris 데이터를 import 해주고 iris 변수에 담아준다. features 변수에 test용 sample데이터를 2개만 나눠준다. X_train, X_test, y_train, y_test 4개의 변수를 train_test_split 함수를(sklearn의 데이터를 잘 나눠주는 모델) 사용해서 반환받을 것이다. (train훈련용 한세트, test샘플용 한세트) test_size를 0.2로 설정하면 훈련용은 80%, 테스트용은 20%로 했다는 것이다. .shape으로 확인해보면 8:2로 설정해준 비율값에 맞게 120개, 30개가 잘 들어간 것을 볼 수 있다. STEP02. Check Data ** 데이터 분리시에 주의해야 할 점은, 훈련용 / .. 2023. 1. 2.