{{ __('Tracer Study - Internal MIF') }}

Total Data Internal

{{ $stats['total_internal'] }}

Auto-Classified

{{ $stats['auto_classified'] }}

Needs Review

{{ $stats['needs_review'] }}

@if(isset($charts) && collect($charts['profile'])->count() > 0)

Sebaran Profil Lulusan

Metode Klasifikasi AI

Aktivitas Pencarian Kerja (Rata-rata)

Masa Tunggu (Bulan)

Top 5 Lokasi Perusahaan

Peta Persebaran

@endif

Upload Data Internal MIF

Unggah file Excel/CSV untuk memproses klasifikasi otomatis menggunakan Machine Learning.

@csrf
Klik untuk memilih file...

Re-Training Model AI

Latih ulang model menggunakan data manual yang sudah diverifikasi oleh admin.

@if($ml_metrics) @php $currentF1 = round(($ml_metrics['hold_out_test']['weighted avg']['f1-score'] ?? 0) * 100, 1); $currentAcc = round(($ml_metrics['hold_out_test']['accuracy'] ?? 0) * 100, 1); $retrainedAt = $ml_metrics['retrained_at'] ?? null; @endphp

Model Aktif

{{ $currentF1 }}% F1

Akurasi: {{ $currentAcc }}%

@if($retrainedAt)

Retrained: {{ \Carbon\Carbon::parse($retrainedAt)->diffForHumans() }}

@endif
@else

Metrics tidak tersedia

@endif

Corpus Asli

~248 sampel (training_corpus_3.csv)

Data Manual Override (baru)

{{ $manual_override_count }} sampel @if($manual_override_count > 0) siap ditambahkan @else belum ada koreksi @endif

Mekanisme Keamanan Aktif

Model lama di-backup otomatis sebelum training. Jika model baru lebih buruk atau training gagal, sistem otomatis rollback ke model lama. Threshold minimal peningkatan: +1% weighted F1-score.

Proses berlangsung di background (~30-90 detik). Halaman tidak perlu di-reload.

Tabel Hasil Klasifikasi

@if(request('sort')) @endif @if(request('direction')) @endif @if(request('search')) Reset @endif
PDF
@forelse($internal_data as $row) @empty @endforelse
NIM / Nama @if(request('sort') == 'nim') @endif Pekerjaan @if(request('sort') == 'job_text_raw') @endif Profil Prediksi @if(request('sort') == 'predicted_profile') @endif Status @if(request('sort') == 'status') @endif Aksi
{{ $row->nim }}
{{ $row->internalRaw->nama_lengkap ?? '-' }}
{{ $row->job_text_raw }}
@php $colorClass = match($row->predicted_profile) { 'Programmer' => 'bg-emerald-100 text-emerald-700 border-emerald-200', 'Tidak Diketahui' => 'bg-slate-100 text-slate-500 border-slate-200', 'Non-IT' => 'bg-slate-100 text-slate-700 border-slate-200', default => 'bg-blue-100 text-blue-700 border-blue-200', }; @endphp
{{ $row->predicted_profile ?? '-' }} @if($row->confidence_score) {{ number_format($row->confidence_score*100, 1) }}% @endif
@if($row->status === 'auto_classified') Auto @elseif($row->status === 'manual_override') Manual @else Review @endif
@csrf @method('DELETE')

Belum ada data

Silakan upload data tracer study internal.

@if($internal_data->hasPages())
{{ $internal_data->links() }}
@endif
@if(isset($charts) && collect($charts['profile'])->count() > 0) @endif {{-- Alpine.js: Re-training Panel Component --}}