weka: a machine machine learning with wekading/history/470_670_fall_2009/notes/wek… · weka...

97
Department of Computer Science, University of Waikato, New Zealand Eibe Frank WEKA: A Machine Learning Toolkit The Explorer Classification and Regression Clustering Association Rules Attribute Selection Data Visualization The Experimenter The Knowledge Flow GUI Conclusions Machine Learning with WEKA Revised by Pruet Boonma

Upload: others

Post on 22-May-2020

29 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

Department of Computer Science, University of Waikato, New Zealand

Eibe Frank

WEKA: A Machine Learning Toolkit

The Explorer• Classification and

Regression• Clustering• Association Rules• Attribute Selection• Data Visualization

The Experimenter The Knowledge

Flow GUI Conclusions

Machine Learning with WEKA

Revised by Pruet Boonma

Page 2: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 2

WEKA: the bird

Copyright: Martin Kramer ([email protected])

Page 3: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 3

WEKA: the software Machine learning/data mining software written in Java

(distributed under the GNU Public License) Support MS Windows, Mac OS X and GNU/Linux

Used for research, education, and applications Complements “Data Mining” by Witten & Frank Main features:

Comprehensive set of data pre-processing tools, learning algorithms and evaluation methods

Graphical user interfaces (incl. data visualization) Environment for comparing learning algorithms

Page 4: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 4

@relation heart-disease-simplified

@attribute age numeric@attribute sex { female, male}@attribute chest_pain_type { typ_angina, asympt, non_anginal, atyp_angina}@attribute cholesterol numeric@attribute exercise_induced_angina { no, yes}@attribute class { present, not_present}

@data63,male,typ_angina,233,no,not_present67,male,asympt,286,yes,present67,male,asympt,229,yes,present38,female,non_anginal,?,no,not_present...

WEKA only deals with “flat” files

Page 5: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 5

@relation heart-disease-simplified

@attribute age numeric@attribute sex { female, male}@attribute chest_pain_type { typ_angina, asympt, non_anginal, atyp_angina}@attribute cholesterol numeric@attribute exercise_induced_angina { no, yes}@attribute class { present, not_present}

@data63,male,typ_angina,233,no,not_present67,male,asympt,286,yes,present67,male,asympt,229,yes,present38,female,non_anginal,?,no,not_present...

WEKA only deals with “flat” files

Page 6: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 6

Page 7: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 7

Page 8: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 8

Explorer: pre-processing the data Data can be imported from a file in various

formats: ARFF, CSV, C4.5, binary Data can also be read from a URL or from an SQL

database (using JDBC) Pre-processing tools in WEKA are called “filters” WEKA contains filters for:

Discretization, normalization, resampling, attribute selection, transforming and combining attributes, …

Page 9: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 9

Page 10: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 10

Page 11: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 11

Page 12: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 12

Page 13: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 13

Page 14: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 14

Page 15: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 15

Page 16: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 16

Page 17: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 17

Page 18: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 18

Page 19: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 19

Page 20: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 20

Page 21: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 21

Page 22: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 22

Page 23: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 23

Page 24: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 24

Explorer: building “classifiers” Classifiers in WEKA are models for predicting

nominal or numeric quantities Implemented learning schemes include:

Decision trees and lists, instance-based classifiers, support vector machines, multi-layer perceptrons, logistic regression, Bayes’ nets, …

“Meta”-classifiers include: Bagging, boosting, stacking, error-correcting output

codes, locally weighted learning, …

Page 25: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 25

Page 26: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 26

Page 27: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 27

Page 28: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 28

Page 29: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 29

Page 30: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 30

Page 31: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 31

Page 32: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 32

Page 33: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 33

Page 34: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 34

Page 35: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 35

Page 36: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 36

Page 37: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 37

Page 38: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 38

Page 39: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 39

Explorer: clustering data WEKA contains “clusterers” for finding groups of

similar instances in a dataset Implemented schemes are:

k-Means, EM, Cobweb, X-means, FarthestFirst Clusters can be visualized and compared to “true”

clusters (if given) Evaluation based on loglikelihood if clustering

scheme produces a probability distribution

Page 40: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 40

Page 41: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 41

Page 42: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 42

Page 43: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 43

Page 44: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 44

Page 45: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 45

Page 46: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 46

Page 47: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 47

Page 48: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 48

Page 49: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 49

Page 50: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 50

Page 51: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 51

Page 52: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 52

Explorer: finding associations WEKA contains an implementation of the Apriori

algorithm for learning association rules Works only with discrete data

Can identify statistical dependencies between groups of attributes: milk, butter ⇒ bread, eggs (with confidence 0.9 and

support 2000) Apriori can compute all rules that have a given

minimum support and exceed a given confidence

Page 53: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 53

Page 54: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 54

Page 55: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 55

Page 56: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 56

Page 57: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 57

Page 58: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 58

Page 59: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 59

Page 60: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 60

Explorer: attribute selection Panel that can be used to investigate which

(subsets of) attributes are the most predictive ones Attribute selection methods contain two parts:

A search method: best-first, forward selection, random, exhaustive, genetic algorithm, ranking

An evaluation method: correlation-based, wrapper, information gain, chi-squared, …

Very flexible: WEKA allows (almost) arbitrary combinations of these two

Page 61: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 61

Page 62: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 62

Page 63: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 63

Page 64: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 64

Page 65: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 65

Performing experiments Experimenter makes it easy to compare the

performance of different learning schemes For classification and regression problems Results can be written into file or database Evaluation options: cross-validation, learning

curve, hold-out Can also iterate over different parameter settings Significance-testing built in!

Page 66: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 66

Page 67: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 67

Page 68: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 68

Page 69: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 69

Page 70: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 70

Page 71: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 71

Page 72: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 72

Page 73: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 73

Page 74: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 74

Page 75: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 75

Page 76: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 76

Page 77: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 77

Page 78: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 78

The Knowledge Flow GUI New graphical user interface for WEKA Java-Beans-based interface for setting up and

running machine learning experiments Data sources, classifiers, etc. are beans and can

be connected graphically Data “flows” through components: e.g.,

“data source” -> “filter” -> “classifier” -> “evaluator” Layouts can be saved and loaded again later

Page 79: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 79

Page 80: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 80

Page 81: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 81

Page 82: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 82

Page 83: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 83

Page 84: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 84

Page 85: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 85

Page 86: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 86

Page 87: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 87

Page 88: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 88

Page 89: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 89

Page 90: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 90

Page 91: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 91

Page 92: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 92

Page 93: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 93

Page 94: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 94

Page 95: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 95

Page 96: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 96

Page 97: WEKA: A Machine Machine Learning with WEKAding/history/470_670_fall_2009/notes/wek… · WEKA contains an implementation of the Apriori algorithm for learning association rules Works

University of Waikato 97

Conclusion: try it yourself! WEKA is available at

http://www.cs.waikato.ac.nz/ml/weka Also has a list of projects based on WEKA WEKA contributors:

Abdelaziz Mahoui, Alexander K. Seewald, Ashraf M. Kibriya, Bernhard Pfahringer , Brent Martin, Peter Flach, Eibe Frank ,Gabi Schmidberger ,Ian H. Witten , J. Lindgren, Janice Boughton, Jason Wells, Len Trigg, Lucio de Souza Coelho, Malcolm Ware, Mark Hall ,Remco Bouckaert , Richard Kirkby, Shane Butler, Shane Legg, Stuart Inglis, Sylvain Roy, Tony Voyle, Xin Xu, Yong Wang, Zhihai Wang