डेटा का प्रीप्रोसेसिंग

scikit-learn के साथ Supervised Learning

George Boorman

Core Curriculum Manager, DataCamp

scikit-learn आवश्यकताएँ

  • न्यूमेरिक डेटा
  • कोई missing values नहीं

 

  • वास्तविक दुनिया के डेटा के साथ:
    • यह बहुत कम होता है
    • अक्सर पहले डेटा को प्रीप्रोसेस करना पड़ेगा
scikit-learn के साथ Supervised Learning

Categorical features से निपटना

  • scikit-learn डिफॉल्ट रूप से categorical features स्वीकार नहीं करता

  • categorical features को न्यूमेरिक मानों में बदलना होगा

  • इन्हें बाइनरी फीचर्स (dummy variables) में बदलें

    • 0: observation वह category नहीं था

    • 1: observation वही category था

scikit-learn के साथ Supervised Learning

Dummy variables

ग्यारह शैलियों की सूची, जैसे Electronic, Hip-Hop, और Rock

scikit-learn के साथ Supervised Learning

Dummy variables

ग्रिड जिसमें genre मान, कॉलम नाम, और शून्य-एक मान हैं; 1 मतलब गाना वही genre है, 0 मतलब नहीं है

scikit-learn के साथ Supervised Learning

Dummy variables

एक और शून्य का ग्रिड जिसमें Rock genre का कॉलम नहीं है

scikit-learn के साथ Supervised Learning

Python में categorical features

  • scikit-learn: OneHotEncoder()

  • pandas: get_dummies()

scikit-learn के साथ Supervised Learning

Music डेटासेट

  • popularity: टारगेट वैरिएबल
  • genre: categorical फीचर
print(music.info())
     popularity    acousticness    danceability    ...    tempo         valence    genre
0    41.0          0.6440          0.823           ...    102.619000    0.649      Jazz
1    62.0          0.0855          0.686           ...    173.915000    0.636      Rap
2    42.0          0.2390          0.669           ...    145.061000    0.494      Electronic
3    64.0          0.0125          0.522           ...    120.406497    0.595      Rock
4    60.0          0.1210          0.780           ...    96.056000     0.312      Rap
scikit-learn के साथ Supervised Learning

Categorical फीचर के साथ EDA

हर genre के लिए popularity दिखाता बॉक्स प्लॉट

scikit-learn के साथ Supervised Learning

Dummy variables एन्कोड करना

import pandas as pd

music_df = pd.read_csv('music.csv')
music_dummies = pd.get_dummies(music_df["genre"], drop_first=True)
print(music_dummies.head())
     Anime    Blues    Classical    Country    Electronic    Hip-Hop    Jazz    Rap    Rock
0    0        0        0            0          0             0          1       0      0
1    0        0        0            0          0             0          0       1      0
2    0        0        0            0          1             0          0       0      0
3    0        0        0            0          0             0          0       0      1
4    0        0        0            0          0             0          0       1      0
music_dummies = pd.concat([music_df, music_dummies], axis=1)

music_dummies = music_dummies.drop("genre", axis=1)
scikit-learn के साथ Supervised Learning

Dummy variables एन्कोड करना

music_dummies = pd.get_dummies(music_df, drop_first=True)

print(music_dummies.columns)
Index(['popularity', 'acousticness', 'danceability', 'duration_ms', 'energy',
       'instrumentalness', 'liveness', 'loudness', 'speechiness', 'tempo',
       'valence', 'genre_Anime', 'genre_Blues', 'genre_Classical',
       'genre_Country', 'genre_Electronic', 'genre_Hip-Hop', 'genre_Jazz',
       'genre_Rap', 'genre_Rock'],
      dtype='object')
scikit-learn के साथ Supervised Learning

Dummy variables के साथ linear regression

from sklearn.model_selection import cross_val_score, KFold
from sklearn.linear_model import LinearRegression
X = music_dummies.drop("popularity", axis=1).values
y = music_dummies["popularity"].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, 
                                                    random_state=42)

kf = KFold(n_splits=5, shuffle=True, random_state=42)
linreg = LinearRegression()
linreg_cv = cross_val_score(linreg, X_train, y_train, cv=kf, scoring="neg_mean_squared_error")
print(np.sqrt(-linreg_cv))
[8.15792932, 8.63117538, 7.52275279, 8.6205778, 7.91329988]
scikit-learn के साथ Supervised Learning

अभ्यास करते हैं!

scikit-learn के साथ Supervised Learning

Preparing Video For Download...