Maison  >  Article  >  développement back-end  >  Exemple de régression pondérée locale en Python

Exemple de régression pondérée locale en Python

WBOY
WBOYoriginal
2023-06-11 19:37:361473parcourir

Exemple de régression pondérée localement en Python

La régression pondérée localement (régression pondérée localement) est une méthode de régression non paramétrique. Par rapport aux méthodes de régression traditionnelles, elle n'utilise pas de paramètres fixes, mais. construire de manière adaptative un modèle basé sur des exemples de données. Cette propriété adaptative rend la régression pondérée localement largement utilisée dans des domaines tels que l'analyse de régression et la prévision de séries chronologiques.

En Python, vous pouvez utiliser l'algorithme de lissage des nuages ​​de points pondérés localement (LOWESS) dans le package scikit-learn pour effectuer une analyse de régression pondérée localement. Dans cet article, nous présenterons comment utiliser Python pour implémenter l'algorithme LOWESS et utiliserons des exemples pour l'analyse de démonstration.

Voici les étapes pour implémenter une régression pondérée localement à l'aide de Python :

  1. Importer les bibliothèques requises

en Python Pour implémenter une régression pondérée locale, utilisez des bibliothèques telles que numpy, pandas, matplotlib.pyplot et sklearn.neighbors.

  1. Préparer les données

Utilisez la bibliothèque pandas pour lire les données et préparer les données pour X et y. Parmi eux, X est la variable indépendante et y est la variable dépendante.

  1. Prétraitement des données

Standardiser les données de X et y. Cela peut éliminer les différences de mesure entre les données, centrer les données près de zéro avant la modélisation et réduire l'impact de l'ampleur.

  1. Fitting model

Utilisez la classe LocallyWeightedRegression dans la bibliothèque sklearn.neighbors pour ajuster le modèle. Lors de l'utilisation de cette méthode, deux hyperparamètres doivent être spécifiés : la bande passante et la fonction de poids. Dans la plupart des cas, des valeurs de bande passante plus petites fournissent des modèles plus précis, mais sont également plus coûteuses en calcul.

  1. Valeur prédite

Utilisez la méthode de prédiction de l'objet local_weighted_regression pour prédire la variable dépendante correspondant à la variable indépendante nouvellement entrée.

Ensuite, regardons un exemple de régression pondérée locale.

Exemple 1 : Prédiction du prix de l'immobilier basée sur les données démographiques

Nous utilisons les données sur le prix de l'immobilier à Boston définies dans la base de données UCI pour l'ajustement et la prédiction du modèle. L'ensemble de données contient 506 échantillons et 13 variables indépendantes, dont le taux de criminalité urbaine par habitant (CRIM), la proportion de logements indépendants avant 1940 après construction (ZN), la concentration d'oxyde nitrique (NOX), le nombre de pièces par habitant (RM) )attendez.

  1. Importer les bibliothèques requises

importer numpy en tant que np
importer des pandas en tant que pd
importer matplotlib.pyplot en tant que plt # 🎜🎜 # De Sklearn.Preprocessing Import StandardCaler # 🎜🎜 # de Sklearn.neighbors Import KneighborsRegressor # 🎜🎜 ## 🎜🎜 ## 🎜🎜 # Préparer les données # 🎜🎜 ## 🎜🎜 # # # # Read Boston House Prix Toaset DataSet TENTASET

data = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data', header = Aucun, sep = 's+ ')

    Spécifiez X et y
  1. X = data.iloc[:, :13].values
y = data.iloc[:, 13 ]. valeurs

Prétraitement des données

Standardiser X et y


sc_X = StandardScaler()

sc_y = StandardScaler()
    X = sc_X.fit_transform(X)
  1. y = sc_y.fit_transform(y.reshape(-1, 1))
will L'ensemble de données est divisé en un ensemble d'entraînement et un ensemble de tests

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) #🎜🎜 #

Ajuster le modèle

Utiliser LocallyWeightedRegression pour ajuster le modèle

lwr = KNeighborsRegressor(n_neighbors=2,weights= 'uniform' )
lwr.fit(X_train, y_train)

  1. Valeur de prédiction

Utilisez la méthode de prédiction de l'objet lwr pour prédire# 🎜🎜#

y_pred = lwr.predict(X_test)

y_pred = sc_y.inverse_transform(y_pred)
y_test = sc_y.inverse_transform(y_test)

    #🎜🎜 #Visualisation des résultats
Comparez les résultats prédits avec les vraies valeurs de l'ensemble de tests sur le même graphique

plt.scatter(X_test[:,5 ], y_test, color='red')

plt.scatter(X_test[:,5], y_pred, color='blue')
plt.xlabel('Nombre de pièces')#🎜🎜 #plt .ylabel('Price')
plt.title('Le prix des maisons')

plt.show()
  1. Selon les graphiques visuels, nous pouvons voir les prédictions du modèle Les résultats sont très proches des valeurs réelles de l'ensemble de test. Cela montre que le modèle de régression pondéré localement peut prédire avec précision les prix des logements.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn