데이터 과학 초보자 메모 [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하는 것은 매우 간단합니다!
print(rf_reg.score(X_train,y_train))
print(rf_reg.score(X_test,y_test))
그 어느 쪽도 너무 좋다 ...??
역시 결손값은 떨어뜨렸을 뿐만 아니라, 적절하게 메워야 합니다...
요약
이번에는 데이터를 우선 무작위 포리스트에 넣어 보았습니다.
역시 실 데이터는 결손치가 많아, 적절한 보완이 필요하다는 것을 알았습니다.
다음 번에는 보완 방법에 대해 공부하겠습니다.
후배가 「전처리 대전」라고 하는 책을 소개해 주었으므로, 아울러 읽고 공부해 가고 싶습니다.
환경
마지막으로
데이터 과학도 Qiita도 초보자 때문에, 잘못된 부분, 이상한 부분이 있다고 생각합니다.
눈치채는 분은 지적하실 수 있으면 다행입니다.
Reference
이 문제에 관하여(데이터 과학 초보자 메모 [2일째]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kawaiy/items/bd495f2d00cccc6e6a4c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)