scikit-learn / keras basic implementation...

23
Scikit-learn / Keras Basic Implementation Tutorial 2019.03.20 Jacky, Chun-Yen Yeh 1

Upload: others

Post on 23-Sep-2020

40 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

Scikit-learn / Keras Basic Implementation Tutorial

2019.03.20Jacky, Chun-Yen Yeh

!1

Page 2: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

Goal

• Introduce Scikit-learn, Keras Python library(framework).

• Go through the workflow of the classification problem.

• Lead you to step-by-step implement classification problem with Scikit-learn / Keras.

!2

Page 3: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

Overview

!3

Artificial IntelligenceMachine Learning

Deep LearningDecision Tree

Nearest NegihborsLogistic Regression CNN

RNNTf-idf

Data Engineering . . .

.

.

.

Page 4: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

Overview

!4

Artificial IntelligenceMachine Learning

Deep Learningdecision tree

Nearest NegihborsLogistic Regression CNN

RNNTf-idf

Data Engineering . . .

.

.

.

Scikit-learn

Keras

Page 5: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

Scikit-learn

!5

Page 6: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

What’s Scikit-learn?

!6

• A free software machine learning library for the Python language.

• Simple and efficient tools for data mining and data analysis.

• Derived from SciPy, which is a Python-based ecosystem of open-source software for mathematics, science, and engineering. (e.g. Numpy, pandas, jupyter notebook)

Page 7: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

Why’s Scikit-learn• Commitment to documentation and usability.

• Covers most machine-learning tasks: classification, regression, clustering, dimension reduction, data preprocessing, etc…

!7

Page 8: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

!8

Supervised Classification

Page 9: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

!9

Species Features

Iris Dataset

Page 10: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

Split the Dataset

!10

Training Data Testing Data

ALL Data

Typically 75% : 25% = 3 : 1

Page 11: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

!11

Training Data

Supervised Workflow

Model

Prediction

Evaluation

Training phase

Inference phase

Training LabelTraining Labels

Testing Data

Testing Labels

Model Construction

Page 12: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

!12

Training Data

Supervised Workflow

Model

Prediction

Evaluation

Training phase

Inference phase

Training LabelTraining Labels

Testing Data

Testing Labels

Model Construction

classifier.fit(X_train, y_train)

classifier = LogisticRegression()

classifier.predict(X_test)

classifier.score(X_test, y_test)

Page 13: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

Exercise time

!13

Please enter this file and click your link. https://reurl.cc/nN28n

Page 14: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

Keras

!14

Page 15: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

What’s Keras?

!15

Keras is a high-level deep learning API, written in Python and capable of running on top of TensorFlow, CNTK, or Theano.

Page 16: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

Why’s Keras?

• Allows for easy and fast prototyping (through user friendliness, modularity, and extensibility).

• Supports both convolutional networks and recurrent networks, as well as combinations of the two.

• Runs seamlessly on CPU and GPU.

• Complete documentation (keras.io)

!16

Page 17: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

Three Steps of Deep Learning

!17

Step1 Define a set of

function

Step2 Goodness of

function

Step3 Pick the best

function

Page 18: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

!18Output

Like lego :)

Page 19: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

!19

Prediction Real Label

loss (difference)

Page 20: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

!20

parameters

choose optimizer (SGD, RMSProp, …)

Page 21: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

!21

Training Data

Supervised Workflow

Model

Prediction

Evaluation

Training phase

Inference phase

Training LabelTraining Labels

Testing Data

Testing Labels

Model Construction

classifier.predict_classes(X_test)

classifier.score(X_test, y_test)

Page 22: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

Exercise time

!22

Please enter this file and click your link. https://reurl.cc/nN28n

Page 23: Scikit-learn / Keras Basic Implementation Tutorialmll.csie.ntu.edu.tw/course/iot_s19/lecture/190320_SklearnKerasTutorial.pdfWhat’s Scikit-learn?!6 • A free software machine learning

!23