<jupyter_start><jupyter_text>Data Science Bootcamp Spis treści:* [Import biblioteki](0)* [Ćwiczenie 231](1)* [Ćwiczenie 232](2)* [Ćwiczenie 233](3)* [Ćwiczenie 234](4)* [Ćwiczenie 235](5)* [Ćwiczenie 236](6)* [Ćwiczenie 237](7)* [Ćwiczenie 238](8)* [Ćwiczenie 239](9)* [Ćwiczenie 240](10)  Import biblioteki<jupyter_code>import numpy as np
import pandas as pd

np.__version__<jupyter_output><empty_output><jupyter_text>Ćwiczenie 231Zaimportuj bibliotekę _tensorflow_ w wersji 2.x.<jupyter_code>%tensorflow_version 2.x
import tensorflow as tf

tf.__version__<jupyter_output><empty_output><jupyter_text>Załaduj dane Fashion MNIST wykorzystując bibliotekę _tensorflow_. Odpowiednio zbiór treningowy (_X\_train_, _y\_train_) oraz testowy (_X\_test_, _y\_test_).<jupyter_code># tutaj wpisz rozwiązanie
from tensorflow.keras.datasets.fashion_mnist import load_data

(X_train, y_train), (X_test, y_test) = load_data()<jupyter_output>Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-labels-idx1-ubyte.gz
32768/29515 [=================================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-images-idx3-ubyte.gz
26427392/26421880 [==============================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-labels-idx1-ubyte.gz
8192/5148 [===============================================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-images-idx3-ubyte.gz
4423680/4422102 [==============================] - 0s 0us/step<jupyter_text>Sprawdź rozmiar zbiorów treningowych i testowych.<jupyter_code># tutaj wpisz rozwiązanie
print(f'X_train shape: {X_train.shape}')
print(f'y_train shape: {y_train.shape}')
print(f'X_test shape: {X_test.shape}')
print(f'y_test shape: {y_test.shape}')<jupyter_output>X_train shape: (60000, 28, 28)
y_train shape: (60000,)
X_test shape: (10000, 28, 28)
y_test shape: (10000,)<jupyter_text>Ćwiczenie 232 Wykorzytując bibliotekę _matplotlib_ wyświetl obraz ze zbioru treningowego z indeksem 40.<jupyter_code># tutaj wpisz rozwiązanie
import matplotlib.pyplot as plt

plt.imshow(X_train[40], cmap='gray_r')<jupyter_output><empty_output><jupyter_text>Wyświetl numer klasy dla próbki ze zbioru treningowego z indeksem 40.<jupyter_code># tutaj wpisz rozwiązanie
y_train[40]<jupyter_output><empty_output><jupyter_text>Ćwiczenie 233Wystandaryzuj dane. Podziel wartości tablic _X\_train_ oraz _X\_test_ przez wartość 255.0.<jupyter_code># tutaj wpisz rozwiązanie
X_train = X_train / 255.
X_test = X_test / 255.<jupyter_output><empty_output><jupyter_text>Ćwiczenie 234Zaimportuj klasę _Sequential_ z biblioteki _tensorflow_ wykorzystując pakiet _keras_.<jupyter_code># tutaj wpisz rozwiązanie
from tensorflow.keras.models import Sequential<jupyter_output><empty_output><jupyter_text>Zaimportuj warstwy _Flatten_ oraz _Dense_ z biblioteki _tensorflow_ wykorzystując pakiet _keras_.<jupyter_code># tutaj wpisz rozwiązanie
from tensorflow.keras.layers import Flatten
from tensorflow.keras.layers import Dense<jupyter_output><empty_output><jupyter_text>Ćwiczenie 235Zbuduj model klasy _Sequential_.<jupyter_code># tutaj wpisz rozwiązanie
model = Sequential() #utworzenie instancji klasy<jupyter_output><empty_output><jupyter_text>Dodaj pierwszą warstwę typu _Flatten_ wraz z odpowiednio dobranym parametrem _input_shape_.<jupyter_code># tutaj wpisz rozwiązanie
model.add(Flatten(input_shape=(28, 28)))<jupyter_output><empty_output><jupyter_text>Dodaj kolejną warstwę typu _Dense_ z 128 neuronami i funkcją aktywacji _relu_.<jupyter_code># tutaj wpisz rozwiązanie
model.add(Dense(units=128, activation='relu'))<jupyter_output><empty_output><jupyter_text>Dodaj ostatnią warstwę typu _Dense_ z 10 neuronami i funkcją aktywacji _softmax_.<jupyter_code># tutaj wpisz rozwiązanie
model.add(Dense(units=10, activation='softmax'))<jupyter_output><empty_output><jupyter_text>Wyświetl podsumowanie modelu.<jupyter_code># tutaj wpisz rozwiązanie
model.summary()<jupyter_output>Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
flatten (Flatten)            (None, 784)               0         
_________________________________________________________________
dense (Dense)                (None, 128)               100480    
_________________________________________________________________
dense_1 (Dense)              (None, 10)                1290      
=================================================================
Total params: 101,770
Trainable params: 101,770
Non-trainable params: 0
_________________________________________________________________<jupyter_text>Ćwiczenie 236Skompiluj model. Wykorzystaj optymalizator _rmsprop_, funkcję straty _sparse_categorical_crossentropy_ oraz metrykę _accuracy_.<jupyter_code># tutaj wpisz rozwiązanie
model.compile(optimizer='rmsprop', loss='sparse_categorical_crossentropy', metrics=['accuracy'])<jupyter_output><empty_output><jupyter_text>Ćwiczenie 237Dopasuj model do danych treningowych, ustawiając 10 epok oraz podział na zbiór walidacyjny wynoszący 0.2.<jupyter_code># tutaj wpisz rozwiązanie
history = model.fit(X_train, y_train, epochs=10, validation_split=0.2)<jupyter_output>Epoch 1/10
1500/1500 [==============================] - 5s 3ms/step - loss: 0.5297 - accuracy: 0.8132 - val_loss: 0.4326 - val_accuracy: 0.8409
Epoch 2/10
1500/1500 [==============================] - 4s 3ms/step - loss: 0.3869 - accuracy: 0.8604 - val_loss: 0.3763 - val_accuracy: 0.8640
Epoch 3/10
1500/1500 [==============================] - 4s 3ms/step - loss: 0.3535 - accuracy: 0.8727 - val_loss: 0.3596 - val_accuracy: 0.8746
Epoch 4/10
1500/1500 [==============================] - 5s 3ms/step - loss: 0.3317 - accuracy: 0.8816 - val_loss: 0.4073 - val_accuracy: 0.8637
Epoch 5/10
1500/1500 [==============================] - 5s 3ms/step - loss: 0.3164 - accuracy: 0.8879 - val_loss: 0.3615 - val_accuracy: 0.8793
Epoch 6/10
1500/1500 [==============================] - 4s 3ms/step - loss: 0.3063 - accuracy: 0.8909 - val_loss: 0.3660 - val_accuracy: 0.8820
Epoch 7/10
1500/1500 [==============================] - 4s 3ms/step - loss: 0.2960 - accuracy: 0.8946 - val_loss: 0.3569 - val_accuracy:[...]<jupyter_text>Ćwiczenie 238Dokonaj predykcji modelu na podstawie danych testowych.<jupyter_code># tutaj wpisz rozwiązanie
y_pred = model.predict_classes(X_test)
y_pred<jupyter_output>/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/sequential.py:455: UserWarning: `model.predict_classes()` is deprecated and will be removed after 2021-01-01. Please use instead:* `np.argmax(model.predict(x), axis=-1)`,   if your model does multi-class classification   (e.g. if it uses a `softmax` last-layer activation).* `(model.predict(x) > 0.5).astype("int32")`,   if your model does binary classification   (e.g. if it uses a `sigmoid` last-layer activation).
  warnings.warn('`model.predict_classes()` is deprecated and '<jupyter_text>Zbuduj macierz konfuzji (macierz pomyłek).<jupyter_code># tutaj wpisz rozwiązanie
from sklearn.metrics import confusion_matrix

cm = confusion_matrix(y_test, y_pred)
cm<jupyter_output><empty_output><jupyter_text>Ćwiczenie 239Zbuduj obiekt pandas _DataFrame_ zawierający predykcje modelu. Nadaj nazwę kolumny _prediction_ i przypisz do zmiennej _results_.<jupyter_code># tutaj wpisz rozwiązanie
results = pd.DataFrame(y_pred, columns=['prediction'])
results<jupyter_output><empty_output><jupyter_text>Przypisz nową kolumnę z wartościami ze zmiennej _y\_test_ i nazwij ją _y\_test_.<jupyter_code># tutaj wpisz rozwiązanie
results['y_test'] = y_test
results<jupyter_output><empty_output><jupyter_text>Przypisz nową kolumnę o nazwie _is_misclassified_, która zwróci 1, gdy próbki zostaną błędnie sklasyfikowane, w przeciwnym przypadku 0.<jupyter_code># tutaj wpisz rozwiązanie
results['is_misclassified'] = (results['prediction'] != results['y_test']).astype('int')
results<jupyter_output><empty_output><jupyter_text>Ćwiczenie 240Zapisz obiekt _results_ do pliku _results.csv_.<jupyter_code># tutaj wpisz rozwiązanie
results.to_csv('results.csv', index=False)
!head results.csv<jupyter_output>prediction,y_test,is_misclassified
9,9,0
2,2,0
1,1,0
1,1,0
6,6,0
1,1,0
4,4,0
6,6,0
5,5,0
{'fraction_non_alphanumeric': 0.15565031982942432, 'fraction_numerical': 0.06064913527600095, 'mean_word_length': 6.703467153284672, 'pattern_counts': {'":': 0, '<': 83, '<?xml version=': 0, '>': 84, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '22', 'dir': 'jupyter-structured-clean-dedup', 'id': '199777', 'license': 'CC0-1.0', 'n_tokens_mistral': 3479, 'n_tokens_neox': 3168, 'n_words': 619, 'path': '03_data_science_podsumowanie/231_240_exercises.ipynb', 'repo_name': 'Sylwiaes/numpy_pandas_cwiczenia', 'size': '8442'}