Maison > Article > développement back-end > Exemple de régression pondérée locale en Python
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 :
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.
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.
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.
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.
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.
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+ ')
Prétraitement des données
Standardiser X et y
sc_X = StandardScaler()
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)
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)
plt.scatter(X_test[:,5], y_pred, color='blue')
plt.xlabel('Nombre de pièces')#🎜🎜 #plt .ylabel('Price')
plt.title('Le prix des maisons')
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!