본문 바로가기
반응형

● 인공지능, 분석/21.08 nipa_AI실무과정25

[AI 응용 ML] 이론 | 7.1 이미지 처리, 딥러닝, 자연어 처리 이미지 처리를 위한 데이터 전 처리 우리 주변의 이미지 처리 기술 예시 이미지 전 처리하기 모두 같은 크기를 갖는 이미지로 통일 1) 가로 세로 픽셀 사이즈를 표현하는 해상도 통일 2) 색을 표현하는 방식 통일 (RGB, HSV, Gray-scale, Binary, …) 이미지 처리를 위한 딥러닝 모델 기존 다층 퍼셉트론 기반 신경망의 이미지 처리 방식 합성곱 신경망(Convolution Neural Network) 작은 필터를 순환시키는 방식 이미지의 패턴이 아닌 특징을 중점으로 인식 합성곱 신경망의 구조 입력 이미지의 특징을 추출, 분류하는 과정으로 동작 이미지에서 어떠한 특징이 있는 지를 구하는 과정 필터가 이미지를 이동하며 새로운 이미지 (피쳐맵)를 생성 피쳐맵의 크기 변형 : Padding, S.. 2021. 9. 7.
[AI 응용 ML] 이론 | 3.3 RSS, MSE, MAE, 𝑹^𝟐 (결정 계수) 좋은 회귀 알고리즘 모델 평가하는 방법 목표를 얼마나 잘 달성했는지 정도를 평가해야 함 실제 값과 모델이 예측하는 값의 차이에 기반한 평가 방법 사용 예시 𝑅𝑆𝑆, 𝑀𝑆𝐸, 𝑀𝐴𝐸, 𝑀𝐴𝑃𝐸, 𝑅 2 RSS – 단순 오차 1. 실제 값과 예측 값의 단순 오차 제곱 합 2. 값이 작을수록 모델의 성능이 높음 3. 전체 데이터에 대한 실제 값과 예측하는 값의 오차 제곱의 총합 RSS 특징 • 가장 간단한 평가 방법으로 직관적인 해석이 가능함 • 그러나 오차를 그대로 이용하기 때문에 입력 값의 크기에 의존적임 • 절대적인 값과 비교가 불가능함 MSE, MAE – 절대적인 크기에 의존한 지표 MSE(Mean Squared Error) 평균 제곱 오차, RSS 에서 데이터 수 만큼 나눈 값작을수록 모델의 성능이 .. 2021. 9. 6.
[AI 응용 ML] 이론 | 3.2 다중선형회귀, Loss함수, 경사하강법 문제 만약, 입력값 𝑋에 강수량이 추가된다면? 즉, 평균 기온과 평균 강수량에 따른 아이스크림 판매량을 예측하고자 할 때 다중 선형 회귀를 사용하는 경우 입력값 𝑋가 여러 개(2개 이상)인 경우 활용할 수 있는 회귀 알고리즘 다중 선형 회귀 모델의 Loss 함수 단순 선형 회귀와 마찬가지로 Loss 함수는 입력값과 실제값 차이의 제곱의 합으로 정의 다중 선형 회귀 모델의 경사 하강법 다중 선형 회귀의 Loss함수 값이 작아지게 계속 업데이트 하는 방법 다중 선형 회귀 특징 • 여러 개의 입력값과 결괏값 간의 관계 확인 가능 • 어떤 입력값이 결괏값에 어떠한 영향을 미치는지 알 수 있음 • 여러 개의 입력값 사이 간의 상관 관계*가 높을 경우 결과에 대한 신뢰성을 잃을 가능성이 있음 상관 관계 • 두 가지.. 2021. 9. 6.
[AI 응용 ML] 이론 | 3.1 회귀란? 단순선형회귀, Loss함수, 경사하강법 회귀 분석 알고리즘 : 독립변수와 종속변수로 미래를 예측한다. 완벽한 예측은 불가능하기에 최대한 잘 근사해야 한다. 각데이터의 실제값과 모델이 예측하는 값의 차이를 최소한으로 하는 선을 찾자 단순 선형회귀 모델을 학습하며 차이를 최소한으로 하는 선을 찾는 방법을 알아보자 단순선형회귀 데이터를 설명하는 모델을 직선 형태로 가정 데이터를 잘 설명한다는 것은 어떤 것일까? 먼저, 실제값과 예측 값의 차이를 구해보자. 하지만 다음을 보면 알 수 있듯이 실제값과 예측값의 차이의 합으로 비교하기에는 예외가 있다. 고로 실제값과 예측값 차이의 제곱의 합으로 비교하자. 이를 Loss 함수로 정의한다. Loss함수가 작을수록 좋은 모델이다 Loss함수 줄이기 경사하강법이란? 단순 선형 회귀 과정은 다음과 같다. 단순 선.. 2021. 8. 31.
[AI 응용 ML] 실습 | 2.10 데이터 분리하기 데이터 분리하기 머신러닝의 입력으로 사용하기 위해서는 데이터를 분리해야합니다. titanic 데이터에서 생존 여부인 Survived 을 예측하는 머신러닝을 수행한다고 했을 때 데이터를 분리해봅시다. 이번 실습에서는 [실습6]에서 이상치 처리한 데이터를 바탕으로 feature 데이터와 label 데이터를 분리합니다. 이 후 학습용, 평가용 데이터로 분리합니다. 학습용, 평가용 데이터 분리는 sklearn 라이브러리의 train_test_split을 사용하여 분리할 수 있습니다. X_train, X_test, y_train, y_test = train_test_split(feature 데이터, label 데이터, test_size= 0~1 값, random_state=랜덤시드값) titanic 데이터 구성 .. 2021. 8. 31.
[AI 응용 ML] 실습 | 2.9 이상치 처리하기 이상치 처리하기 이상치가 존재하는 데이터를 머신러닝에 사용하게 된다면 성능 저하를 야기할 수 있습니다. 그렇기에 데이터 전 처리 과정에서는 이상치를 판별하고 처리합니다. 이번 실습에서는 titanic 데이터에서 Age 변수에 존재하는 이상치를 제거합니다. 아래 그림과 같이 Age 변수 안에는 소수점으로 표현되는 데이터가 존재합니다. 나이는 자연수로 표현되어야 하기에 이러한 소수점 데이터는 이상치로 판단하고 삭제하도록 합니다. titanic 데이터 구성 지시사항 Age 변수에서 outlier 에 있는 이상치를 제외한 데이터를 titanic_3에 저장합니다. 문제 import pandas as pd import numpy as np from elice_utils import EliceUtils elice_u.. 2021. 8. 31.
[AI 응용 ML] 실습 | 2.8 결측값 처리하기 결측값 처리하기 결측값이 있는 데이터는 일반적으로 머신러닝의 입력으로 사용할 수 없습니다. 그렇기에 데이터 전 처리 과정에서는 삭제 또는 대체 방식으로 결측값을 처리합니다. 이번 실습에서는 titanic 데이터에서 과반수 이상의 데이터가 결측값으로 존재하는Cabin 변수를 삭제합니다. 이 후, 나머지 변수에 존재하는 결측값을 처리하기 위하여 결측값이 존재하는 샘플들을 제거합니다. pandas의 DataFrame에서 특정 변수(columns)를 삭제하기 위해서는 drop사용합니다. DataFrame.drop(columns=[변수명]) DataFrame에서 결측값이 있는 샘플을 제거하기 위해서는 dropna를 사용합니다. DataFrame.dropna() titanic 데이터 구성 지시사항 drop 을 사용.. 2021. 8. 31.
[AI 응용 ML] 이론 | 2.7 데이터 정제 및 분리 결측값 처리하기 이상치 처리하기 데이터 분리는 왜 필요할까? 지도학습 데이터 분리 지도학습은 한 번 더 데이터를 분리해야됨 예시) 공부시간 대비 시험점수를 예측해보자. 이 때, 예측대상인 시험점수 데이터가 레이블 데이터 예측을 위해 필요한 공부시간 데이터가 피쳐 데이터 다음 가설에서 레이블(Label) 데이터는 무엇일까? 정답 2021. 8. 31.
[AI 응용 ML] 실습 | 2.6 수치형 자료 변환하기_정규화 / 표준화 수치형 자료 변환하기 - 정규화 수치형 자료의 경우 다른 수치형 자료와 범위를 맞추기 위해 정규화 또는 표준화를 수행합니다. 이번 실습에서는 titanic 데이터에서 수치형 자료인 Fare 데이터를 정규화해보겠습니다. 정규화 공식 titanic 데이터 구성 지시사항 normal 함수를 완성하고 Fare 데이터를 정규화하여 Fare에 저장합니다. 문제 import pandas as pd from elice_utils import EliceUtils elice_utils = EliceUtils() """ 1. 정규화를 수행하는 함수를 구현합니다. """ def normal(data): data = None return data # 데이터를 읽어옵니다. titanic = pd.read_csv('./data/t.. 2021. 8. 31.
[AI 응용 ML] 이론 | 2.5 수치형 자료 전처리 수치형 자료란? 스케일링의 정규화 좌측, 변환 전에서 feature_3의 범주는 1 ~ 200까지이나 우측, 정규화 변환 후 0.1 ~ 0.5까지의 범주를 지님 이를 통해, 머신러닝안에서 공정하게 비교가 가능해짐 스케일링의 표준화 앞서 정규화에선 feature_3의 값이 0~1의 값을 지녔다면 표준화에선 -2 ~ 2의 값을 지님 표준화란, 평균이 0, 표준편차가 1이므로 -2 ~ 2사이의 값을 지니는 분포로 바뀜. 표준화를 통해 머신러닝상에서 공정한 경쟁이 이뤄지게함 범주화란? 변수의 값보다 범주가 중요한 경우 사용 시험 점수 예측이 아닌 점수가 평균 이상인지 이하인지를 찾을 때 이상, 이하에 대한 범주를 구하고자할 때 사용. 2021. 8. 31.
[AI 응용 ML] 실습 | 2.4 명목형 자료 변환_더미방식 명목형 자료 변환하기 - 더미 방식 명목형 자료를 수치형 자료로 변환하는 방식으로 더미 방식이 있습니다. titanic 데이터에서 범주형 자료인 Embarked 데이터는 S, Q, C 3가지 값을 가지고 있습니다. 이를 더미 방식을 사용하여 변환해봅시다. titanic 데이터 구성 지시사항 Embarked의 S, Q, C데이터를 더미를 사용하여 변환하고 dummies에 저장해 봅시다. 문제 import pandas as pd from elice_utils import EliceUtils elice_utils = EliceUtils() # 데이터를 읽어옵니다. titanic = pd.read_csv('./data/titanic.csv') print('변환 전: \n',titanic['Embarked'].h.. 2021. 8. 31.
[AI 응용 ML] 실습 | 2.3 명목형 자료 변환_수치맵핑 명목형 자료 변환하기 - 수치 맵핑 머신러닝의 입력으로 사용하기 위하여 명목형 자료를 수치형 자료로 변환할 필요가 있습니다. titanic 데이터에서 범주형 자료인 성별(Sex) 데이터는 male, female 값을 가지고 있습니다. 이를 0, 1 인 수치형 자료로 변환해 봅시다. titanic 데이터 구성 문제 import pandas as pd from elice_utils import EliceUtils elice_utils = EliceUtils() # 데이터를 읽어옵니다. titanic = pd.read_csv('./data/titanic.csv') print('변환 전: \n',titanic['Sex'].head()) """ 1. replace를 사용하여 male -> 0, female -> .. 2021. 8. 31.
[AI 응용 ML] 이론 | 2.2 범주형 자료 전처리 명목형 자료 / 순서형 자료 명목형 : 의미 없는 범주 크기 (각 범주는 상징성) 순서형 : 의미 있는 범주 크기 (각 범주는 수치성) 1은 생존, 0은 사망처럼 숫자를 범주로 활용 명목형 자료_수치맵핑변환 1. 범주를 0 또는 1로 맵핑 2. 범주를 0, 1, 2로 변환 명목형 자료_더미 기법 0은 No, 1은 Yes를 의미한다. 변수를 추가하여 0, 1로 맵핑. 수치맵핑은 칼럼 하나에 범주를 작성했다면 더미기법은 범주의 갯수 만큼의 칼럼을 생성해서 모두 작성함 순서형 자료_수치맵핑 주관적인 것을 수치화 시킴. 크기 차이를 통해 데이터를 강조함 이 수치의 크기가 머신러닝 결과에 영향을 미침 2021. 8. 31.
[AI 응용 ML] 이론 | 2.1 전처리 머신러닝 데이터 전처리 이해 범주형, 수치형 데이터 전처리 머신러닝은 4단계로 진행됨 전처리 과정에서 머신러닝에 사용될 수 있는 형태로 데이터를 가공함 데이터 전처리의 역할 전처리는 왜 필요할까? 데이터 변환 때문. 실제 데이터는 다양한 형태로 존재한다. 기존 데이터는 머신러닝 모델이 이해할 수 있는 형태가 아님 전처리를 통해 머신러닝 모델이 이해할 수 있는 "수치형 자료"로 변환! 데이터 정제는 왜 필요할까? 이상치란? 소수점 나이 예시. 소수점 나이는 있을 수 없음 결측값이란? NaN 데이터 분리란? 학습용 데이터와 평가용 데이터로 분리함. 왜 데이터 분리하지? 원본 데이터 전체를 학습 데이터로 활용하면 학습 데이터에 편향된 채 학습이 되기에 학습 데이터와 조금 다른 경우 정확성이 떨어질 수 있기 때문. 2021. 8. 31.
[AI 응용 ML] 실습 | 1.7 수치형 자료의 요약 - 히스토그램 지시사항 코드 입력창에 히스토그램을 그리는 코드를 입력해주세요. plt.hist(coffee) 문제 import numpy as np import pandas as pd import matplotlib.pyplot as plt from elice_utils import EliceUtils elice_utils = EliceUtils() # 카페인 데이터 coffee = np.array([202,177,121,148,89,121,137,158]) fig, ax = plt.subplots() """ 1. 히스토그램을 그리는 코드를 작성해 주세요 """ # 히스토그램을 출력합니다. plt.show() fig.savefig("hist_plot.png") elice_utils.send_image("hist_plo.. 2021. 8. 30.
[AI 응용 ML] 실습 | 1.6 수치형 자료의 요약 - 표준편차 수치형 자료의 요약 중 퍼진정도의 측도를 나타내주는 요약통계량인 표준편차 지시사항 coffee에 저장된 카페인 함량 값들의 표준편차를 계산해서 cf_std 에 저장해서 확인해봅시다. 표준편차 계산 함수 statistics의 stdev 함수는 표준편차를 계산하여 리턴합니다. 입력으로 numpy array를 입력하여 계산할 수 있습니다. std = stdev(array) 문제 from statistics import stdev import numpy as np coffee = np.array([202,177,121,148,89,121,137,158]) """ 1. 표준편차 계산 """ cf_std = None # 소수점 둘째 자리까지 반올림하여 출력합니다. print("Sample std.Dev : ", r.. 2021. 8. 30.
[AI 응용 ML] 실습 | 1.5 수치형 자료의 요약 - 평균 지시사항 coffee에 저장된 카페인 함량 값들의 평균을 계산하여 cf_mean 에 저장해봅시다. 힌트 평균 계산 함수 np.mean 함수는 평균을 계산하여 리턴합니다. 입력으로 numpy array를 입력하여 계산할 수 있습니다. mean = np.mean(array) 문제 import numpy as np coffee = np.array([202,177,121,148,89,121,137,158]) print(coffee) """ 1. 평균계산 """ cf_mean = None # 소수점 둘째 자리까지 반올림하여 출력합니다. print("Mean :", round(cf_mean,2)) 정답 import numpy as np coffee = np.array([202,177,121,148,89,121,13.. 2021. 8. 30.
[AI 응용 ML] 실습 | 1.4 범주형 자료의 요약 - 막대그래프 [실습1]에서 계산했던 술자리 참석 빈도의 도수를 한 눈에 보기 쉽도록 그래프를 그리겠습니다. 앞선 실습의 결과를 통해 막대 그래프를 그려보겠습니다. [실습1]의 도수 결과 지시사항 참석 비율(ratio)을 기준으로 막대그래프 막대의 크기를 다르게 하는 코드를 작성하여 출력하세요. plt.bar(labels,ratio)​ Tips! plt.show() 함수는 만든 그래프를 보여주는 역할입니다. 아래 코드는 엘리스 플랫폼에서 그림 파일을 출력하기 위한 코드입니다! fig.savefig("bar_plot.png") elice_utils.send_image("bar_plot.png") 주어진 코드 from elice_utils import EliceUtils import matplotlib.pyplot as .. 2021. 8. 30.
반응형