python 은 Adaboost 프레임 워 크 를 기반 으로 사용자 정의 통합 모델 을 구축 합 니 다 [사용자 정의 기 분류 기 모델]
4254 단어 알고리즘프로 그래 밍 기술기계 학습
class sklearn.ensemble.AdaBoostClassifier(base_estimator=None, n_estimators=50, learning_rate=1.0, algorithm=’SAMME.R’, random_state=None)
그 중에서 우 리 는 'base' 를 볼 수 있다.estimator 는 우리 가 말 하 는 기 분류 기 모델 로 서로 다른 기 분류 기 모델 을 사용 하여 얻 는 효과 도 다 를 것 이다. 왜냐하면 모델 의 구축 원리 가 다 르 기 때문이다.
오늘 은 주로 자신 이 정의 한 기본 분류 기 모델 [여 기 는 sklearn 이 제공 하 는 결정 트 리 모델 을 사용 합 니 다] 을 실현 한 다음 에 Adaboost 프레임 워 크 에 들 어가 모델 의 훈련 계산 등 작업 을 하고 구체 적 으로 다음 과 같이 실현 합 니 다.
#!usr/bin/env python
# encoding:utf-8
from __future__ import division
'''
__Author__:
: Adaboost 【 】
'''
from sklearn.ensemble import AdaBoostClassifier
from sklearn.datasets import make_classification
from sklearn.tree import DecisionTreeClassifier
#
model=DecisionTreeClassifier()
def loadData(flag=True):
'''
'''
X,y=[],[]
if flag:
with open('data.txt') as f:
data_list=[one.strip().split(',') for one in f.readlines() if one]
for i in range(len(data_list)):
one=data_list[i]
y.append(int(one.pop(-1)))
X.append([int(O) for O in one])
else:
X, y = make_classification(n_samples=1000, n_features=18,n_informative=2, n_redundant=0,
random_state=0, shuffle=False)
return X,y
def buildModel(X, y, model):
'''
Adaboost
'''
clf = AdaBoostClassifier(base_estimator=model, n_estimators=100, random_state=0)
clf.fit(X, y)
print clf.feature_importances_
print clf.predict([[23,0,16,0,0,0,0,1,0,0,0,0,0,2,24,0,0,0]])
print clf.score(X, y)
return clf
if __name__=='__main__':
X,y=loadData(flag=True)
buildModel(X, y, model)
X,y=loadData(flag=False)
buildModel(X, y, model)
상기 코드 의 data. txt 데이터 내용 은 다음 과 같 습 니 다.
31,0,24,0,0,0,0,1,0,0,0,0,0,2,32,0,0,0,0
21,0,14,0,0,0,0,5,2,3,0,0,0,2,26,0,0,0,0
23,0,16,1,0,0,0,24,3,10,0,1,0,3,47,0,0,0,0
22,0,15,0,0,0,0,1,0,0,0,0,0,2,23,0,0,0,0
29,0,22,0,0,0,0,1,0,0,0,0,0,2,30,0,0,0,0
24,0,17,0,0,0,0,18,3,9,0,0,0,2,42,1,1,0,0
26,0,19,0,0,0,0,1,0,0,0,0,0,2,27,0,0,0,0
24,0,17,0,0,0,0,32,3,12,0,1,0,3,56,0,0,0,0
26,0,19,1,0,0,0,12,1,11,0,0,1,3,38,0,0,0,0
24,0,17,0,0,0,0,23,3,14,0,0,0,2,47,0,0,0,0
35,0,28,1,0,0,0,12,2,10,0,0,0,2,47,0,0,0,0
23,0,16,0,0,0,0,1,0,0,0,0,0,2,24,0,0,0,0
22,0,15,0,0,0,0,1,0,0,0,0,0,2,23,0,0,0,0
25,0,18,0,0,1,0,1,0,0,0,0,0,2,26,1,0,0,1
24,0,17,0,0,0,0,1,0,0,0,0,0,2,25,0,0,0,1
23,0,16,0,0,0,0,1,0,0,0,0,0,2,24,0,0,0,1
29,0,22,0,0,0,0,1,0,0,0,0,0,2,30,0,0,0,1
27,0,20,0,0,0,0,1,0,0,0,0,0,2,28,0,0,0,1
32,0,25,0,0,0,0,1,0,0,0,0,0,2,33,0,0,0,1
24,0,17,0,0,0,0,1,0,0,0,0,0,2,25,0,0,0,1
26,0,19,0,0,0,0,1,0,0,0,0,0,2,27,0,0,0,1
관심 있 으 면 가 져 가서 놀아 도 돼.
저 희 는 두 가지 서로 다른 데이터 세트 로 딩 형식 을 제공 합 니 다. flag 가 True 일 때 로 컬 데이터 세트 를 불 러 옵 니 다. flag 가 False 일 때 무 작위 로 데이터 세트 를 생 성 합 니 다. 출력 결 과 는 다음 과 같 습 니 다.
[1.57632184e-001 0.00000000e+000 1.86172414e-001 0.00000000e+000
0.00000000e+000 6.66666730e-004 0.00000000e+000 4.41379310e-003
4.66666663e-003 2.36364253e-128 0.00000000e+000 0.00000000e+000
0.00000000e+000 0.00000000e+000 nan 0.00000000e+000
0.00000000e+000 0.00000000e+000]
[1]
0.8571428571428571
[0.04933692 0.86155671 0.00374627 0.00760245 0.0039491 0.00200001
0.00576473 0.00580435 0.00363638 0.00875166 0. 0.00962266
0.00395545 0.00640003 0.0095751 0.01061542 0.00768277 0. ]
[1]
1.0
[Finished in 1.3s]
간단 한 실천 입 니 다. 만약 에 다른 기본 분류 기 모델 을 사용 하고 싶다 면 예 를 들 어 베 이 루스 모델, 벡터 모델 을 지원 한다 면 모두 시도 해 볼 수 있 습 니 다. 그러나 제 가 베 이 루스 모델 을 사용 하려 고 할 때 Adaboost 프레임 워 크 는 잘못 보 고 된 것 입 니 다. 관련 속성 이 없다 고 합 니 다.이것 은 제 가 호출 한 문제 인지 sklearn 이 실 현 했 을 때 대응 하 는 모델 이 해당 하 는 방법 을 제공 하지 않 아서 생 긴 것 인지 모 르 겠 습 니 다. 나중에 시간 이 있 으 면 계속 연구 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Codility Lesson3】FrogJmpA small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.