728x90

1. 🐼Pandas란?

2. 다운로드 방법

  • Anaconda distribution
  • Pandas를 다운로드 받는 가장 쉬운 방법은 Anaconda distribution을 다운받는 것이다.
    아나콘다 디스트리뷰션을 이용하면 따로 pandas를 따로 다운 받을 필요 없이 SciPy stack을 모두 다운 받을 수 있다.
  • Miniconda 3.
  • 특정 패키지만을 다운받고 싶다면 miniconda도 추천한다. Conda라는 패키지 매니저를 통해 다운받아야 하는데 miniconda를 다운받고 실행하면 된다.
  • Jupyter notebook 참고 문헌
  • //일반적인 경우 !pip3 install pandas //permission 에러의 경우 !pip3 install pandas --user
  • 노트북에 jupyter notebook을 다운 받으면 된다. 후에 pandas를 import할때 오류가 난다면 아래의
    코드를 입력하면 해결이 된다

3. Pandas의 특징

  • Pandas는
    1. 서로 다른 타입의 열들로 이뤄진 표로 나타낸 데이터(tabular data)
    2. 정렬 혹은 정렬되지 않은 시계열 데이터(일정 시간에 대해 시간의 함수로 표현되는 데이터)
      (time-series data)
    3. 행 과 열을 가진 임의의 행렬 데이터
    4. 관찰, 수치 데이터 세트(분류될 필요가 없다)

위와 같은 데이터를 처리하는데 특화 되어있다.

  • pandas의 모든 자료구조는 value-mutable(값이 변할 수 있다)하다.

4. Pandas 이용하는 법

  • pandas 패키지를 load 하려면 패키지를 import 해야한다.
    pandas 의 alias 는 pd 이다. 따라서 아래의 코드와 같이 pandas를 import하면 된다.
import pandas as pd

Untitled

5. Pandas 실습

1) Pandas의 자료형

  • 각 DataFramed 의 행(Column, 세로 줄)은 Series이다
  • 하나의 행을 선택하는 것은 파이썬에서 Dictionary 값을 key로 선택 하는 것과 유사하다
  • Pandas Series는 DataFrame중의 하나의 행으로 이루어져 있기 때문에 행 값이 없다.
  • DataFrame, Series는 method를 활용해 다양한 기능을 구현할 수 있다.
    다만 parentheses( )를 꼭 붙여야 한다.
  • 다양한 method가 있다
    1. max() : 최대 값을 반환한다.
    2. describe(): DataFrame의 수치데이터에 대한 간략한 개요를 보여준다.

2) Tabular data를 읽고 쓰는 방법

  • Pandas 는 read_csv() 함수를 지원해서 css file 을 pandas DataFrame 으로 변환해준다.
    read_파일형식 을 활용하면 csv, excel, sql, json, parquet 등의 파일을 열 수 있다.
titanic = pd.read_csv("titanic.csv")
titanic
  • DataFrame의 첫 N 행을 보고싶으면 head() 메서드를 이용해서 볼 수 있다.
  • DataFrame의 마지막 N 행을 보고싶으면 tail( )메서드를 사용하면 된다.
titanic.tail(10)
  • 열들의 데이터 타입이 알고싶다면 pandas의 dtypes 속성을 활용하면 된다.
titanic.dtypes
  • pandas 에서는 to.파일명() 을 활용해서 데이터를 저장할 수 있다. 예를 들어,
titanic.to_excel('titanic.xlsx', sheet_name = 'passengers', index = False)
  • 여기에서 to_excel() 메서드를 통해 데이터를 excel 파일로 저장했다.
    저장 형식은 (파일명, sheet_name, index) 이다.
    1. 파일명
    2. sheet_name = sheet 이름
    3. index = False 를 통해 행 인덱스 값들이 스프레드시트에 저장되지 않았다.
  • read_파일명( ) 형식을 활용해서 data를 DataFrame 으로 다시 만들 수 있다.
  • info() 메서드를 활용해서 DataFrame 의 기술적인 정보를 확인 할 수 있다

3) DataFrame 의 부분 집합을 선택하는 방법

  1. 특정 열을 선택하는 방법
    • 특정 열을 선택하고 싶다면 [열의 이름]를 활용하면 된다.
    • DataFrame의 모든 열은 Series이다. 따라서 하나의 열을 선택하면 반환값은 Series 이다.
    • DataFrame.shape 은 DataFrame 과 Series의 속성이다.
    • 여러 개의 열을 선택하고 싶다면 열의 이름의 list 를 [ ]안에 넣으면 된다.
    • age_sex = titanic[['Age', 'Sex']]
  1. 특정 행을 선택하는 방법
    • 조건을 통해서 특정 행을 선택하고자 하면 [ ] 안에 조건을 적으면 된다
    • above_35 = titanic[titanic["Age"] > 35]
    • 조건 연산자( >, ==, ≠, <, ≤ 등의 연산자들) 는 boolean 값 들의 Series 이다.
      이러한 Series는 DataFrame을 [ ] 안에 넣어서 필터링하는데 사용한다.
    • isin() 조건 함수를 사용하여 list에 포함된 값을 가지고 있는 행에 대해 참값을 반환한다.
    • class_23 = titanic[titanic["Pclass"].isin([2,3])]
    • notna() 는 행의 값이 Null 이 아닌 행들에 대해 True 값을 반환해준다.
  2. 특정 행과 열을 선택하는 방법
    • loc/iloc 연산자로 행과 열을 모두 선택할 수 있다.
      loc/iloc 연산자 안에 있는 값중 콤마(,) 앞의 값은 원하는 행,
      콤마(,) 뒤의 값은 원하는 열이 들어간다.
    • adult_names = titanic.loc[titanic["Age"]>35, "Name"]
    • loc[ , ] 에서 콤마(,) 앞 뒤에는 하나의 레이블, 레이블들의 list, 레이블들의 slice, 조건 연산자, 콜론(:) (모든 열/행 의 값) 등이 올 수 있다.
    • 특정 행과 열의 값 중에서 일부가 필요하면 iloc 을 사용하면 된다.
    • titanic.iloc[9:25,2:5]

'인공지능 > 인공지능 기초 개념' 카테고리의 다른 글

(3)-2 EDA 실습  (1) 2024.03.15
(4) EDA 필사  (0) 2024.03.15
(3)EDA  (0) 2024.03.15
(2) 데이터 시각화  (1) 2024.03.14
(1) Machine Learning  (0) 2024.03.14
728x90

Machine Learning(ML)이란?

  • Input과 output이 주어졌을때 y = f(x)를 학습하는 것 or 함수 근사
  • 여기서 input은 입력값, output은 정답 혹은 label이다.
  • 따라서, 학습 시에 input은 학습 데이터가 되고 검증시에는 input은 우리가 답을 찾기를 원하는 데이터가 된다. → 여기서 답은 우리가 원하는 Task에 따라 조금씩 달라진다.

Machine Learning == function approximation

Machine Learning Tasks

Object Detection

말그대로 객체 탐지이다. 사진에서 객체를 탐지해서 bounding box로 감싼다. 이때 image를 ML 모델에 넣어주면 ML 모델은 object label과 Bounding box를 계산한다.

Object Detection

Sementic segmentation

Sementic segmentation은 단위별로 색칠을 하는 것으로 사진에서 물체의 테두리를 기준으로 표시를 하는 Task이다. Input으로 image를 주면 ML 모델은 픽셀 단위로 구분해서 label을 달아준다.

Sementic segmentation

Image to Caption

Input으로 image를 주면 우선 CNN(convolutional neural network)로 feature를 추출하고 해당 feature를 바탕으로 LM(언어 모델) 여기서는 RNN이 caption 혹은 설명을 생성한다.

Image to Caption

Caption to Image

Image to Caption과는 반대로 Input으로 caption을 주면 이미지를 생성해낸다.

Machine Translation

기계번역은 한 언어를 다른 언어로 번역하는 Task로 NLP(자연어 처리) 분야에서 main task중 하나입니다.

Machine Translation

Autonomous Driving

자율주행은 카메라 정보, 속도, 라이다 정보등이 입력되면 ML 모델이 자율적으로 주행을 하는 것이다.

Autonomous Driving

기타 Task

3D pose for Furniture, Human pose, Visual Question Answering(VQA)...

Machine Learning의 목표

ML의 목표는 f(x)를 최대한 현실에 가깝게 근사하는 것이다. 즉, 정확도가 높은 함수 f(x)를 만드는 것이다. 사실 웬만한 경우 x, y값은 존재한다. 예를 들어, 암진단하는 ML 모델을 훈련할때 암 영상과 label(정답)은 이미 존재한다. 하지만 진짜 어려운 부분은 f(x)를 만드는 것이다.

그렇다면 두가지를 해결해야한다. (1) 이 함수를 어떻게 구할지 (2) 현실의 문제를 어떻게 공식화 또는 함수화 할지

이 내용은 추후 다루도록 한다.

Machine Learning / Deep Learning의 종류

Supervised Learning

학습시에 y 즉, 정답이 제공되는 학습 방법.

Supervised Learning

Unsupervised Learning

학습시에 y 즉, 정답이 제공되지 않는 학습 방법. 이상태에서도 의미있는 함수를 만드는게 목적이다.

Unsupervised Learning

Weakly / Semi-supervised Learning

일부 y or 정답이 제공된다.

Weakly / Semi-supervised Learning

Reinforcement Learning

환경이 존재하고 상호작용이 있어서 agent가 잘하면 +, 못하면 -의 feedback을 제공해서 학습한다.

Reinforcement Learning

'인공지능 > 인공지능 기초 개념' 카테고리의 다른 글

(3)-2 EDA 실습  (1) 2024.03.15
(4) EDA 필사  (0) 2024.03.15
(3)EDA  (0) 2024.03.15
(2) 데이터 시각화  (1) 2024.03.14
(1) Pandas란?  (0) 2024.03.14

+ Recent posts