#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Thu Jan 23 09:59:50 2020 @author: tanu """ #%% # LIDO ML: tensorflow #%% from sklearn.datasets import load_boston from sklearn.pipeline import Pipeline from sklearn.preprocessing import MinMaxScaler import jrpytensorflow import tensorflow as tf import matplotlib.pyplot as plt boston = load_boston() #X, y = boston.data, boston.target from sklearn.model_selection import train_test_split from sklearn.datasets import load_digits digits = load_digits() X_train, X_test, y_train, y_test = train_test_split( X, y, test_size = 0.2 ) #%% # P1 X,y = jrpytensorflow.datasets.load_circles() plt.figure() plt.scatter(X[:,0], X[:,1], c = y, edgecolor = 'black') #2) from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split( X, y, test_size = 0.2 ) preprocess = Pipeline( steps = [ ('rescale', MinMaxScaler()) ] ) preprocess.fit(X_train) X_train = preprocess.transform(X_train) X_test = preprocess.transform(X_test) import tensorflow as tf logModel = tf.keras.models.Sequential([ tf.keras.layers.Dense(1, activation = 'sigmoid') ]) logModel.compile(optimizer = 'sgd', loss = 'binary_crossentropy') history = logModel.fit(X, y, epochs = 100) logModel.summary() #4) predicted probability: for X model(X) # tf object model.predict(X) # array model(X).numpy().ravel() > 0.5 sum(model(X).numpy().ravel() > 0.5) #101 sum( ( model(X).numpy().ravel() > 0.5) == y) #97 # 4*) predicted probability: for X_test logModel.compile(optimizer = 'sgd', loss = 'binary_crossentropy') history = logModel.fit(X_test, y_test, epochs = 100) logModel.summary() model(X_test) # tf object model.predict(X_test) # array model(X_test).numpy().ravel() > 0.5 sum( model(X_test).numpy().ravel() > 0.5) #22 sum((model(X_test).numpy().ravel() > 0.5) == y_test) #21 #%% # Practical 2 #%% from tensorflow import keras def smallModel(): model = tf.keras.models.Sequential([ tf.keras.layers.Dense(20, activation = 'relu'), tf.keras.layers.Dense(10, activation = 'relu'), tf.keras.layers.Dense(1, activation = 'softmax') ]) model.compile(optimizer = 'sgd', loss = 'binary_crossentropy', metrics = ['accuracy']) return model model = smallModel() model.summary()