Wprowadzenie. Metody bayesowskie Drzewa klasyfikacyjne i lasy losowe Sieci neuronowe SVM. Klasyfikacja. Wstęp

Podobne dokumenty
Klasyfikator. ˆp(k x) = 1 K. I(ρ(x,x i ) ρ(x,x (K) ))I(y i =k),k =1,...,L,

Wprowadzenie. Data Science Uczenie się pod nadzorem

Regresyjne metody łączenia klasyfikatorów

ALGORYTM RANDOM FOREST

Drzewa klasyfikacyjne Lasy losowe. Wprowadzenie

Agnieszka Nowak Brzezińska Wykład III

Eksploracja Danych. wykład 4. Sebastian Zając. 10 maja 2017 WMP.SNŚ UKSW. Sebastian Zając (WMP.SNŚ UKSW) Eksploracja Danych 10 maja / 18

Hierarchiczna analiza skupień

4.1. Wprowadzenie Podstawowe definicje Algorytm określania wartości parametrów w regresji logistycznej...74

Klasyfikatory: k-nn oraz naiwny Bayesa. Agnieszka Nowak Brzezińska Wykład IV

PODSTAWY STATYSTYCZNEJ ANALIZY DANYCH

Agnieszka Nowak Brzezińska Wykład III

5. Analiza dyskryminacyjna: FLD, LDA, QDA

ESTYMACJA BŁĘDU PREDYKCJI I JEJ ZASTOSOWANIA

Wprowadzenie. { 1, jeżeli ˆr(x) > 0, pozatym. Regresja liniowa Regresja logistyczne Jądrowe estymatory gęstości. Metody regresyjne

Rozpoznawanie wzorców. Dr inż. Michał Bereta p. 144 / 10, Instytut Informatyki


Elementy modelowania matematycznego

Elementy statystyki wielowymiarowej

KLASYFIKACJA. Słownik języka polskiego

Metody Sztucznej Inteligencji II

Agnieszka Nowak Brzezińska

Analiza danych. TEMATYKA PRZEDMIOTU

Pobieranie prób i rozkład z próby

Prawdopodobieństwo czerwonych = = 0.33

8. Drzewa decyzyjne, bagging, boosting i lasy losowe

Klasyfikacja LDA + walidacja

Metody klasyfikacji danych - część 1 p.1/24

ALGORYTMY SZTUCZNEJ INTELIGENCJI

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

Metody klasyfikacji i rozpoznawania wzorców. Najważniejsze rodzaje klasyfikatorów

Własności statystyczne regresji liniowej. Wykład 4

Analiza składowych głównych. Wprowadzenie

Klasyfikacja obiektów Drzewa decyzyjne (drzewa klasyfikacyjne)

SAS wybrane elementy. DATA MINING Część III. Seweryn Kowalski 2006

Testowanie modeli predykcyjnych

Wprowadzenie do klasyfikacji

Mail: Pokój 214, II piętro

Metody systemowe i decyzyjne w informatyce

Podstawy sztucznej inteligencji

STATYSTYKA

Metody probabilistyczne

Na A (n) rozważamy rozkład P (n) , który na zbiorach postaci A 1... A n określa się jako P (n) (X n, A (n), P (n)

PODSTAWY STATYSTYCZNEGO MODELOWANIA DANYCH. Wykład 6 Drzewa klasyfikacyjne - wprowadzenie. Reguły podziału i reguły przycinania drzew.

STATYSTYKA MATEMATYCZNA WYKŁAD stycznia 2010

7. Estymacja parametrów w modelu normalnym( ) Pojęcie losowej próby prostej

Prof. Stanisław Jankowski

Sieć przesyłająca żetony CP (counter propagation)

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

1 Klasyfikator bayesowski

Testowanie hipotez statystycznych

Drzewa klasyfikacyjne Lasy losowe. Wprowadzenie

METODY INŻYNIERII WIEDZY

Data Mining Wykład 6. Naiwny klasyfikator Bayes a Maszyna wektorów nośnych (SVM) Naiwny klasyfikator Bayesa.

1.7. Eksploracja danych: pogłębianie, przeszukiwanie i wyławianie

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

Algorytmy klasteryzacji jako metoda dyskretyzacji w algorytmach eksploracji danych. Łukasz Przybyłek, Jakub Niwa Studenckie Koło Naukowe BRAINS

Wstęp do sieci neuronowych, wykład 07 Uczenie nienadzorowane cd.

Statystyki: miary opisujące rozkład! np. : średnia, frakcja (procent), odchylenie standardowe, wariancja, mediana itd.

Spis treści. Przedmowa... XI. Rozdział 1. Pomiar: jednostki miar Rozdział 2. Pomiar: liczby i obliczenia liczbowe... 16

Metody systemowe i decyzyjne w informatyce

SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

Rozpoznawanie obrazów

Systemy uczące się Lab 4

Wybór modelu i ocena jakości klasyfikatora

Ważne rozkłady i twierdzenia c.d.

Inteligentne systemy przeciw atakom sieciowym

2. Empiryczna wersja klasyfikatora bayesowskiego

Estymacja parametrów w modelu normalnym

Weryfikacja hipotez statystycznych, parametryczne testy istotności w populacji

Weryfikacja hipotez statystycznych

8. Neuron z ciągłą funkcją aktywacji.

Statystyki: miary opisujące rozkład! np. : średnia, frakcja (procent), odchylenie standardowe, wariancja, mediana itd.

Zagadnienie klasyfikacji (dyskryminacji)

Stanisław Cichocki Natalia Nehrebecka. Zajęcia 8

Mikroekonometria 6. Mikołaj Czajkowski Wiktor Budziński

Zastosowania sieci neuronowych

Statystyka w pracy badawczej nauczyciela

Wykład 1 Próba i populacja. Estymacja parametrów z wykorzystaniem metody bootstrap

Spis treści 3 SPIS TREŚCI

Elementy inteligencji obliczeniowej

Matematyka z el. statystyki, # 6 /Geodezja i kartografia II/

Statystyka od podstaw Janina Jóźwiak, Jarosław Podgórski

Statystyka i opracowanie danych Podstawy wnioskowania statystycznego. Prawo wielkich liczb. Centralne twierdzenie graniczne. Estymacja i estymatory

Konkurs z przedmiotu eksploracja i analiza danych: problem regresji i klasyfikacji

Metoda największej wiarygodności

Wnioskowanie bayesowskie

Rozpoznawanie obrazów

166 Wstęp do statystyki matematycznej

Komputerowa Analiza Danych Doświadczalnych

Stan dotychczasowy. OCENA KLASYFIKACJI w diagnostyce. Metody 6/10/2013. Weryfikacja. Testowanie skuteczności metody uczenia Weryfikacja prosta

Jeśli powyższy opis nie jest zrozumiały należy powtórzyć zagadnienie standaryzacji zanim przejdzie się dalej!

Wydział Matematyki. Testy zgodności. Wykład 03

PODSTAWY STATYSTYCZNEJ ANALIZY DANYCH. Wykład 5 Kwadratowa analiza dyskryminacyjna QDA. Metody klasyfikacji oparte na rozkładach prawdopodobieństwa.

Testowanie hipotez statystycznych

Programowanie liniowe

Mikroekonometria 5. Mikołaj Czajkowski Wiktor Budziński

Testowanie hipotez statystycznych

Ontogeniczne sieci neuronowe. O sieciach zmieniających swoją strukturę

Statystyka matematyczna. Wykład IV. Weryfikacja hipotez statystycznych

Transkrypt:

Wstęp Problem uczenia się pod nadzorem, inaczej nazywany uczeniem się z nauczycielem lub uczeniem się na przykładach, sprowadza się do określenia przydziału obiektów opisanych za pomocą wartości wielu cech(atrybutów) do jednej z wcześniej ustalonych klas. Klasom przypisane są kody zwane etykietami. Pierwszym elementem systemu uczącego się pod nadzorem jest próba ucząca składająca sięznniezależnychparzmiennych (X 1,Y 1 ),...,(X n,y n ),gdzie X i jestwektoremzaobserwowanychcech(atrybutów)naobiekcie pochodzącymzklasyoetykiecie Y i, i =1,...,n.

Wstęp Drugim elementem jest funkcja określona na przestrzeni wartości cech o wartościach w zbiorze etykiet, zwana klasyfikatorem, skonstruowana na bazie próby uczącej. Trzecim elementem jest ocena skuteczności działania klasyfikatora(ocena wartości błędu klasyfikacji lub trafności klasyfikacji).

Pojęcia wstępne Załóżmy, że dysponujemy K niezależnymi, prostymi próbami losowymioliczebnościach,odpowiednio, n 1,n 2,...,n K,pobranymi z K różnych populacji(klas, grup): (X 1,Y 1 ),...,(X n,y n ), gdzie X i = (X i1,x i2,...,x ip ) X R p jest i-tąobserwacją, natomiast Y i jestetykietąpopulacji,doktórejtaobserwacja należy, przyjmującą wartości w pewnym skończonym zbiorze Y, i =1,2,...,n, n = n 1 +n 2 + +n K. Próbę L n = {(X 1,Y 1 ),...,(X n,y n )}nazywaćbędziemypróbą uczącą. Interesuje nas problem predykcji etykiety Y na podstawie wektora cech X. Problem ten nazywany jest klasyfikacją, dyskryminacją, uczeniem się pod nadzorem lub rozpoznawaniem wzorców.

Pojęcia wstępne Reguła klasyfikacyjna, zwana krótko klasyfikatorem, jest funkcją d : X Y.Gdyobserwujemynowywektor X,toprognozą etykiety Y jest d(x).

Przykład Na poniższym rysunku pokazanych jest 20 punktów. Wektor cech X = (X 1,X 2 ) jestdwuwymiarowyaetykieta Y Y = {1,0}. Wartościcechy Xdla Y =0reprezentowanesąprzeztrójkąty,a dla Y = 1 przez kwadraty. Linia przerywana reprezentuje liniową regułę klasyfikacyjną postaci { 1, jeżeli a+b1 x d(x) = 1 +b 2 x 2 >0, 0, pozatym. Każdy punkt leżący poniżej tej linii klasyfikowany jest do grupy o etykiecie 0 oraz każdy punkt leżący powyżej tej linii klasyfikowany jestdogrupyoetykiecie1.

Przykład

Błąd klasyfikacji Proceskonstruowaniaklasyfikatora ˆdnazywanyjestuczeniemsię, uczeniem pod nadzorem lub uczeniem się z nauczycielem. Jakość klasyfikatora ˆdmierzonajestzapomocąwarunkowego prawdopodobieństwa błędu e(ˆd) =P(ˆd(X) Y L n ), gdzieparalosowa (X,Y)jestniezależnaodpróbyuczącej L n. Wielkość e(ˆd)nazywamyaktualnympoziomembłęduklasyfikatora ˆd. Ocenę błędu klasyfikacji będziemy nazywać błędem klasyfikacji.

Błąd klasyfikacji W najlepszej sytuacji jesteśmy wtedy, gdy dysponujemy m-elementowąpróbątestową T m niezależnąodpróbyuczącej L n. W takiej sytuacji za błąd klasyfikacji przyjmujemy procent obserwacji pochodzących z próby testowej błędnie zaklasyfikowanych za pomocą reguły klasyfikacyjnej skonstruowanej na podstawie próby uczącej. W przypadku gdy nie dysponujemy niezależną próbą testową, do estymacji używamy jedynie próby uczącej.

Błąd klasyfikacji Naturalną oceną aktualnego poziomu błędu jest wtedy wartość estymatora ponownego podstawienia(resubstytucji). Wartość tego estymatorauzyskujesiępoprzezklasyfikacjęregułą ˆdtychsamych obserwacji, które służyły do jej konstrukcji. Oznacza to, iż próba ucząca jest zarazem próbą testową. Estymator ten jest więc obciążonymestymatoremwielkości e(ˆd)izaniżajejrzeczywistą wartość.

Błąd klasyfikacji Jednym ze sposobów redukcji obciążenia powyższego estymatora przy zastosowaniu próby uczącej jako jednocześnie próby testowej jest tzw. metoda podziału próby na dwa podzbiory: próbę uczącą i próbę testową. Wówczas klasyfikator konstruuje się za pomocą pierwszego z nich, drugi natomiast służy do konstrukcji estymatora. Wykorzystanie tylko części informacji w celu uzyskania reguły klasyfikacyjnej prowadzi jednak często do zawyżenia wartości estymatora błędu. Rozwiązaniem tego problemu jest metoda sprawdzania krzyżowego. W takiej sytuacji usuwamy kolejne obserwacji z próby uczącej i konstruujemy klasyfikator w oparciu o taką pomniejszoną o jeden próbę uczącą. Usunięty element jest następnie klasyfikowany za pomocą tak wyznaczonej metody. Frakcja błędnie zaklasyfikowanych w taki sposób obserwacji jest uznawana za błąd klasyfikacji.

Błąd klasyfikacji Procedura ta w każdym z n etapów jest w rzeczywistości metodą podziału próby dla przypadku jednoelementowego zbioru testowego. Każda obserwacja próby jest użyta do konstrukcji klasyfikatora ˆd.Każdaznichjestteż(dokładniejedenraz) elementem testującym. Estymator ten, choć granicznie nieobciążony, ma większą wariancję. Ponadto wymaga on konstrukcji n klasyfikatorów, co dla dużych n oznacza znaczący wzrost obliczeń. Rozwiązaniem pośrednim jest metoda rotacyjna, zwana też v-krokową metodą sprawdzania krzyżowego. Polega ona nalosowympodzialepróbyna vpodzbiorów,przyczym v 1 z nich tworzy próbę uczącą, natomiast pozostały próbę testową. Procedurę tę powtarza się v razy, dla każdego podzbioru rozpatrywanego kolejno jako zbiór testowy.

Błąd klasyfikacji Metoda ta daje mniejsze obciążenie błędu niż metoda podziału próby i wymaga mniejszej liczby obliczeń w porównaniu ze sprawdzaniem krzyżowym(jeśli tylko v < n). W zagadnieniu estymacji aktualnego poziomu błędu zalecane jest v = 10. Obecnie najczęściej wykorzystywana jest metoda bootstrap polegająca na wielokrotnym(zaleca się co najmniej 50) losowym podziale zbioru na zbiór uczący i testowy, przy czym losowanie odbywa się ze zwracaniem. Uzyskany zbiór uczący musi mieć taką samą liczebność jak cały badany zbiór. Następnie uczymy metodę na tak otrzymanym zbiorze i testujemy na tych obserwacjach, które nie zostały wylosowane.

Metoda najbliższego sąsiada Metoda najbliższego sąsiada jest jedną z najpopularniejszych metod klasyfikacji. Idea jej działania jest prosta i intuicyjna. Nowy obiekt otrzymuje klasę obiektu, który jest najbliżej(w uogólnieniu tej metody, czyli metodzie k najbliższych sąsiadów, klasę która występuje najczęściej pośród jego k sąsiadów). W tym miejscu należy podkreślić, że do oceny odległości może zostać wykorzystana bardzo szeroka klasa funkcji. Jest to metoda nieparametryczna, nie wymaga zatem żadnych założeń co do rozkładów danych w klasach. Idea metody może zostać dobrze zwizualizowana za pomocą diagramów Voronoia. Diagram Voronoia dzieli płaszczyznę na rozłączne, wypukłe komórki, które wewnątrz posiadają tylko jeden punkt z danych wejściowych. Krawędź komórki jest w równej odległości od dwóch sąsiednich punktów, tzn. że linia oddzielająca dwa punkty leży w połowie odległościmiędzynimi. T.Górecki Analizadanych(W10-11)

Metoda najbliższego sąsiada Łącząc punkty, których komórki mają wspólną krawędź otrzymujemy triangulację Delaunaya. Metoda ta ma bardzo wysoką efektywność, gdy liczba obserwacji rośnie nieskończenie. Jednakże w wielu sytuacjach praktycznych liczba dostępnych obserwacji jest niewielka, co często prowadzi do drastycznego spadku efektywności metody najbliższych sąsiadów. Metoda najbliższych sąsiadów nie wymaga estymacji warunkowych funkcji gęstości, jest więc zdecydowanie prostsza w implementacji. Okazuje się, że nawet jeśli mamy metodę, która jest zgodna(tzn. asymptotycznie daje optymalny błąd bez względu na rozkłady cech w klasach), np. taką jak metoda najbliższych sąsiadów, jej efektywność na zbiorze skończonym może być zupełnie niewystarczająca.

Metoda najbliższego sąsiada W praktyce wartość parametru K(liczba sąsiadów) dobiera się eksperymentalnie, stosując bądź to próbę testową bądź metodę sprawdzania krzyżowego. Metoda 1 NN ma tendencję do bycia zbyt czułą na pewną losowość(błędne sklasyfikowanie lub błędny pomiar cechy) ukrytą w danych. Ponieważ pewne cechy, których wartości są duże mogą niwelować wpływ innych dlatego niezbędna jest normalizacja wartości cech. Dla zmiennych ciągłych można użyć: normalizacja min-max standaryzacja x = x min(x) max(x) min(x), x = x x s(x)

Metoda najbliższego sąsiada Normalizacja jest niezbędna, ponieważ przeprowadza zmienne o różnych jednostkach w wielkości niemianowane i porównywalne. Metoda najbliższego sąsiada jest odporna na występowanie obserwacji odstających oraz zakłóceń. Niestety jej główną wadą jest długi czas obliczeń, który rośnie bardzo szybko wraz ze wzrostem liczby obserwacji. Nie istnieje również możliwość wykorzystywania zmiennych jakościowych, a wyniki klasyfikacji mocno zależą od wybranej miary odległości.

Metoda najbliższego sąsiada w R Tworzenie diagramów Voronoia umożliwia np. pakiet PBSmapping. Metoda najbliższego sąsiada została zaimplementowana w wielu pakietach np. w pakiecie klar oraz pakiecie class i ipred. Do oceny błędu wieloma metodami (między innymi bootstrap oraz sprawdzanie krzyżowe) można użyć funkcji errorest z pakietu ipred.

Przy założeniu, że dane we wszystkich klasach mają wielowymiarowy rozkład normalny najbardziej odpowiednie do klasyfikacji są metody bayesowskie. W przypadku gdy macierze kowariancji we wszystkich klasach są takie same powinniśmy użyć metody zwanej liniową analizą dyskryminacyjną LDA(w przypadku gdy prawdopodobieństwa a priori przynależności do klas sąrówneimamydoczynieniajedyniezdwomaklasami,metodata nazywana jest dyskryminacją liniową Fishera), w takiej sytuacji powierzchnie rozgraniczające są hiperpłaszczyznami. W przeciwnym razie, tzn. gdy macierze kowariancyjne różnią się, należy użyć kwadratowej analizy dyskryminacyjnej QDA, która jako powierzchnie rozdzielające daje hiperpowierzchnie stopnia drugiego. W praktyce, metod tych używa się bardzo często bez sprawdzania normalności rozkładu, a tym bardziej równości macierzy kowariancji. LDA, QDA

Naiwny klasyfikator bayesowski Jest to prosty klasyfikator probabilistyczny oparty na założeniu, że cechy opisujące obiekty są wzajemnie niezależne. Założenie to nie ma raczej nic wspólnego z rzeczywistością i właśnie z tego powodu metoda nazywana jest naiwną. Pomimo tego klasyfikator ten często działa lepiej niż można się po nim było spodziewać (zwłaszcza jeśli jest dużo cech). W praktyce estymuje się gęstość każdej cechy w każdej klasie, a następnie bada iloczyn takich gęstości dla każdej klasy. Obserwacja klasyfikowana jest do klasy, dla której ten iloczyn jest największy.

Naiwny klasyfikator bayesowski w R Naiwny klasyfikator bayesowski został zaimplementowany w pakietach e1071 oraz klar. Tutaj omówimy drugie rozwiązanie ze względu na jego większe możliwości. Odpowiednia funkcja to NaiveBayes.

Drzewa klasyfikacyjne Drzewa klasyfikacyjne rodzina metod statystycznych z zakresu eksploracji danych, dokonujących, za pomocą diagramów zwanych drzewami, klasyfikacji danych. Drzewo składa się z korzenia oraz gałęzi prowadzących z korzenia do kolejnych węzłów. W każdym węźle sprawdzany jest pewien warunek dotyczący danej obserwacji, i na jego podstawie wybierana jest jedna z gałęzi prowadząca do kolejnego węzła piętro niżej. Na dole znajdują się liście, w których odczytujemy do której z klas należy przypisać daną obserwację. danej obserwacji polega na przejściu od korzenia do liścia i przypisaniu do tej obserwacji klasy zapisanej w danym liściu. Przy tworzeniu drzewa należy unikać zbytniego rozbudowania struktury drzewa, ponieważ wzrasta złożoność opartego na nim modelu, co w konsekwencji prowadzi do trudności w jego interpretacji oraz utraty właściwości generalizacji.

Drzewa klasyfikacyjne Z tego względu najczęściej wpierw konstruuje się drzewa maksymalnie złożone, a następnie stosuje technikę zwaną przycinaniem, która zmniejsza drzewo.

Drzewa klasyfikacyjne w R Odpowiednie funkcje znajdują się w pakiecie tree oraz w pakiecie rpart. Do konstrukcji drzewa wykorzystuje się funkcję tree, przycinanie wykonuje funkcja prune.tree.

Lasy losowe Jest to metoda łączenia wielu drzew klasyfikacyjnych. Wpierw losujemy K prób bootstrapowych, dla każdej z nich konstruujemy drzewo klasyfikacyjne w taki sposób, że w każdym węźle losujemy m(mniej niż liczba wszystkich cech) cech, które będą uczestniczyły w wyborze najlepszego podziału. Drzewa budowane są bez przycinania. Ostatecznie obserwacja klasyfikowana jest poprzez metodą głosowania. Jedynym parametrem metody jest współczynnik m, który powinien być znacznie mniejszy od wymiaru danych p.

LasylosowewR Do konstrukcji lasów wykorzystywane jest polecenie randomforest zpakietuotejsamejnazwie.

Sieć neuronowa to połączona grupa sztucznych komórek nerwowych, która wykorzystuje model matematyczny w celu przetwarzania informacji. Istotną cechą sieci jest możliwość uczenia się, czyli modyfikowania parametrów charakteryzujących poszczególne neurony w taki sposób, by zwiększyć efektywność sieci. Pomysł tej techniki wywodzi się z badań bioelektrycznych sieci utworzonych w mózgu przez neurony i synapsy. W modelu sieci neuronowej węzły(zwane neuronami) są połączone między sobą tworząc sieć węzłów stąd określenie sieć neuronowa. Sztuczne sieci neuronowe składają się najczęściej z trzech warstw: warstwa wejściowa, ukryta i wyjściowa.

w R W przypadku sieci neuronowych najlepiej skorzystać z pakietu nnet. Pakiet ten udostępnia nam funkcję nnet, która pozwala konstruować sieci z jedną warstwą ukrytą. Inny godny polecenia pakiet to neural.

Metoda wektorów nośnych Metoda wektorów nośnych jest metodą, która polega na transformacji obserwacji, które nie są liniowo separowalne(czyli nie da się ich podzielić na klasy hiperpłaszczyznami), do wyższej przestrzeni, w której być może staną się już separowalne liniowo.

Metoda wektorów nośnych w R Metoda została zaimplementowana w pakiecie e1071. Pakiet ten zawiera funkcję svm, która jest funkcją wykorzystującą bibliotekę libsvm napisaną w C++, która uważana jest za najlepszą implementację metody. Inne implementacje można znaleźć w pakietach klar, kernlab oraz svmpath.

Wybór optymalnych wartości parametrów procedur klasyfikacyjnych Jak już wiemy wiele procedur klasyfikacyjnych zależy od pewnych parametrów. Ich wybór nie jest trywialny. W pakiecie e1071 można znaleźć szereg funkcji, które pozwalają zautomatyzować proces wyszukiwania optymalnych wartości parametrów metod klasyfikacyjnych. Są to funkcje: tune.svm, tune.nnet, tune.rpart, tune.randomforest, tune.knn. Wybór optymalnych parametrów odbywa się poprzez minimalizację oceny błędu klasyfikacji (dopuszczalne są różne metody od bootstrapu poprzez sprawdzanie krzyżowe aż do podziału zbioru na testowy i uczący), wybór konfiguracji tuningu wykonuje się za pomocą funkcji tune.control. Dodatkowo istnieje możliwość wizualizacji procesu doboru parametrów za pomocą przeciążonej funkcji plot.