데이터 과학 초보자 메모 [2일째]

개요



지난번 에 이어 2번째입니다.
마찬가지로, 받은 데이터를 만나갑니다.

해봤어


  • 마지막으로 작성한 히트 맵에 이어 산점도 행렬을 작성하여 데이터를 시각화합니다.
  • from pandas.tools.plotting import scatter_matrix
    scatter_matrix(droped_data)
    plt.show()
    

    히트 맵과 산점도 행렬에서 목적 변수와 상관 관계가있는 몇 가지 특징이 있음을 발견했습니다.
  • 그 특징으로부터 새로운 특징을 만들 수 있을 것 같다 → 새로운 특징 작성
  • droped_data['C'] = (droped_data['A'] + droped_data['B'] ) / 2
    # ここの処理はデータ依存です,今回は単純にAとBの平均を新しい特徴としました.
    
  • 이 새로운 특징으로 목표 변수를 설명 할 수 있다고 생각합니다.
    from sklearn.model_selection import train_test_split
    from sklearn.metrics import accuracy_score
    from sklearn.ensemble import RandomForestRegressor
    
    train_X = df_new.drop(['D','E'],axis=1) # 説明変数:今回はいらないものをのぞいた全てを入れました
    train_y = df_new.X # 目的変数,:予想する特徴
    
    X_train, X_test, y_train, y_test = train_test_split(
            train_X,train_y, test_size=0.2, random_state=0)
    
    

    train_test_split은 scikit-learn에서 제공하는 데이터 세트를 분할하는 메소드입니다.
    첫 번째 인수는 입력 데이터이고 두 번째 인수는 정답 레이블 배열을 전달합니다.
    인수 test_size에서는 테스트 데이터의 비율을 0.0 ~ 1.0의 실수로 지정할 수 있습니다. (이번 경우는 train:test=8:2로 했습니다)
    분할 비율은 학습 : 테스트 데이터를 2:1이 자주 사용되는?? (참고: 하테나 블로그 )
    인수 random_state를 사용하면 분할에 사용되는 난수의 시드 값을 고정 할 수 있습니다.
  • 준비도 되었으므로, 조속히 랜덤 포레스트에
  • rf_reg = RandomForestRegressor(n_estimators=10)
    rf_reg = rf_reg.fit(X_train, y_train)
    

    이번에는 회귀 문제이므로 RandomForestRegressor ()를 사용했습니다.
    분류 문제라면 RandomForestClassifier()로 변경해 해결??
    인스턴스를 정의하고 fit하는 것은 매우 간단합니다!
  • train과 test의 정밀도를 확인합니다.
  • print(rf_reg.score(X_train,y_train))
    print(rf_reg.score(X_test,y_test))
    

    그 어느 쪽도 너무 좋다 ...??


    역시 결손값은 떨어뜨렸을 뿐만 아니라, 적절하게 메워야 합니다...

    요약



    이번에는 데이터를 우선 무작위 포리스트에 넣어 보았습니다.
    역시 실 데이터는 결손치가 많아, 적절한 보완이 필요하다는 것을 알았습니다.
    다음 번에는 보완 방법에 대해 공부하겠습니다.
    후배가 「전처리 대전」라고 하는 책을 소개해 주었으므로, 아울러 읽고 공부해 가고 싶습니다.

    환경


  • Python 3.6
  • pandas 0.20.3
  • scikit-learn 0.19.1

  • 마지막으로



    데이터 과학도 Qiita도 초보자 때문에, 잘못된 부분, 이상한 부분이 있다고 생각합니다.
    눈치채는 분은 지적하실 수 있으면 다행입니다.

    좋은 웹페이지 즐겨찾기