AI교육과정 - Python.15

단비·2023년 2월 16일
0

AI교육과정

목록 보기
67/69
  1. 결측치 처리

    • 나이 결측치를 0으로 처리 후 통계정보를 확인
      • fillna: 결측값을 특정 값으로 채우기
    train['Age'].fillna(0).describe()
    • 나이 결측치를 평균으로 처리 후 통계정보를 확인
    train['Age'].fillna(train["Age"].mean()).describe()
  2. Label Encoding

    • 값의 갯수를 계산
    train['Sex'].value_counts()
    • 문자(Categorycal)를 수치(Numerical)로 변환
    from sklearn.preprocessing import LabelEncoder
    LabelEncoder.fit_transform(train['Embarked'])
  3. One Hot Encoding

    • 머신러닝 알고리즘은 'C'=0, 'Q'=1, 'S'=2, NaN=3 데이터의 관계성을 찾아 "Q + Q = S"라고 학습을 할 수도 있음
    • 독립적인 데이터는 별도의 컬럼으로 분리하고 각각 컬럼에 해당 값에만 True(1) 나머지는 False(0) 값을 갖게 해주는 기술

  • 결측치 처리
    • drop: 열 삭제

    • dropna: 열단위 또는 행단위 삭제

      # Size에 있는 결측치만 지우기
      rent_df.dropna(subset = ['Size']) # 행단위로 지움
      rent_df.dropna(1) # 열단위로 지움/ axis 축, na가 있는 열을 모두 삭제(BHK, Size 모두 삭제)
      rent_df.drop("BHK", axis=1) #열 삭제
    • 결측 데이터가 데이터에 비해 많이 적을 경우 삭제를 하는 것이 좋음

    • 결측치에 데이터를 채우게 될 경우 boxplot을 확인하는 것이 좋음


    • Boxlot을 확인 후 mean보다는 median을 쓰는게 좋다고 결정

  • Area Type은 텍스트 형태이기 때문에 모델에서 계산을 할 수 없음
  • 라벨 인코딩 처리를 하기 위해 데이터의 종류를 알아봄
X = rent_df.drop('Rent', axis = 1) # Rent만 제외한 컬럼(독립변수) / 다차원일 경우 대문자
y = rent_df['Rent'] # Rent만 저장한 컬럼(종속변수) / 일차원일 경우 소문자

  1. 선형 회귀(Linear Regiression)

    • 독립변수(x)로 종속변수(y)를 예측하는 것
    from sklearn.linear_model import LinearRegression
    lr = LinearRegression()
    lr.fit(X_train, y_train)
    pred = lr.predict(X_test)
  2. 평가 지표 만들기

    • 데이터의 분포가 선형일 때는 로그를 사용하는 것이 좋지 않지만, 비선형일 때는 로그를 사용하는 것이 성능에 좋다
    1. MSE (Mean Squared Error)
      • 예측값과 실제값의 차이에 대한 제곱에 대하여 평균을 낸 값
      • (1𝑛)∑𝑛𝑖=1(𝑦𝑖−𝑥𝑖)2
    2. MAE(Mean Absolute Error)
      • 예측값과 실제값의 차이에 대한 절대값에 대하여 평균을 낸 값
      • (1𝑛)∑𝑛𝑖=1|𝑦𝑖−𝑥𝑖|
    3. RMSE(Root Mean Squared Error)
      • 예측값과 실제값의 차이에 대한 제곱에 대하여 평균을 낸 후 루트를 씌운 값
      • (1𝑛)∑𝑛𝑖=1(𝑦𝑖−𝑥𝑖)2‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾√
profile
tistory로 이전! https://sweet-rain-kim.tistory.com/

0개의 댓글