ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python/ATL] Intro to machine learning(1탄 - 데이터 관리)
    Python 2022. 5. 15. 22:53
    반응형

    제가 진행하고 있는 파이썬 코스에 진전이 생겼습니다~!!╰(*°▽°*)╯생각보다 늦게 올리게 되었네요ㅜㅜ 

    용어가 다소 생소할 수 있으니 미리 사전 정의를 읽고 글을 봐주시는 것을 추천합니다!


    사전 용어 정의

    [최대한 간단하게 정의해보았으나, 추후에 조금 더 쉬운 언어로 표현해보겠습니다.]

    객체 - 물리적으로 존재하거나 추상적으로 존재할 수 있는 것에 대해서 자신의 속성과 행동(동작)을 가지고 있는 것을 의미합니다.

    라이브러리- 코드를 이용해서 미리 만들어놓은 코드 도구 모음입니다.

    메서드-객체의 동작(행동)을 의미합니다.

    속성-객체의 두가지 요소중 하나로, 객체의 특징이라고 보시면 됩니다!

    Decision Tree-판단요소와 그에 따른 가능한 결과들을 나타낸 나무 같은 모양의 그래프입니다.


    이번에 사용할 Model

    집의 특징(평수, 위치 , 층수등)을 이용해 🏠집의 가격을 예측하는 Model입니다.


    Decision Tree를 이용한 Model

    Model을 만들기 위해서는 다양한 방법이 있지만, 제가 배운 과정에서는 간단한 Decision Tree를 이용해 Model을 작성했습니다.

    먼저 이 Decision Tree를 보게 되면 질문(Does house have more than 2 Bedrooms)을 이용해서 가격을 예측하게 되는데, 이 과정을 패턴을 파악한다고 하고, training 혹은 fitting한다고 합니다! 

    패턴을 파악하기 위해서 사용된 데이터는 training data 라고 하게 됩니다!

    잠깐 용어 정리를 하자면,

    • model의 패턴을 파악하는 과정 -> training, fitting
    • 패턴을 파악하는데 필요한 데이터 -> training data

    Pandas 라이브러리 : 데이터를 다루기 위한 유용한 도구

    위에서 패턴을 파악하는데 필요한 데이터를 training data라고 정의했습니다.

    이 데이터를 다루기 위해서 필요한 라이브러리가 Pandas라는 라이브러리입니다.

    import pandas as pd

    위 명령을 이용해 pandas 라이브러리를 불러옵니다. Pandas가 어떤 도구 모음을 가지고 있는지 알아볼까요?

     

    1. Pandas의 데이터 불러오기

    Training data의 경로가 '../training_data/house_training_model.csv'라고 가정해봅시다

    Pandas는 이 데이터를 read_csv 메서드를 통해 가져올 수 있습니다.

    import pandas as pd
    
    house_file_path = '../training_data/house_training_model.csv'
    house_data = pd.read_csv(house_file_path)

    2. Pandas를 이용해 데이터 통계 보기

    앞서 read_scv를 통해 home_data라는 변수에 training data를 불러왔습니다.

    이 불러온 데이터에 대해 describe 메소드를 사용하게 되면 데이터 통계를 볼 수 있습니다.

    home_data.describe()

    사진처럼 통계 결과를 얻을 수 있습니다.

    describe 메소드를 통해 얻을 수 있는 결과의 종류

    • count - 데이터의 개수를 사용
    • mean - 함수의 평균을 계산
    • std - 표준편차
    • min, max- 최소값, 최대값
    • 25%, 50%, 75% - 하위 25%, 하위 50%, 하위 75% 에 해당하는 데이터

    3. Pandas를 이용해 부분 데이터 불러오기

    Pandas는 데이터를 다룰 때 더 유용합니다!

    데이터 안에 있는 특정 집합의 이름을 볼 수 있는 속성 columns를 이용해서 볼 수 있습니다.

    home_data.columns
    --출력--
    Index(['Suburb', 'Address', 'Rooms', 'Type', 'Price', 'Method', 'SellerG', 'Date', 'Distance', 'Postcode', 'Bedroom2', 'Bathroom', 'Car', 'Landsize', 'BuildingArea', 'YearBuilt', 'CouncilArea', 'Lattitude', 'Longtitude', 'Regionname', 'Propertycount'], dtype='object')

    위에 형광펜 부분과 아래 표를 비교해서 보시면, columns 속성은 아래와 같이 특정 집합의 이름을 담고 있다는 것을 알 수 있습니다.

    근데 이 columns 속성이 왜 중요할까요?

    데이터가 어떤 요소들로 이루어져 있는지 볼 수 있고, 어떤 데이터를 선택해야할지 판단할 수 있기 때문입니다.

    우선 보는 방법은 알아보았으니, 데이터를 선택하는 방법을 알아볼까요? 

    y라는 변수에 데이터의 Price 속성을 따로 선택하고 싶다고 했을 때, 코드는 아래와 같습니다.

    y = home_data.Price

    여러 속성을 한꺼번에 선택해 변수에 저장할 수도 있습니다. 우선 columns 속성의 일부를 배열로 만들어보겠습니다.

    home_features = ['Rooms', 'Bathroom', 'Landsize', 'Lattitude', 'Longtitude']

    그리고 아래 코드를 통해 X라는 변수에 위의 배열에 나와있는 속성들을 넣어줄 수 있습니다.

    X = home_data[home_features]

    아까 봤던 describe 함수를 통해 데이터를 살펴볼까요?

    X.describe()

    이런 식으로 배열에 저장해둔 속성들만 표시해주는 것을 볼 수 있습니다!


    이렇게 1탄에서는 간단한 개념과, Pandas 라이브러리를 이용해 데이터를 다루는 방법을 알아보았습니다.

    2탄에는 본격적으로 데이터를 어떻게 활용하는지 다루도록 하겠습니다!


    출처

    https://www.kaggle.com/learn/intro-to-machine-learning

     

    Learn Intro to Machine Learning Tutorials

    Learn the core ideas in machine learning, and build your first models.

    www.kaggle.com

     

    반응형
Designed by Tistory.