package Ġcom . ml . projects . ga us si ann b _ iris Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . core . widget . add TextChanged Listener Ċ import Ġcom . google . android . material . text field . TextInput EditText Ċ import Ġcom . ml . projects . ga us si ann b _ iris . data . DataFrame Ċ import Ġcom . ml . projects . ga us si ann b _ iris . data . Feature Column Ċ Ċ // ĠWelcome Ċ // ĠIf Ġyou 've Ġstarted Ġfrom Ġthe ĠMainActivity , Ġyou Ġmay Ġview Ġeach Ġclass Ġin Ġthe Ġfollowing Ġorder , Ċ // Ġ 1 . ĠFeature Column . kt Ċ // Ġ 2 . ĠDataFrame . kt Ċ // Ġ 3 . ĠGaussian NB . kt Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġ// ĠView Ġelements Ġto Ġtake Ġthe Ġinputs Ġand Ġdisplay Ġit Ġto Ġthe Ġuser . ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsample Input EditText Ġ: ĠText Input EditText ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġoutput TextView Ġ: ĠTextView ĊĊĠĠĠ Ġ// ĠDataFrame Ġobject Ġwhich Ġwill Ġhold Ġthe Ġdata . ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdata Frame : ĠDataFrame ĊĊĠĠĠ Ġ// ĠGaussian NB Ġobject Ġto Ġperform Ġthe Ġcalculations Ġand Ġreturn ĊĠĠĠ Ġ// Ġthe Ġpredictions . ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġgaussian NB : ĠGaussian NB ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( ĠR . layout . activity _ main Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠInitialize Ġthe ĠView Ġelements ĊĠĠĠĠĠĠĠ Ġsample Input EditText Ġ= ĠfindViewById ( ĠR . id . sample _ input _ edit Text Ġ) ĊĠĠĠĠĠĠĠ Ġoutput TextView Ġ= ĠfindViewById ( ĠR . id . output _ textView Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠInitialize Ġthe ĠDataFrame Ġobject . ĊĠĠĠĠĠĠĠ Ġ// ĠThe Ġfile Ġir is _ ds . csv Ġis Ġkept Ġin Ġthe Ġassets Ġfolder Ġof Ġthe Ġapp . ĊĠĠĠĠĠĠĠ Ġdata Frame Ġ= ĠDataFrame ( Ġthis Ġ, Ġ" iris _ ds . csv " Ġ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠCalled Ġwhen Ġpredict _ button Ġis Ġclicked . Ġ( ĠSee Ġactivity _ main . xml Ġ). ĊĠĠĠ Ġfun Ġon Predict Button Click ( Ġview Ġ: ĠView Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSplit Ġthe ĠString Ġby Ġ"," ĊĠĠĠĠĠĠĠ Ġvar Ġstr X Ġ= Ġsample Input EditText . text . toString (). split ( Ġ"," Ġ). to Typed Array () ĊĠĠĠĠĠĠĠ Ġstr X Ġ= Ġstr X . map { Ġxi Ġ-> Ġxi . trim () Ġ}. to Typed Array () ĊĠĠĠĠĠĠĠ Ġ// ĠConvert Ġthe ĠString [] Ġto Ġfloat [] ĊĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġdata Frame . convert String Array To Float Array ( Ġstr X Ġ) ĊĠĠĠĠĠĠĠ Ġ// ĠPredict Ġthe Ġclass Ġwith ĠGaussian NB . ĊĠĠĠĠĠĠĠ Ġgaussian NB . predict ( Ġx Ġ, Ġresult Callback Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠCalled Ġwhen Ġload _ data _ button Ġis Ġclicked . Ġ( ĠSee Ġactivity _ main . xml Ġ). ĊĠĠĠ Ġfun ĠonLoad CSV Button Click ( Ġview Ġ: ĠView Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠLoad Ġthe ĠCSV Ġfile . ĊĠĠĠĠĠĠĠ Ġdata Frame . read CSV ( Ġread CSV Callback Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠCalled Ġwhen Ġthe ĠCSV Ġdata Ġhas Ġbeen Ġprocessed . ĊĠĠĠ Ġprivate Ġval Ġread CSV Callback Ġ= Ġobject Ġ: ĠDataFrame . Read CSV Callback { ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon CSV Processed ( processed Data : ĠArray < Feature Column >, Ġlabels : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNotify Ġthe Ġuser Ġthat Ġthe Ġdata Ġhas Ġbeen Ġprocessed . ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( Ġthis @ MainActivity Ġ, Ġ" CSV ĠFile Ġloaded ." Ġ, ĠToast . LENGTH _ LONG Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠInitialize Ġthe ĠGaussian NB Ġobject . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWe Ġinitialize Ġit Ġhere Ġbecause Ġit Ġaccesses Ġsome Ġvariables Ġin Ġdata Frame Ġwhich Ġare Ġonly Ġinitialized ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen Ġthis Ġmethod Ġ( Ġon CSV Processed Ġ) Ġis Ġcalled . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgaussian NB Ġ= ĠGaussian NB ( Ġdata Frame Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠCalled Ġwhen Ġall Ġcalculations Ġare Ġdone Ġand Ġthe Ġresults Ġcould Ġbe Ġprocessed ĊĠĠĠ Ġ// Ġfurther . ĊĠĠĠ Ġprivate Ġval Ġresult Callback Ġ= Ġobject Ġ: ĠGaussian NB . Result Callback Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Prediction Result ( label : ĠString , Ġprobs : ĠFloat Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDisplay Ġthe Ġoutput Ġto Ġthe Ġuser Ġvia Ġoutput TextView . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput TextView . text Ġ= Ġ" Label Ġ: Ġ$ label Ġ\ n ĠProb Ġ: Ġ${ probs . content ToString () }" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ }