From f38403f0d661b91ee2a8c0192f8bd01ed4e0c05e Mon Sep 17 00:00:00 2001 From: zulfikar yuniar Date: Wed, 4 Jun 2025 23:11:40 +0700 Subject: [PATCH] revisi algoritma --- .../decision_tree_model.cpython-310.pyc | Bin 3965 -> 4315 bytes Fastapi/decision_tree_model.py | 27 +++++++++++++++--- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/Fastapi/__pycache__/decision_tree_model.cpython-310.pyc b/Fastapi/__pycache__/decision_tree_model.cpython-310.pyc index 2a4b9425182a4de050a967bb25fb399cebb7d751..a89df2357de0a9090ad5a9a8c3f360b34ffd43c2 100644 GIT binary patch delta 1632 zcmZ8h&2Jk;6rY*>@OZtuc4AjaNYap|bz%yrQ36Uy0%;o>TB$8*KuA`KyJX$kj$^yC zn+Bv=MaZdCA*w2w9(zc+^$I8YCvfTAy}%I=;(|CJmGa)YDOGnhzxO$Be)D#Ao*sTO z>NXw6BJljSu~7M`ch?=F_jZqeJTT;E9a41tAwT2y?9ko4G3PaZ5L`K* zu8_j;?xV+tr_a2%TK9x^z1djZ+S*$E3Bc^`0occ5@BuPjH z$Uc2QA{sJD+SI4(tT_;BlGb#vSfy(-NxLyvMZ5SbgSjFHP%uOabsGV>ceJ1!cFdbz zeX|@Cm~b(WR=ZYqJ5vox%|^M@DvQ!u-3x*~hy^-;O(&=r0c8yfA3Ru}!#D#Y*rULf z`ec)cL`d4mmm=SYb$LgcWXL^0?zj)OPQ<9Mg}T(*RBFDyeP3H4RTAki3`uInBDwNe zWJ)tMVcMKDCA~?4xiGQMC6VR;sU^ci&3eFs`5O~m&wdITl>j}C%fvbzAQ5IC*gDur zAjW~11u_XT1%$v3w_{#|B(lK)fi6$59cfD|N2DWDInqZWS2F4LlPE3IQkUi&kqK#_ z1R8qq&C7ejErm8@={3hU?yx8WnHeCFkW^+W^fZZjVtU}a`kZg?fdg#hn+;vr+or+y zAhT^M9=*DNZ^{f%(89Frl|5|+GK(6y`-wVBBdNU~dr5BX~ z^|_g+d3DQd<+6?PR_WF7U*-|D!1e7RC>dM>;MAlX-W+4hq>P$RbyKGnc))tr%hHn)lf;}beHQ1`YHIcvPKN}{i}zE|#3JZLtJ-L7 zh9$qc7K)GXLQs!W{ps5fdS1b$;=KAh^^o3C`}PcQHa1soJ=J`Mq}-t1`+TYjL%fuJb_=a+skvH+2TCfmk=(i$#j0=D5xCTkB3EP XIv!=tHLh6(U$iWq@OZr+PGTt^Z5>P+mjyK>2$`lSh@=Urgz}|;kgQb3WZlMzn>e#$ zqM%v%&>Rp_1<`Qqp}kRYKvlVO;l!olh~dJKzn~JRg7?;;NO&~A_kJ^P-~Q&!TmM>m zUi1$<&mr(z{^gyWXThm|o_=xq+WN2?c_*amMPrd41t+xXNBL;rgq(goVbM(zo;&^V z>FDd%uWq&KqJH~ef9vSzXzPOym*+R5gl$HF!0D5MtQNI-$JyRaH8$GA3 zzqKc6QU7d@4ZU=>e@pf((Y(DQLth)2jbg9xNvGM0YEm>BwOESIw(N*TIM_3zx~%KZ zGi5rVzst1so4j=MG9(#>8Lt9x%4vZyW>ZG(=ca8^hn@%DrFj^fahhk~f#uAh=8H(* z?(Z;zK{Pyz<493q&TG8J)U(zXkC0B;M zTCQqi1w=*vkeje)(4E!4vmyOgu0TK5dACHDbkV$^*W8g{7IRavgocR){i!<@90G|= z08}TI^%Hk)64O8c#-*nS4Y2@z)oJdxJF*rvx21S5eM{LJ2|BQKmcgguhFQ^h5U`f1!5F)$^0PnWI^o;F;)*~twas9u# zz7MpkYr)F&9By1gcpKqegn5KA0G<$i{LcGNuj$`{@|pr3<9~|}%>hk7?Z3r3#$XY` zLe*~9_oI58W~*BJojdJgff{?}ox0o+28O0D&Y^czZ{&wArdNRXE%2iHg threshold] + #pengecekan jika node diteruskan akan menghasilkan leaf node kelas 1=1 dan 0=1 + if is_one_per_class(le_data) or is_one_per_class(gt_data): + return { + "type": "leaf", + "prediction": get_majority_class(counts), + "class_counts": counts + } + return { "type": "node", "attribute": best_attribute, "threshold": threshold, "class_counts": counts, - "left": build_tree_structure(le_data), - "right": build_tree_structure(gt_data) + "left": build_tree_structure(le_data, new_used_attributes), + "right": build_tree_structure(gt_data, new_used_attributes) } def predict(tree, input_data):