728x90 Study (Data Science)/ML19 Scikit-Learn Scikit Learn : 파이썬 기반 머신러닝 라이브러리. Scipy 및 NumPy 와 비슷한 데이터 표현과 수학 관련 함수 일반적으로 머신러닝에서 데이터 가공(ETL:Extract Transform Load)을 거쳐 모델을 훈련하고 예측하는 과정을 거침 Scikit Learn은 ETL - transformer()를 제공하고, 모델의 훈련과 예측은 Estimator 객체를 통해 수행되며, Estimator에는 각각 fit()(훈련), predict()(예측)을 행하는 메소드가 있음. 모델의 훈련과 예측이 끝나면 이 2가지는 작업을 Pipeline()으로 묶어 검증을 수행. data >> transformer() >> estimator.fit(X,y) >> estimator.predict(X) >> Pi.. 2022. 12. 7. 알고리즘 선택하기 어떤 알고리즘을 사용해야 하는가. 데이터의 크기, 품질, 특성 가용 연산(계산) 시간 작업의 긴급성 데이터를 이용해 하고 싶은 것 알고리즘 유형 1. 지도 학습(Supervised learning) 지도 학습 알고리즘은 한 세트의 사례들을(examples) 기반으로 예측을 수행합니다. 예를 들어, 과거 매출 이력(historical sales)을 이용해 미래 가격을 추산할 수 있습니다. 지도 학습에는 기존에 이미 분류된 학습용 데이터(labeled training data)로 구성된 입력 변수와 원하는 출력 변수가 수반되는데요. 알고리즘을 이용해 학습용 데이터를 분석함으로써 입력 변수를 출력 변수와 매핑시키는 함수를 찾을 수 있습니다. 이렇게 추론된 함수는 학습용 데이터로부터 일반화(generalizin.. 2022. 12. 7. 오차행렬, FP, FN, F-score, Threshold Accuracy for Classification 의 함정. 1-10까지의 handwriting 다중 분류 모델을 변형하여, label을 3일때만 구분하는 (0,0,1,0,0,0,0,0,0,0) 로 바꾸고 fitting 을 시켜도 accuracy는 0.93이 나온다. 0을 찍어도 accuracy가 잘 나올 수 있다는 이상한 사실. 즉, 불균형한 데이터, unbalanced 데이터, 정답의 분포에 따라 모델의 성능을 잘 평가하지 못할 수 있다. . 그렇기 때문에 분류 문제에서는 정확도 외에 다양한 평가 척도를 사용한다. 오차행렬 (confusion_matrix) from sklearn.metrics import confusion_matrix 코로나의 경우.. 건강하고 음성 (TN) 건강하고 양성 (FP) .. 2022. 12. 7. Batch size, Epoch, Iteration Total Dataset = 1000개 일 때, 100 X 10 = 1000 Batch size Batches Q'ty = Total Dataset |----------------------------------------------------------| 1 Epoch |___|___|___|___|___|___|___|___|___|___| 10 Iterations Batch는 데이터에 관한 부분. Batch는 10개 나오고, 한 Batch의 Size는 100 이 된다. (Batch = mini batch. 같은 개념) Epoch와 Iteration은 학습에 관한 부분. Iteration은 몇 번 학습 데이터를 받는냐로, Batch 갯수와 같고, 총 Dataset 을 모두 학습할 때 1 epoch 했.. 2022. 12. 6. 여러가지 머신러닝 모델들 (1) Dicision Tree (Iris Accuracy : 0.90) 분류, 회귀 모두 가능 한번 분기 때마다 변수 영역을 두 개로 구분하는 모델. 가지 두개로 나눠짐. 정보획득(information gain)의 기준 : 구분 뒤 각 영역의 순도(homogeneity)가 증가, 불순도(impurity), 불확실성(uncertainty)이 최대한 감소방향으로 학습진행 (2) Random Forest (Iris Accuracy : 0.93) Decision Tree를 모아 집단지성의 개념으로 기존 모델의 단점을 보완함. 앙상블 방식(Ensemble method) 랜덤으로 여러 작은 트리를 만들어 각각의 트리에서 나오는 결과를 다수결하여 최종결정 예) 30개의 feature (x값의 갯수 = 컬럼갯수와 같.. 2022. 12. 6. Day2. 데이터 전처리 10.2 null 값 처리하기 결측치(Missing Data) 결측치가 있는 데이터를 제거한다. 결측치를 어떤 값으로 대체한다 특정값 지정 : .fillna() but, 결측치가 많은 경우, 모두 같은 값으로 대체한다면 데이터의 분산이 실제보다 작아지거나 편향되어 문제가 될 수 있음. 평균, 중앙값등으로 대체 : .fillna(df.mean()) 1특정 값으로 대체했을 때와 마찬가지로 결측치가 많은 경우 데이터의 분산이 실제보다 작아지는 문제가 발생할 수 있음. 다른 데이터를 이용해 예측값으로 대체할 수 있습니다. 예를 들어 머신러닝 모델로 2020년 4월 미국의 예측값을 만들고, 이 값으로 결측치를 보완할 수 있습니다. 시계열 특성을 가진 데이터의 경우 앞뒤 데이터를 통해 결측치를 대체할 수 있습니다... 2022. 12. 5. Day1. 데이터, 데이터베이스 데이터 1. 데이터가 중요한 이유 :우리는 데이터가 넘쳐나는 세상에 살고있다. 지금 이 시대는 데이터가 모든 의사결정에 영향을 주고 있기 때문에 데이터는 날이갈 수록 중요해지는 추세이다. 2. 데이터 분석이란 : 현실세계의 신호>측정하여 데이터로 만듬>분석하여 정보를 얻어내기 위한 과정. 3. 필요능력 : (1) 문해력 : 데이터 해석 능력 (2) 코딩 : 컴퓨터와의 커뮤니케이션 수단 데이터 사이언스 데이터 분석을 통한 미래예측을 하는 것. 문제정의 > 데이터수집 > 전처리 > 분석 > 모델링 > 결과해석 및 시각화 2022. 12. 4. EDA (Explratory Data Analysis) 1. lib import import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns 2. 데이터 불러오기 data = pd.read_csv('이름', low_memory = False) 3. 데이터 null값 처리 data.info() : null값과 자료형 보여줌 data.isnull().sum() : null값이 column별로 몇개인지 보여줌. data["컬럼명"].replace("카테고리명", "0") : 해당 컬럼의 해당카테고리명인 데이터를 모두 0으로 바꿔줌 4. 데이터 분석 data.head() data.tail() data.columns : 전체 컬럼명 data.describe() :.. 2022. 12. 2. Matplotlib STEP 1. 막대(Bar) 그래프 import matplotlib.pyplot as plt %matplotlib inline # 그래프 데이터 subject = ['English', 'Math', 'Korean', 'Science', 'Computer'] points = [40, 90, 50, 60, 100] # 축 그리기 fig = plt.figure() ax1 = fig.add_subplot(1,1,1) # 그래프 그리기 ax1.bar(subject, points) # 라벨, 타이틀 달기 plt.xlabel('Subject') plt.ylabel('Points') plt.title("Yuna's Test Result") # 보여주기 plt.savefig('./barplot.png') # 그래프를 이.. 2022. 12. 2. 이전 1 2 다음 728x90