Home / Artikel / ML.NET Series: Menggunakan Feature Contribution Calculator untuk menjelaskan feature pada model

ML.NET Series: Menggunakan Feature Contribution Calculator untuk menjelaskan feature pada model

Hi Makers,

Apa kabar ? Semoga sehat-sehat dan tetap semangat ya. 

Saat membuat model kita perlu memahami seberapa besar kontribusi feature yang ada pada model terhadap hasil prediksi, untuk menjelaskan hal ini ML.NET memiliki fitur model explanability API.

Jadi API ini akan menjelaskan kontribusi masing-masing feature untuk setiap baris data yang kita uji. Untuk menggunakannya rekan-rekan hanya perlu menambahkan baris ini saat menulis kode untuk training pipeline:

//add feature contribution calc
var trainedModel = trainingPipeline.Fit(trainingDataView);
var fccModel = trainedModel.Append(mlContext.Transforms
.CalculateFeatureContribution(trainedModel.LastTransformer)
.Fit(trainingPipeline.Fit(trainingDataView).Transform(trainingDataView)));

Kemudian pada class prediksi rekan-rekan tambahkan property:

public class ModelOutputWithContribution : ModelOutput
{
public float[] FeatureContributions { get; set; }

public List<FeatureContribution> GetFeatureContributions(DataViewSchema dataview)
{
//base.PrintToConsole();
VBuffer<ReadOnlyMemory<char>> slots = default;
dataview.GetColumnOrNull("Features").Value.GetSlotNames(ref slots);
var featureNames = slots.DenseValues().ToArray();
List<FeatureContribution> featureList = new List<FeatureContribution>();
for (int i = 0; i < featureNames.Count(); i++)
{
string featureName = featureNames[i].ToString();

featureList.Add(new FeatureContribution(featureName, FeatureContributions[i]));
}

return featureList;

}
}

Pada property “FeatureContributions” akan disimpan nilai kontribusi dari masing-masing feature saat kita melakukan evaluasi / inference pada model. Lalu kita bisa visualisasikan dengan chart untuk memudahkan kita dalam menganalisa.

Source codenya dapat teman-teman pelajari dari link ini. Jangan lupa target aplikasi harus di ubah ke x64, saat ini belum support arsitektur cpu lain.

Semoga manfaat, teruslah berkarya.

Salam Makers ;D

117 total views, 4 views today

About Muhammad Ibnu Fadhil

Penulis kode, pedagang aplikasi perkantoran, implementator integrasi sistem, memiliki UKM yaitu gravicode.com, mendirikan komunitas kecil gadgeteer Indonesia, mendedikasikan diri untuk membangun produk dan jasa yang bermanfaat untuk ummat terutama di bidang teknologi informasi.

Check Also

VisionSkills Series: Membuat custom VisionSkill untuk mengonversi gambar menjadi art

Hi Rekan Makers, Apa kabar? kali ini kita akan melanjutkan series tentang VisionSkills. Jika rekan-rekan …