랜덤 포레스트를 써봤어요.
이번 목적
SIGNATE의 Practice, 포도주 품종을 예측합니다.
본론
사용 학습 알고리즘
RandomForest
(랜덤 숲)코드
데이터 가져오기
wine-learning.py
wine_data = pd.read_csv('train.tsv',sep='\t')
wine_test = pd.read_csv('test.tsv',sep='\t')
지난번에 사용read_table
했는데 드문 기회라서 사용해 봤습니다read_csv
.나는 테이블이 더 편하다고 생각한다.그나저나 어떤 호출 방법도 똑같기 때문에 정확한 것은 없다.
특징량 데이터와 교사 데이터의 분리
wine-learning.py
X = wine_data.loc[:,['Alcohol','Malic acid','Ash','Alcalinity of ash','Magnesium','Total phenols','Flavanoids','Nonflavanoid ohenols','Proanthocyanins','Color intensity','Hue','OD280/OD315 of diluted wines','Proline']].values
y = wine_data.loc[:,'Y'].values
변수가 많으면 길어지기 쉬우므로 이 문제를 해결하려고 한다.다음 과제에 개선할 수 있는 방법이 있는지 연구하다.참고로 여기서도 테스트 데이터를 하고 있습니다.
wine-learning.py
Xt = wine_test.loc[:,['Alcohol','Malic acid','Ash','Alcalinity of ash','Magnesium','Total phenols','Flavanoids','Nonflavanoid ohenols','Proanthocyanins','Color intensity','Hue','OD280/OD315 of diluted wines','Proline']].values
학습 데이터와 테스트 데이터로 분할
wine-learning.py
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2)
이번에도 데이터를 8:2의 비율로 분할했다.누락된 값 삭제
wine-learning.py
X_train = X_train[:, ~np.isnan(X_train).any(axis=0)]
X_test = X_test[:, ~np.isnan(X_test).any(axis=0)]
Xt = Xt[:, ~np.isnan(Xt).any(axis=0)]
분할 전에 없는 결손치가 갑자기 나타났다.이유를 몰라서 며칠 후에 검증하고 싶어요.이번에 결손치를 삭제하는 방침을 세웠다.
학습 모형
SVC
wine-learning.py
clf = svm.SVC()
clf.fit(X_train, y_train)
논리 회귀wine-learning.py
clf = LogisticRegression()
clf.fit(X_train, y_train)
랜덤 숲wine-learning.py
clf = RandomForestClassifier(n_estimators=500, random_state=0)
clf.fit(X_train, y_train)
random_state 0,nuestimators(결정 트리의 개수)는 500을 더 설정합니다.평가 모델
wine-learning.py
y_pred = clf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print('正解率 = ' , accuracy)
예를 들어 accuracy
함수를 사용하여 정확한 확률을 얻는다.SVC 정확도
正解率 = 0.6111111111111112
논리 회귀 정확도正解率 = 0.8888888888888888
무작위 삼림 정확도正解率 = 1.0
분류
wine-learning.py
X_pred = np.array(Xt)
y_pred = clf.predict(X_pred)
print(y_pred)
결과
했어요 (페치페치)
고려 사항
Reference
이 문제에 관하여(랜덤 포레스트를 써봤어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hiiragi04/items/5416a8d9f70d0112df24텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)