본문 바로가기
반응형

● 인공지능, 분석120

3-11. DataFrame 이론 | 인덱스, 칼럼명 설정하기 position이란 칼럼의 앞 글자를 대문자로 수정해보자 하지만 위처럼 바꾸면 실제 df에 반영이 되지 않는다. 하단 처럼 작성해야한다. 첫번째 칼럼에는 이름이 없다. 여기에 Player Name을 부여하자 인덱스를 Player Name이 아니라 Number로 해주고 싶다면? +. 이렇게만 작성하면 DF에 반영이 안됨. inplace=True를 넣어줘야됨 🚫 여기서 주의할 점! 위 처럼 작성하면 기존의 선수이름이 삭제된다. 고로 기존의 인덱스를 새 컬럼에 지정해줘야 한다. 즉, 인덱스 -> 컬럼 으로 옮겨야한다. 이제 인덱스를 NUmber 칼럼으로 바꿔보자 💥💥💥 퀴즈 : 서류 전형 합격 여부' 조건 1. 각 파트가 최소 250점, 총 점수가 최소 600점이 되어야 서류 전형을 합격 2. “합격 여부”라.. 2021. 9. 10.
3-10. DataFrame 이론 | Row, Column 값 추가, 삭제 기존 데이터프레임 값 추가하기 아이폰XR 정보도 추가하려면? 다음처럼 정보 수정하듯이 작성하면 된다. 제조사라는 칼럼을 새로만들어서 모두 apple이란 값을 넣어보자. 값 삭제하기 기존의 DF를 건드리지 않고 아이폰XR 삭제하기. (row값 삭제하기) 기존 DF에서 아이폰XR 삭제하기 아이폰7, 아이폰8, 아이폰X 삭제하기 (여러 행 삭제하기) 문제 : 잘못된 데이터프레임 고치기1 ID 1의 무게를 200으로 변경하세요. ID 21의 row를 삭제하세요. ID 20의 row를 추가하세요. ID 20의 키는 70, 무게는 200입니다. 정답 코드 import pandas as pd df = pd.read_csv('data/body_imperial1.csv', index_col=0) # 코드를 작성하세요. .. 2021. 9. 10.
3-9. DataFrame 이론 | Row, Column 값 변경하기 하나의 Ro,w Column 변경하기 주어진 DataFrame 1. 아이폰8의 메모리를 바꿔보자. (특정 행,열을 지정하여 수정) 2. 아이폰8의 전체 정보를 바꿔보자 (1개의 행 전체 정보 변경) 행이기 때문에 loc를 사용한다. 3. ''디스플레이'' 칼럼 정보를 바꿔보자. (칼럼 1개 전체를 변경하자) 4. Face ID칼럼의 값을 전부 'Yes'로 바꿔보자. (만약 칼럼을 동일한 값으로 변경하고자 한다면?) 값을 하나만 넣으면 된다. 여러 Row를 한번에 변경하기 5. 디스플레이, Face ID칼럼을 x로 변경하기. (여러 칼럼을 한번에 변경하기) 6. 아이폰7, 아이폰X를 전부 o로 변경하기. (여러 행을 한번에 변경하기) 7. 디스플레이가 5보다 큰 것들만 인덱싱해보기 인덱싱 후 값 변경 il.. 2021. 9. 10.
3-8. DataFrame 이론 | DafaFrame Indexing 정리 이름으로 인덱싱하기 기본 형태 단축 형태 하나의 row 이름 df.loc["row4"] row 이름의 리스트 df.loc[["row4", "row5", "row3"]] row 이름의 리스트 슬라이싱 df.loc["row2":"row5"] df["row2":"row5"] 하나의 column 이름 df.loc[:, "col1"] df["col1"] column 이름의 리스트 df.loc[:, ["col4", "col6", "col3"]] df[["col4", "col6", "col3"]] column 이름의 리스트 슬라이싱 df.loc[:, "col2":"col5"] 위치로 인덱싱하기 기본 형태 단축 형태 하나의 row 위치 df.iloc[8] row 위치의 리스트 df.iloc[[4, 5, 3]] row .. 2021. 9. 10.
3-7. DataFrame 이론 및 실전 | 위치로 인덱싱(iloc) 정수위치로 인덱싱하기 : iloc (integer location) 주어진 DafaFrame iloc 적용하기 (모든 숫자는 인덱스의 번호를 상징) 1. 인덱스 2번째 행, 4번째 열을 출력해보자. 2. 1,3번 row의 1,4번 column을 출력해보자. 3. 연속된 인덱싱하기 2021. 9. 10.
3-6. DataFrame 이론 및 실전 | 연속 행▪열 출력, boolean, 조건 필터링 indexing import pandas as pd df = pd.read_csv('data/iphone.csv', index_col=0) iPhone X, iPhone 8 정보 가져오기. (행 2개 가져오기) 1차원은 Series 2차원은 DataFrame 연속된 row를 출력해보자 iPhone X까지 출력하기 df.loc[:'iPhone X'] 연속된 column(메모리 칼럼 ~ Face ID 칼럼)을 출력해보자. df.loc[ : , '메모리' : 'Face ID' ] Boolean 0,2,3,5 칼럼만 출력하기 df.loc=[[True, False, True, True, False, True , False]] 전체 칼럼에 대해 Boolean값을 작성하지 않았다면? 작성하지 않은 칼럼들에 대해선 F.. 2021. 9. 10.
3-5. DataFrame 이론 및 실전 | indexing, 칼럼 출력, 2개 파일 통합 indexing import pandas as pd df = pd.read_csv('data/iphone.csv', index_col=0) 특정 row, column 출력하기 행을 출력하려면 loc를 사용한다. 행과 열을 출력할때도 loc를 사용 열만 출력할 때는 loc없어도 됨. (단, 연속된 column을 출력할 때는 loc 사용) iphone 8(행)의 메모리(열)를 출력해보자 df.loc['iPhone 8','메모리'] # 행, 열을 지정 iPhone X의 전체 행을 출력해보자 df.loc['iPhone 8'] # 행 인덱스 네임만 입력 '출시일'을 출력해보자. (1가지 칼럼만 출력하기) df.loc[ : , '출시일'] # 칼럼 네임만 입력 df['출시일'] 출시일, 메모리를 출력해보자. (2가.. 2021. 9. 10.
3-4. DataFrame 실전 | DataFrame으로 파일 출력하기 Q1 ) DF변환하여 출력하기 조사 결과가 data 폴더의 popular_baby_names.csv라는 파일에 담겨 있는데요. 안에 있는 정보를 DataFrame으로 읽어 들이고, DataFrame을 출력 import pandas as pd df = pd.read_csv('data/popular_baby_names.csv') df Q2 ) 칼럼을 행의 제목으로 사용하기 data폴더의 mega_millions.csv 파일의 데이터를 DataFrame에 넣어 봅시다. 0번째 칼럼이 DataFrame의 인덱스가 되도록 해 주세요! import pandas as pd df = pd.read_csv('data/mega_millions.csv', index_col = 0) df 2021. 9. 10.
3-3. DataFrame 이론 | pandas의 데이터 타입 pandas DataFrame에는 다양한 종류의 데이터를 담을 수 있습니다. dtypes를 사용해서 각 column이 어떤 데이터 타입을 보관하는지 확인할 수 있는데요. import pandas as pd two_dimensional_list = [['dongwook', 50, 86], ['sineui', 89, 31], ['ikjoong', 68, 91], ['yoonsoo', 88, 75]] my_df = pd.DataFrame(two_dimensional_list, columns=['name', 'english_score', 'math_score'], index=['a', 'b', 'c', 'd']) print(my_df.dtypes) ### name object english_score int64.. 2021. 9. 9.
[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.
반응형