Untitled
unknown
plain_text
2 years ago
3.3 kB
1
Indexable
Never
""" 1. Wczytać dataset diabetis (https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_ diabetes.html, https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset). """ import matplotlib.pyplot as plt import numpy as np from sklearn import datasets, linear_model from sklearn.metrics import mean_squared_error, r2_score from sklearn.model_selection import train_test_split diabetes_X, diabetes_y = datasets.load_diabetes(return_X_y=True) """ 2. Wybrać ze wczytanego zbioru danych kolumny (zmienne) pod indeksami 0, 2, 3. Zgodnie z dokumentacją są to zmienne: age age in years, bmi body mass index, bp average blood pressure. """ diabetes_Xage = diabetes_X[:, np.newaxis, 0] #age diabetes_Xbmi = diabetes_X[:, np.newaxis, 2] #bmi diabetes_Xbp = diabetes_X[:, np.newaxis, 3] #bp diabetes_X = diabetes_X[:,[0,2,3]] """ 3. Narysować 3 wykresy punktowe, pokazujące jak zmienna zależna (y) zależy od zmiennych niezależnych (3 poprzednio wybrane kolumny z X). """ #age plt.scatter(diabetes_Xage, diabetes_y) plt.title('AGE') plt.xlabel('X - AGE') plt.ylabel('Y') plt.show() #bmi plt.scatter(diabetes_Xbmi, diabetes_y) plt.title('BMI') plt.xlabel('X - BMI') plt.ylabel('Y') plt.show() #bp plt.scatter(diabetes_Xbp, diabetes_y) plt.title('BP') plt.xlabel('X - BP') plt.ylabel('Y') plt.show() """ 4. Podzielić zbiór danych na dane uczące i testujące w proporcji 80% danych uczących i 20% danych testowych. """ # split 80 uczące 20 testowych diabetes_X_train, diabetes_X_test, diabetes_y_train, diabetes_y_test = train_test_split( diabetes_X, diabetes_y, train_size=0.2, random_state=0) """ 5. Utworzyć obiekt regresji liniowej i nauczyć go na danych uczących (https://scikit-learn.org/stable/ modules/generated/sklearn.linear_model.LinearRegression.html). """ #obiekt regr = linear_model.LinearRegression() regr.fit(diabetes_X_train, diabetes_y_train) """ 6. Wykonać predykcje na danych testowych i obliczyć błąd średniokwadratowy pomiędzy rzeczywistymi danymi a predykcją (https://scikit-learn.org/stable/modules/generated/sklearn.metrics.mean_squared_error. html). """ # Make predictions using the testing set diabetes_y_pred = regr.predict(diabetes_X_test) #coefficients print("Coefficients: \n", regr.coef_) #mean squared error print("Mean squared error: %.2f" % mean_squared_error(diabetes_y_test, diabetes_y_pred)) #coefficient of determination print("Coefficient of determination: %.2f" % r2_score(diabetes_y_test, diabetes_y_pred)) """ 7. Sprawdzić, czy dodanie innych zmiennych poza tymi wybranymi może polepszyć jakość regresji (zmniejszyć błąd na danych testowych). W celu tego proszę powtórzyć w pętli punkty 2-6 wybierając poza zmiennymi wskazanymi w punkcie 2 jedną z pozostałych zmiennych (inną w każdej iteracji). """ """ 8. Proszę wykonać raport w postaci PDF. W raporcie proszę umieścić wyniki poszczególnych etapów wykonywania zadania, jak to wygenerowane wykresy, otrzymane wartości błędów na zbiorze testowym, informacje o tym czy inne zmienne poprawiają czy pogarszają jakość regresji, wyniki błędu średniokwadrotowego dla innych zestawów zmiennych. """