200 likes | 502 Views
RPTree 코드분석. 2013.01.21( 월 ) Dblab 김태훈. contents. learn.c RPtree generateUniform 예제 learnRPtree.c Projection 계산 RPNode 구조도 learnRPnode : alpha 가중치 계산 조건 비교 Alpha, Median 계산 Work to do Future work. learn.c – RPtree 로드. initTreeMem () : RPTREE 초기화
E N D
RPTree코드분석 2013.01.21(월) Dblab김태훈
contents • learn.c • RPtree • generateUniform예제 • learnRPtree.c • Projection 계산 • RPNode구조도 • learnRPnode : alpha 가중치 계산 조건 비교 • Alpha, Median 계산 • Work to do • Future work
learn.c – RPtree로드 • initTreeMem() :RPTREE 초기화 • If { … } : 사용자 입력 컴포넌트 일 때, 트리 구조 생성 • 트리 파일 존재시 로드 • readTree(FILE*, RPTREE*): tree 파일에서 트리 로드
learnRPtree.c - rptree초기화 • 20개의 분할기준선의 3개의 벡터를 생성
generateUniform예제2 • 분석 데이터 삽입 예제 • Data 3 개 • VECT_LEN = 2 output
learn.c – 열기 옵션 판독 • datafile : 바이너리, 혹은 아스키코드 열기 모드
learn.c – data 읽기 X length y length z length • 파일에서 트리 데이터 로드 • data_pt[i]: datafile에서 읽은 값들이 순차적으로 저장
learn.c – data 읽기 (계속) learnRPTree(RPTree*, data_pt) • RPTree* : 초기화된 트리 • Data_pt : 읽은 x,y,z data
learnRPtree.C – learnRPTree데이터 계산(벡터 내적 합) 계속 • void learnRPTree(RPTree* tree, t_data* data)] • 벡터 내적 총합 data Proj_data[j] data[i] tree->projection[j][i]
learnRPtree.C – learnRPTree계속RPTree Node • n = &(tree->nodes[ndx]) : rptree노드
rPTree, RPNode구조(learnRPtree.h) RPTree RPNode … RPNode* 20 (nodes) double 3 (projections) 20 double total 3 double mean doubleproj_sum 20 dproj_sum_sq 20 doublesmallbin [20][3] doublelargebin [20][3] Intproj_to_use Intproj_type double threshold Intnode ndx Int is leaf … … …
learnRPtree.C – learnRPnode계속 • alpha : 학습 가중치 데이터 • If(…) : 학습 가중치 데이터 값을 계산하는 조건
learnRPtree.C– learnRPnode계속2 • n->mean[i] = … : 벡터 평균값 업데이트
Work to do • update_stats(n,proj_data[p],p,alpha) • 이하의 코드 분석중
FUTURE WORK • update_stats(n,proj_data[p],p,alpha) • 많은 data분석시 어려움. 이를 현조형과 계속해서 만남을 통해서 해결