Esercizio - Eseguire la regressione lineare con Scikit Learn

Completato

Un'altra libreria Python molto diffusa e ampiamente usata nella comunità dei ricercatori è scikit-learn, particolarmente efficiente nella creazione di modelli di Machine Learning per l'estrazione di informazioni dai dati. In questo esercizio si userà la libreria scikit-learn già importata nell'Unità 2 per calcolare una linea di tendenza per i dati sul clima della NASA.

  1. Posizionare il cursore nella cella vuota nella parte inferiore del notebook. Modificare il tipo di cella in Markdown e immettere "Perform linear regression with scikit-learn" (Eseguire la regressione lineare con scikit-learn) come testo.

  2. Aggiungere una cella Code (Codice) e incollare il codice seguente.

    # Pick the Linear Regression model and instantiate it
    model = LinearRegression(fit_intercept=True)
    
    # Fit/build the model
    model.fit(yearsBase[:, np.newaxis], meanBase)
    mean_predicted = model.predict(yearsBase[:, np.newaxis])
    
    # Generate a plot like the one in the previous exercise
    plt.scatter(yearsBase, meanBase)
    plt.plot(yearsBase, mean_predicted)
    plt.title('scatter plot of mean temp difference vs year')
    plt.xlabel('years', fontsize=12)
    plt.ylabel('mean temp difference', fontsize=12)
    plt.show()
    
    print(' y = {0} * x + {1}'.format(model.coef_[0], model.intercept_))
    
  3. Eseguire ora la cella per visualizzare un grafico a dispersione con una linea di regressione.

    Scatter plot with regression line computed by sckikit-learn.

    Grafico a dispersione con linea di regressione calcolata da scikit-learn

L'output è quasi identico a quello dell'esercizio precedente. La differenza è che con scikit-learn le operazioni eseguite automaticamente sono di più. In particolare, non è stato necessario codificare una funzione di linea come si è fatto con NumPy. Questa operazione è stata eseguita dalla funzione LinearRegression di scikit-learn. scikit-learn supporta numerosi tipi diversi di regressione, che risultano utili durante la creazione di sofisticati modelli di Machine Learning.