close_btn
조회 수 3168 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
################랜덤포레스트 과제################
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_breast_cancer
import numpy as np
import pandas as pd
from sklearn import metrics
load_breast_cancer()
cancer = load_breast_cancer()
dat = pd.concat([pd.DataFrame(cancer.data, columns= cancer.feature_names),
        pd.DataFrame(cancer.target, columns=["is_cancer"])], axis=1)
 
test, train = train_test_split(dat, test_size = 0.7, random_state = 930904)
test.shape
# (170, 31)
train.shape
# (399, 31)
 
def my_rf(train, test, n_estimators, max_features):
    result = []
    col = train.columns
    compare = np.zeros((n_estimators, len(test))) # 트리들의 예측값들을 모아 vote(이자 비교)하기 위해 만든 임시 array
    for i in range(n_estimators):
        select = np.random.choice(col[:-1], max_features, replace=False)
        # 비복원 추출로 변수 뽑기
        tree = DecisionTreeClassifier()
        tree.fit(X=train[select], y=train[col[-1]])
        pred = tree.predict(X=test[select])
        # n_estimators 수만큼 트리모델(일부 변수만을 뽑은)을 생성하고 test set의 모든 관측치들에 대해 예측
        compare[i] = pred
    compare = pd.DataFrame(compare) # 밑의 코드를 실행하기 위해서는 데이터프레임화를 할 필요가 있습니다.
    for j in range(len(test)):
        result.append(compare[j].value_counts().index[0])
        # 각 트리들의 예측값들을 데이터프레임의 열마다 vote해 다수결 결과값을 예측결과 리스트에 저장
    return(result)
 
my_pred = my_rf(train, test, 106)
my_pred
#[1.0, 0.0, 0.0, 1.0, 1.0,  0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, ..., 0.0]
print(metrics.classification_report(my_pred, test['is_cancer']))
#             precision    recall  f1-score   support
 
#        0.0       0.85      0.98      0.91        59
#        1.0       0.99      0.91      0.95       111
 
#avg / total       0.94      0.94      0.94       170
 
#RandomForestClassifier 모듈과 거의 흡사한 결과를 보입니다!
cs

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 R 소스 공유 게시판 이용 관련 공지사항 1 DataMarket 2014.05.21 26876
110 투빅스 8&9기 8주차 LDA - 9기 전민규 file 전민규 2018.03.25 3104
109 투빅스 8&9기 8주차 SVM - 9기 최영제 file :) 2018.03.25 2800
108 투빅스 8&9기 8주차 과제 PCA -9기 신용재 file 신용재 2018.03.23 2767
107 투빅스 8&9기 7주차 과제 논문 요약 - 9기 배현주 file 배현주 2018.03.16 2774
106 투빅스 8&9기 7주차 과제 논문 요약 - 8기 김강열 file 김강열 2018.03.15 2898
105 투빅스 8&9기 7주차 과제 - 9기 김수지 file 김수지 2018.03.15 2811
104 투빅스 8&9기 6주차 과제 - 9기 서석현 file 스르륵 2018.03.08 2763
103 투빅스 8&9기 설 알고리즘 과제 - 9기 백광제 file 백광제 2018.02.25 3257
102 투빅스 8&9기 설 분석 과제 16' 뉴욕 택시 운행시간 예측 - 9기 최영제 :) 2018.02.24 3552
» 투빅스 8&9기 4주차 과제 Random Forest -9기 이잉걸 잉걸 2018.02.15 3168
100 투빅스 8&9기 4주차 과제 Naive Bayes Classification -9기 서석현 file 스르륵 2018.02.14 3083
99 투빅스 8&9기 3주차 과제 K-Nearest Neighbor, K-means 구현 -9기 신용재 1 신용재 2018.02.08 3601
98 투빅스 8&9기 3주차 과제 연관성 분석 - 9기 최영제 :) 2018.02.08 3372
97 투빅스 8&9기 2주차 과제 Gradient Descent, Softmax, Cross Entropy - 9기 서석현 file 스르륵 2018.02.02 3137
96 투빅스 8&9기 2주차 과제 회귀분석/로지스틱 - 9기 최영제 file :) 2018.02.02 3638
95 투빅스 8&9기 2주차 과제 Gradient Descent, Softmax, Cross Entropy - 9기 김명진 file kimji 2018.02.02 3024
94 투빅스 8&9기 1주차 과제 R 9기-신용재 file 신용재 2018.01.25 3406
93 투빅스 8&9기 1주차 과제 R 알고리즘 - 9기 서석현 file 스르륵 2018.01.25 3471
92 투빅스 7&8기 9주차 과제 Neural Network를 이용한 MNIST 분류 - 8기 김민정 민정e 2017.09.23 4823
91 투빅스 7&8기 9주차 과제 Neural Network를 이용한 MNIST 분류 - 8기 최서현 최서현 2017.09.22 4676
Board Pagination ‹ Prev 1 2 3 4 5 6 ... 7 Next ›
/ 7

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5