Qualité de l’ajustement
Fait partie de la section Statistiques pour le ML du Journey Machine Learning de Coddy. Leçon 39 sur 64.
Chaque nuage de points a une droite, il faut donc évaluer les ajustements. Un marin a relevé les vitesses du vent et du bateau : comparons la somme des carrés des écarts de la droite à celle de la moyenne, la prédiction la plus paresseuse :
R au carré est la part de cette dispersion que la droite explique :
wind = np.array([6, 8, 10, 12, 15, 18])
boat = np.array([3.1, 4.4, 4.9, 6.2, 6.8, 8.1])
slope, intercept = np.polyfit(wind, boat, 1)
predicted = slope * wind + intercept
ss_res = ((boat - predicted) ** 2).sum() # l’ajustement : 0.35
ss_tot = ((boat - boat.mean()) ** 2).sum() # la moyenne : 16.23
print(np.round(1 - ss_res / ss_tot, 3))Cela affiche 0.979 : la droite explique 98 % de la dispersion des vitesses. 1 correspond à une droite parfaite, 0 ne vaut pas mieux que la moyenne.
C’est la note standard d’un modèle qui prédit des nombres. Pour une droite ajustée, elle est égale au carré de r.
Défi
MoyenUne ferme de champignons a enregistré 16 lits de culture dans mushrooms.csv. Le programme lit un nom de colonne, et le code de départ ajuste la droite qui prédit harvest_kg à partir de celle-ci. Son rapport a besoin de r_squared, qui est encore vide.
- Complète
r_squared(y, predicted)pour qu’elle renvoie le R². - À la fin, affiche la vérification : la corrélation de
xety, au carré, multipliée par 100 et arrondie à 1 décimale.
Pour une autre ferme et l’entrée humidity :
humidity explains 27.0% of the harvest variation
Check with r squared: 27.0%Essayez vous-même
import numpy as np
import pandas as pd
# Renvoie le R carré des prédictions pour y
def r_squared(y, predicted):
# Écrivez votre code ici
return 0
beds = pd.read_csv("mushrooms.csv")
column = input()
# Ne modifiez pas les lignes ci-dessous
x = beds[column]
y = beds["harvest_kg"]
slope, intercept = np.polyfit(x, y, 1)
predicted = slope * x + intercept
r2 = r_squared(y, predicted)
print(f"{column} explains {np.round(r2 * 100, 1)}% of the harvest variation")
# Écrivez votre code ci-dessous
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Statistiques pour le ML
1Centre et dispersion
Moyenne et médianePercentiles et quartilesVariance et écart-typeÉchantillon ou population ?La valeur la plus fréquenteRécapitulatif : délais de livraison4Échantillons et populations
Population et échantillonLes moyennes d’échantillon varientLa distribution d’échantillonnageDes échantillons plus grands, moins de bruitRécapitulatif : sonder une ville7Droites de tendance
RésidusAjustement par les moindres carrésTracer la droite d’ajustementPrédire avec une droiteQualité de l’ajustementRécapitulatif : heures de pratique2Distributions
Histogrammes de densitéFormes des donnéesLa courbe normaleLa règle des 68-95-99,7Scores zRécapitulatif : autonomie de la batterie5Valeurs aberrantes
Diagrammes en boîteLa règle de l’écart interquartileLa règle du score ZTraiter les valeurs aberrantesRécapitulatif : anomalies des capteurs3Les probabilités par simulation
La probabilité comme fréquenceLa loi des grands nombresSommes de désEspérance mathématiqueProbabilité conditionnelleRécapitulatif : les chances au stand de dés6Relations
Lire des nuages de pointsCorrélationMatrice de corrélationCartes thermiques de corrélationCorrélation n’est pas causalitéRécapitulatif : glace et soleil9Mise à l’échelle des caractéristiques
Pourquoi mettre les caractéristiques à l’échelleMise à l’échelle Min-MaxStandardisationStandardScalerRécapitulatif : partenaires d’escaladeEntraînez-vous par vous-même : Compilateur Python en ligne