Menu
CoddyTech

Residual

Termasuk bagian Statistik untuk ML dalam perjalanan Machine Learning di Coddy. Pelajaran 35 dari 64.

Bab ini menggambar garis tren melalui data, membuat prediksi dengannya, lalu menilainya. Inilah arah pembahasannya:

Lima pekerjaan memotong rumput sebagai titik, menit dibandingkan dengan luas halaman, dengan garis tren oranye yang melewatinya dan bintang hijau besar pada garis yang memprediksi 50 menit untuk halaman baru seluas 10

Seberapa bagus sebuah garis? Sebuah jasa perawatan taman memperkirakan 4.5 * area + 5 menit per pekerjaan. Setiap jarak merah adalah residual: nilai aktual dikurangi nilai prediksi.

Lima pekerjaan perawatan taman dan garis perkiraannya, dengan jarak vertikal merah dari setiap titik ke garis yang diberi label +6, -5, +3.5, -7, dan +3.5

Kuadratkan, lalu jumlahkan untuk menilai garis tersebut:

area = np.array([4, 6, 9, 12, 15])
minutes = np.array([29, 27, 49, 52, 76])
residuals = minutes - (4.5 * area + 5)
print(residuals)
print((residuals ** 2).sum())

Ini mencetak:

[ 6.  -5.   3.5 -7.   3.5]
134.5

Kuadrat mencegah +6 dan -6 saling meniadakan. Semakin kecil jumlah kuadrat residual ini, semakin baik garisnya. Model belajar dengan mengecilkannya.

challenge icon

Tantangan

Sedang

Sebuah perusahaan pindahan memperkirakan berapa lama waktu yang dibutuhkan untuk pindah berdasarkan jumlah kotaknya. boxes dan hours berisi data delapan kali pindahan sebelumnya, dan program membaca dua garis perkiraan: slope1, intercept1, lalu slope2, intercept2.

  1. Beri skor untuk setiap garis berdasarkan jumlah residual kuadratnya.
  2. Cetak kedua jumlah tersebut, dibulatkan menjadi 2 angka desimal, dan garis yang lebih baik, seperti di bawah.

Untuk garis 0.16 * boxes + 0.8 dan 0.12 * boxes + 2.5:

Line 1 SSR: 0.57
Line 2 SSR: 4.1
Better: line 1

Coba sendiri

import numpy as np

boxes = np.array([10, 18, 25, 32, 40, 47, 55, 60])
hours = np.array([2.5, 3.5, 5.0, 5.5, 7.0, 8.0, 9.5, 10.0])
slope1 = float(input())
intercept1 = float(input())
slope2 = float(input())
intercept2 = float(input())

# Tulis kodemu di bawah ini
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Statistik untuk ML

Latihan sendiri: Compiler Python online