package Ġl gp . core . environment . dataset Ċ Ċ /** Ċ Ġ* ĠA Ġfeature Ġof Ġa Ġsample Ġin Ġsome Ġdata Ġset . Ċ Ġ* Ċ Ġ* Ġ@ param ĠT Data ĠThe Ġtype Ġof Ġthe Ġfeature . Ċ Ġ* Ġ@ property Ġname ĠThe Ġname Ġof Ġthe Ġthis Ġfeature Ġin Ġthe Ġdata Ġset . Ċ Ġ* Ġ@ property Ġvalue ĠThe Ġvalue Ġof Ġthis Ġfeature Ġin Ġthe Ġdata Ġset . Ċ Ġ*/ Ċ open Ġclass ĠFeature < out ĠT Data >( val Ġname : ĠString , Ġval Ġvalue : ĠT Data ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Feature ( name Ġ= Ġ${ this . name }, Ġvalue Ġ= Ġ${ this . value })" ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠNom inal Feature < out ĠT Data >( name : ĠString , Ġvalue : ĠT Data , Ġval Ġlabels : ĠList < String >) ĊĠĠĠ Ġ: ĠFeature < T Data >( name , Ġvalue ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Nominal Feature ( name Ġ= Ġ${ this . name }, Ġvalue Ġ= Ġ${ this . value }, Ġlabels Ġ= Ġ${ this . labels })" ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠA Ġsample Ġin Ġa Ġ[ Dataset ] Ġmade Ġup Ġof Ġa Ġcollection Ġof Ġ[ Feature ] s . Ċ Ġ* Ċ Ġ* Ġ@ param ĠT Feature ĠThe Ġtype Ġof Ġthe Ġ[ Feature ] s Ġthat Ġmake Ġup Ġthis Ġsample . Ċ Ġ* Ġ@ property Ġfeatures ĠA Ġcollection Ġof Ġ[ Feature ] s Ġthat Ġthis Ġsample Ġrepresents . Ċ Ġ* Ġ@ see Ġ[ Dataset ] Ċ Ġ*/ Ċ class ĠSample < out ĠT Data >( val Ġfeatures : ĠList < Feature < T Data >>) Ġ{ ĊĊĠĠĠ Ġfun Ġfeature ( name : ĠString ): ĠFeature < T Data > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . features . first Ġ{ Ġfeature Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfeature . name Ġ== Ġname ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Sample ( features Ġ= Ġ${ this . features })" ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠA Ġtarget Ġoutput Ġin Ġa Ġ[ Dataset ]. Ċ Ġ* Ċ Ġ* ĠAn Ġinterface Ġis Ġprovided Ġto Ġc ater Ġfor Ġscenarios Ġwith Ġdiffer ing Ġoutput Ġrequirements Ġ( e . g . Ġsingle Ġvs Ġmultiple ). Ċ Ġ* Ċ Ġ* Ġ@ param ĠT Data ĠThe Ġtype Ġof Ġthe Ġvalue ( s ) Ġthis Ġtarget Ġrepresents . Ċ Ġ*/ Ċ interface ĠTarget < out ĠT Data > Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHow Ġmany Ġoutput Ġvalues Ġthis Ġtarget Ġrepresents . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġsize : ĠInt Ċ } Ċ Ċ /** Ċ Ġ* ĠA Ġcollection Ġof Ġbuilt - in Ġ[ Target ] Ġimplementations Ċ Ġ*/ Ċ object ĠTarget s Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRepresents Ġa Ġtarget Ġwith Ġa Ġsingle Ġoutput Ġvalue . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ property Ġvalue ĠThe Ġoutput Ġvalue Ġthis Ġtarget Ġrepresents . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠSingle < T Data >( val Ġvalue : ĠT Data ) Ġ: ĠTarget < T Data > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġsize Ġ= Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRepresents Ġa Ġtarget Ġwith Ġmultiple Ġoutput Ġvalues . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ property Ġvalues ĠThe Ġoutput Ġvalues Ġthis Ġtarget Ġrepresents . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠMultiple < T Data >( val Ġvalues : ĠList < T Data >): ĠTarget < T Data > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġsize Ġ= Ġvalues . size ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠInvalid NumberOf Samples Exception ( message : ĠString ) Ġ: ĠException ( message ) Ċ Ċ /** Ċ Ġ* ĠA Ġbasic Ġdata Ġset Ġcomposed Ġof Ġa Ġvector Ġof Ġinput Ġ[ Sample ] s Ġand Ġa Ġcollection Ġof Ġoutput Ġ[ Target ] s . Ċ Ġ* Ċ Ġ* Ġ** NOTE :** ĠThe Ġtype Ġof Ġthe Ġinputs Ġand Ġoutputs Ġis Ġconstr ained Ġto Ġbe Ġthe Ġsame . Ċ Ġ* Ċ Ġ* Ġ@ param ĠT Data ĠThe Ġtype Ġof Ġthe Ġfeatures Ġin Ġthe Ġinput Ġvector Ġand Ġthe Ġtype Ġof Ġthe Ġoutputs . Ċ Ġ* Ġ@ property Ġinputs ĠVector Ġof Ġinputs Ġwith Ġthe Ġshape Ġ[ num Samples , Ġnum Features ] Ċ Ġ* Ġ@ property Ġoutputs ĠVector Ġthat Ġdescribes Ġtarget Ġvalues Ġfor Ġeach Ġsample Ġin Ġthe Ġinput Ġvector , Ġwith Ġshape Ġ[ num Samples ]. Ċ Ġ*/ Ċ class ĠDataset < out ĠT Data >( ĊĠĠĠ Ġval Ġinputs : ĠList < Sample < T Data >>, ĊĠĠĠ Ġval Ġoutputs : ĠList < Target < T Data >> Ċ ) Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġnumber Ġof Ġfeatures Ġof Ġeach Ġsample Ġin Ġthe Ġinput Ġdata Ġset . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ returns ĠThe Ġnumber Ġof Ġfeatures Ġof Ġeach Ġsample . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġnum Features (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGener ally Ġwon 't Ġbe Ġtrue , Ġbut Ġwe 'll Ġprotect Ġagainst Ġthe Ġexception Ġanyway . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . inputs . isEmpty () Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> Ġthis . inputs . first (). features . size ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġnumber Ġof Ġsamples Ġin Ġthe Ġinput Ġdata Ġset . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ returns ĠThe Ġnumber Ġof Ġsamples Ġin Ġthis Ġdata Ġset . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġnum Samples (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . inputs . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġnumber Ġof Ġoutputs Ġin Ġthe Ġdata Ġset , Ġwhich Ġis Ġalways Ġone Ġfor Ġthis Ġtype Ġof Ġdata Ġset . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ returns ĠThe Ġnumber Ġof Ġoutputs Ġin Ġthis Ġdata Ġset . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġnum Targets (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . outputs . isEmpty () Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> Ġthis . outputs . first (). size ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }