12
WERKZEUGE DER MUSTERERKENNUNG UND DES MASCHINELLEN LERNENS Vorlesung im Sommersemester 2020 Prof. E.G. Schukat-Talamazzini Stand: 14. Februar 2020 Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot Teil I Einführung in die Sprache Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot Softwarewerkzeuge und ihre Benutzerschnittstelle Graphikorientiert (GUI) Menüauswahl Formulareintrag Drag & Drop Sprachorientiert (PLI) Formale Anwendungssprache Interpreterprogramm BS/PS-Interface Befehlsorientiert (CLI) Fixiertes Kommandoensemble Aufrufparameter und -syntax Skriptunterstützung Programmorientiert (API) Unterprogrammbibliothek Klassenbibliothek (wie PLI) erweiterbar Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot Programmiersprachen für wissenschaftliches Rechnen

WERKZEUGEDERMUSTERERKENNUNGUND Teil I … · 2020-02-14 · Waskann’R’?SprachumfangGrafikInstallation’R’-Sitzung ?plot Datenmatrizen,EinkanalbilderII WertedurchGrenzen WertedurchFarben

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: WERKZEUGEDERMUSTERERKENNUNGUND Teil I … · 2020-02-14 · Waskann’R’?SprachumfangGrafikInstallation’R’-Sitzung ?plot Datenmatrizen,EinkanalbilderII WertedurchGrenzen WertedurchFarben

WERKZEUGE DER MUSTERERKENNUNG UNDDES MASCHINELLEN LERNENS

Vorlesung im Sommersemester 2020

Prof. E.G. Schukat-Talamazzini

Stand: 14. Februar 2020

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Teil I

Einführung in die Sprache

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Softwarewerkzeugeund ihre Benutzerschnittstelle

Graphikorientiert (GUI)MenüauswahlFormulareintragDrag & Drop

Sprachorientiert (PLI)Formale AnwendungsspracheInterpreterprogrammBS/PS-Interface

Befehlsorientiert (CLI)Fixiertes KommandoensembleAufrufparameter und -syntaxSkriptunterstützung

Programmorientiert (API)UnterprogrammbibliothekKlassenbibliothek(wie PLI) erweiterbar

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Programmiersprachen für wissenschaftliches Rechnen

Page 2: WERKZEUGEDERMUSTERERKENNUNGUND Teil I … · 2020-02-14 · Waskann’R’?SprachumfangGrafikInstallation’R’-Sitzung ?plot Datenmatrizen,EinkanalbilderII WertedurchGrenzen WertedurchFarben

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Inhaltlicher Vorlesungsaufbau

Die Programmiersprache ’R’

• Sprache ’R’ im ÜberblickHilfe, Installation, Sitzung

• Rechnen und DatentypenFelder, Listen, Funktionen,Operatoren

• Text und DatenZeichenketten,Eingabe/Ausgabe,Graphikausgabe

• Statistische ModelleRegression, Optimierung,Verteilungen

Anwendungsgebiete von ’R’

• ZeitreihenTrend/Saison, Faltung, ACF,Spektrum, AR/MA, GARCH

• TransformationenHauptachsen, MDS,Faktoren, ICA, NMF, LDA

• Klassifikatorenk-NN, MLP, SVM, SCT,OLS/GLS, LDA/QDA

• Clusteranalysedivisiv/agglomerativ,K -Means, Fuzzy,EM-Entmischung, spektral

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Was kann ’R’?

Sprachumfang

Grafikausgabe

Installation des ’R’-Pakets

Ablauf einer ’R’-Sitzung

Elementare Grafikbefehle

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Das System ist ...

• ein leistungsfähiger Taschenrechner• ein vektor/tensorbasierter Mathematikprozessor• eine funktional-objektorientierte Programmiersprache• ein Werkzeug zur statistischen Datenanalyse• ein mächtiges Kommandosystem für wiss. Grafiken• ein Interpreter für „die Sprache C ∪ Lisp“• ein offenes und kostenloses Softwareprodukt (S-Plus nicht!)• in den Bereichen Statistik, Datamining, Bioinf weit verbreitet• ein Algorithmen-Wiki für die internat. Datamining-Szene

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Wissenswertes über

• Dokumente des ’R’-Pakets: file://usr/lib/R/doc/html

Tutorial, Language Definition, Installation, Erweiterungspakete, Datenim-/export, FAQ, ...

• Webseiten des ’R’-Projekts:international: http://www.r-project.org/ · national: http://www.r-project.de/

• Ausgewählte Handbücher und KursmaterialienContributed Documentation (≥ 50 Tutorials): http://cran.r-project.org/other-docs.html

• Interaktive Hilfe zur Programmlaufzeit(Funktionsaufruf) funcname (a,b,...)

1. Funktionsbeschreibung help (funcname)bzw. ?funcname

2. Beispieldemonstration example (funcname)3. Funktionsdeklaration funcname4. Suchfunktion help.search (topic)

bzw. ??topic

Page 3: WERKZEUGEDERMUSTERERKENNUNGUND Teil I … · 2020-02-14 · Waskann’R’?SprachumfangGrafikInstallation’R’-Sitzung ?plot Datenmatrizen,EinkanalbilderII WertedurchGrenzen WertedurchFarben

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Was kann ’R’?

Sprachumfang

Grafikausgabe

Installation des ’R’-Pakets

Ablauf einer ’R’-Sitzung

Elementare Grafikbefehle

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

’R’ als Taschenrechner

• ’R’ ist interaktiv: der Programmtext wird interpretiert• ’R’-Programm =̂ Folge von Ausdrücken• der Ausdruck wird ausgewertet; der Wert wird angezeigt:(17+4)*(35-25)+4501 ... [1] 4711

• nach Namensbindungen wird die Wertausgabe unterdrückt:xval <- (17+4)*(35-25)+4501 ... (nix)

• der Wert wurde aber errechnet und gemerkt:xval + 1111 ... [1] 5822

• Bezeichner werden nach Erstauftritt automatisch registriert:objects() ... [1] ’DNA.prom’ ’my_url’ ’xval’

• Bezeichner sind keine Variablen:xval <- "School’s out forever!" ... (kein Problem)

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Vektoren, Matrizen, Tensoren

• Die elementaren Datentypen von ’R’ sind Vektoren:x <- c(1,4,9,16) ; x ... [1] 1 4 9 16

• Es gibt zahlreiche Konstruktoren für Vektorobjekte:y <- 1:4 ; y ... [1] 1 2 3 4

• Arithmet./logische Verknüpfungen operieren komponentenweise:x+y ... [1] 2 6 12 20

• Matrizen bestehen aus Datenvektor & Strukturinformation:matrix (data=1:12, nrow=3, ncol=4, byrow=FALSE)

[,1] [,2] [,3] [,4][1,] 1 4 7 10[2,] 2 5 8 11[3,] 3 6 9 12

• Es gibt zahlreiche Werteselektionsmöglichkeiten:mat[3] mat[2,3] mat[2,1:3] mat[2:3,2][1] 3 [1] 8 [1] 2 5 8 [1] 5 6

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Listen, Ausdrücke & Parsebäume

• Listen enthalten Komponenten von unterschiedlichem Typ:lis <- list (zahl=12, TRUE, ’zwei Wörter’)

• Selektion per Index oder per Name:lis[[2]] ... [1] TRUE oder lis$zahl ... [1] 12

• Programmtexte können geparst werden:ex <- parse (text = "a-b; (17+4)*45; x+y")

• Es wird eine Liste von Parsebäumen erzeugt:ex2 <- ex[[2]] ; ex2 ... (17 + 4) * 45

• Jeder Ausdruck liegt als Kantorovic-Ableitungsbaum vor:ex2[1] ex2[2] ex2[3] ex2[4]’*’() (17 + 4)() 45() NULL()

• Kantorovic-Bäume können (u.U.) ausgewertet werden:eval(ex2) ... [1] 945eval(ex) ... Error in eval(expr, envir, enclos) : Object ’a’ not found

Page 4: WERKZEUGEDERMUSTERERKENNUNGUND Teil I … · 2020-02-14 · Waskann’R’?SprachumfangGrafikInstallation’R’-Sitzung ?plot Datenmatrizen,EinkanalbilderII WertedurchGrenzen WertedurchFarben

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Datensätze laden — auch über das Internet• Als Dateinamen werden auch URLs akzeptiert:myurl <- ’http://stat.ethz.ch/Teaching/Datasets/NDK/sport.dat’

d.sport <- read.table (myurl)• Datensätze mit benannten Mustern & Merkmalen:

weit kugel hoch disc stab speer punkteOBRIEN 7.57 15.66 207 48.78 500 66.90 8824BUSEMANN 8.07 13.60 204 45.04 480 66.86 8706DVORAK 7.60 15.82 198 46.28 470 70.16 8664FRITZ 7.77 15.31 204 49.84 510 65.70 8644HAMALAINEN 7.48 16.32 198 49.62 500 57.66 8613NOOL 7.88 14.01 201 42.98 540 65.48 8543ZMELIK 7.64 13.53 195 43.44 540 67.20 8422GANIYEV 7.61 14.71 213 44.86 520 53.70 8318PENALVER 7.27 16.91 207 48.92 470 57.08 8307HUFFINS 7.49 15.57 204 48.72 470 60.62 8300PLAZIAT 7.82 14.85 204 45.34 490 52.18 8282MAGNUSSON 7.28 15.52 195 43.78 480 61.10 8274SMITH 7.47 16.97 195 49.54 500 64.34 8271MUELLER 7.25 14.69 195 45.90 510 66.10 8253CHMARA 7.75 14.51 210 42.60 490 54.84 8249

• Auswahl von Zeilen und Spalten, z.B. d.sport[,’kugel’][1] 15.66 13.60 15.82 15.31 16.32 14.01 13.53 14.71 16.91 15.57 14.85 15.52

[13] 16.97 14.69 14.51

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Aufrufen & Deklarieren von Funktionen

• Funktionsdeklaration mit formalen Parametern:funcname <- function (arglist) {body}

• Parameterbezeichner vname (ohne Typangabe!)

• Parameter mit Voreinstellung vname=default• Restparameterliste ...

• Funktionsaufruf mit aktuellen Parametern:funcname(arglist)

• Positionelle Übergabe expr• Namentliche Übergabe vname=expr• Restparameterübergabe ...

• Beispiel:zeichne <- function (x, y=NULL, title=’Grafik’, ...) {

if (is.null (y)){ y <- x; x <- 1:length(x) }

plot (y ˜ x, main=title, ...)}

zeichne (sin(1:20), cos(1:20), title=’Kreis’, col=’red’)

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Was kann ’R’?

Sprachumfang

Grafikausgabe

Installation des ’R’-Pakets

Ablauf einer ’R’-Sitzung

Elementare Grafikbefehle

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Wertesequenzen & WertemengenSkalare Datensammlung mit/ohne Reihenfolgeinformation

0 10 20 30 40 50

−1

01

2

●●

●●

●● ●

● ●

Simple Use of Color In a Plot

Just a Whisper of a Label

Stützwertediagramm

x

Fre

quen

cy

−4 −2 0 2 4

050

100

150

200

1000 Normal Random Variates

Balkendiagramm

Page 5: WERKZEUGEDERMUSTERERKENNUNGUND Teil I … · 2020-02-14 · Waskann’R’?SprachumfangGrafikInstallation’R’-Sitzung ?plot Datenmatrizen,EinkanalbilderII WertedurchGrenzen WertedurchFarben

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Wertemengen & VerteilungsformWahrscheinlichkeitsverteilungen auf stetigen Skalen

●2.0

2.5

3.0

3.5

4.0

iris$

Sep

al.W

idth

3 outliersmaximum75% quantilemedian25% quantileminimum1 outlier

Box-Whisker-Plot

1 2 3 4 5 6 7 8 9 10

02

46

Notched Boxplots

Group

Mittel & Abweichung(en)

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Häufigkeiten & ProportionenWahrscheinlichkeitsverteilungen auf diskreten Skalen

Blueberry

Cherry

Apple

Boston Cream

Other

Vanilla Cream

January Pie Sales

(Don't try this at home kids)

Tortengrafik

1

2

3

4

567

8

9

10

11

12

13

14

15

16

1718 19

20

21

22

23

24

A Sample Color Wheel

(Use this as a test of monitor linearity)

Wagenradgrafik

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

WertesequenzpaareKonkurrierende Sequenzen · Komplementäre Sequenzen

0 20 40 60 80 100

−10

−5

05

1015

Time

Dis

tanc

e

Distance Between Brownian Motions

Minimum/Maximum

2.0 2.5 3.0 3.5 4.0

4.5

5.0

5.5

6.0

6.5

7.0

7.5

8.0

ts(iris$Sepal.Width)

ts(ir

is$S

epal

.Len

gth)

12

34

5

6

7

8

9

10

11

1213

14

1516

17

18

19

20

21

22

23

24

2526 27

2829

3031

3233

34

3536

37

38

39

4041

4243

4445

46

47

48

49

50

51

52

53

54

55

56

57

58

59

6061

6263

64

65

66

6768

69

70

7172

7374

7576

7778

79

808182

8384

85

86

87

88

899091

92

93

94

959697

98

99

100

101

102

103

104105

106

107

108

109

110

111112

113

114115

116117

118119

120

121

122

123

124

125

126

127128

129

130131

132

133134

135

136

137138

139

140141142

143

144145146

147148

149

150

Zweikanal-Zeitreihen (2D-Trajektorie)

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Datenmatrizen, Einkanalbilder IGebirgsmetapher durch Gitterprojektion oder 3D-Rendering

Maunga WhauOne of 50 Volcanoes in the Auckland Region.

Drahtgitterlandschaft

row

column

volcano

Schattierung

Page 6: WERKZEUGEDERMUSTERERKENNUNGUND Teil I … · 2020-02-14 · Waskann’R’?SprachumfangGrafikInstallation’R’-Sitzung ?plot Datenmatrizen,EinkanalbilderII WertedurchGrenzen WertedurchFarben

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Datenmatrizen, Einkanalbilder IIWerte durch Grenzen · Werte durch Farben

0 200 400 600 800

020

040

060

0

100

100

100

110

110

110

110

120

130

140

150

160

160

170

170

180

180

190

A Topographic Map of Maunga Whau

Meters North

Met

ers

Wes

t

10 Meter Contour Spacing

Konturen/Isolinien

100

120

140

160

180

Height(meters)

200 400 600 800

100

200

300

400

500

600

The Topography of Maunga Whau

Falschfarbendarstellung

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Kombinierte SkalendarstellungZwei Modalitäten in einem Koordinatensystem

Schattierung & Falschfarben

x

y

95

100

100

100

105

105

105

110

110

110

110

115

115

115

120

125

130

135

140 145

150

155

155

160

160

165

165

170

170

175

180

180

185

190

100 200 300 400 500 600 700 800

100

200

300

400

500

600

Maunga Whau Volcano

col=terrain.colors(100)

Isolinien & Falschfarben

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Funktionsverläufe f : IR2 → IR zweier VariablenZuordnungsvorschrift statt Datenmenge

x

y

z

.

z = Sinc( x2 + y2)

Drahtgitterlandschaft

X

−10

−5

0

5

10

Y

−10

−5

0

5

10Z

−2

0

2

4

6

8

.

z = Sinc( x2 + y2)

Gitter & Schattierung

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Zweikanalige DatenScatterplot ohne/mit Klassenkennzeichnung

*

***

**

* *

**

**

**

*

*

*

***

*****

*

* ****

*

* *

****

*

**

*

***

*

*

*

*

* ** *

*

**

*

*

**

*

*

*

****

*

**

*

**

* * **

***

*** *

*

**

*

*

**

*

**

*** *

**

*

*** * *

*

*

*

*

*

**

**

**

*

*

*

*

* **

* *

**

**

*

*

***

*

*** ** *

*

***

*

*

*

*

4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0

2.0

2.5

3.0

3.5

4.0

Fisher's IRIS data (two coordinates)

Sepal.Length

Sep

al.W

idth

alle Datenpunkte (xi , xj) in der Ebene

●●

● ●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●

● ●

●●

●● ●

●●

● ●

● ●●

●●

●●

●●

●● ●

●●

4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0

2.0

2.5

3.0

3.5

4.0

Fisher's IRIS data (two coordinates)

Sepal.Length

Sep

al.W

idth

dto., mit Klassenmarkierung

Page 7: WERKZEUGEDERMUSTERERKENNUNGUND Teil I … · 2020-02-14 · Waskann’R’?SprachumfangGrafikInstallation’R’-Sitzung ?plot Datenmatrizen,EinkanalbilderII WertedurchGrenzen WertedurchFarben

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Drei- und mehrkanalige DatenSchubladengrafik · Kombinatorischer Scatterplot

● ●●●

●●●

● ●

●●

●●●

●●

●●

●●

●●●●●●●●●●●●●●

●● ●

●●

● ●

●●

●●

●●●

●●

●●

●●●

●●●●●●●

●●●●●

●●

●●

●●

●●

●●

●●

●●

●●

● ●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●●●

●●

●●

●●

−35

−30

−25

−20

−15

−10

●●●

●●●

●●

●●

●●

●●

● ●

●●

●●

●●

●●●●●●●●●

●●

●●●●

●●

●●

●●

●●

● ●

●●●●

●●●●

●●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●

● ●●

●●

●●●●●

●●

●●●

● ●●

●●

●●

●●

165 170 175 180 185

●●

●●

●●

●●

● ●

●●

●●

●●

●●

●●

●●

●●

● ●● ●

●●

●●

●●

●●●

●●

●●

●●

●●

● ●

●●

●●

●●

● ●

●●

●●

●●

●●●

●●

● ●

●●

● ●

●●

●●

●●

●●

●●

●●

●●

● ●●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●●

●●

●●

● ●

●●●

●●

●●

●●

●●●

●●●

●●

● ●

●●

●●

●●

●●

●●●

●●●

● ●●

165 170 175 180 185

●●

●●

●●

●●●

●●

●●

● ●

●●

●● ●

●●●

●●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●

● ●

●●●

●●●

●●

●●●

●●

●●●

●●

●●

●●

●●

●●

● ●●●

●●

●●

●●

●●

●●

●●

●●

●●● ●●●

●●●

●●●

●●

●●

●●

●●

●●●

●●

●●

●●●●

●●

●●●●

●●

●●

●●

●●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●●

●●

●●

●●●●

●●

●●

●●

●●

●● ●●

●●●●●

●●●● ●

●●●●●

●●

●●●●

●●●●●

●●

●●

●●● ●

●●

●●

●●●●●●

●●

●●●

●●●●

●●

●●

●●●

●●

●●

●●●

●●

●●

165 170 175 180 185

−35

−30

−25

−20

−15

−10

long

lat

100 200 300 400 500 600

Given : depth

x3-partitionierte (x1, x2)-Diagramme

Sepal.Length

2.0 2.5 3.0 3.5 4.0

●●

●●

●●

●●

●● ●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●●

●●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

●● ●

●●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

0.5 1.0 1.5 2.0 2.5

4.5

5.5

6.5

7.5

●●●●

●●

●●

●● ●●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●●

●●

●●●

●●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

2.0

2.5

3.0

3.5

4.0

●●

● ●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●

● ●

●●

●● ●

●●

● ●

● ●●

●●

●●

●●

●● ●

●●

●Sepal.Width

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●●

●●

●●

● ●

●●

●●●

●●

● ●

● ●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●

● ●

●●

●●●

●●

●●

●●●

●●

●●

●●

● ●●

●●

●●●● ●

●● ●● ● ●●

●● ●

●●●

●●

●●

●●

●● ●●●● ●● ●●

● ●●●●

●●●●●

●●

● ●●

●●

●●●

●●

●●

●●●

●●

● ●●

●●●

● ●●

●●●

●●

●●● ●

●●

●●

●●

●●●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●● ●● ●

●●●● ● ●●

●● ●

●●●

●●

●●

●●

● ●●●●● ● ●●●● ●●●

●●● ●●

●●

● ●●

●●

●●●

●●

●●

●●●

●●

●●●

●●●

● ●●

●●●

●●

● ●●●

●●

●●

●●

● ●●

●●

●●

● ●

●●

●●

●●

●●

●●

●●

●●

●●

Petal.Length

12

34

56

7

●●●●●

●●●●●●●●

●●●●●

●●

●●

●●● ●●●●● ●●●●●●

●●●

●●●●

●●●●●

●●●

●●●

●●

●●

●●●

●●

●●●

●●●

●●●

●●●

●●

●●●●

●●

●●

●●

● ●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

4.5 5.5 6.5 7.5

0.5

1.0

1.5

2.0

2.5

●●●● ●

●●

●●●

●●●●

●●● ●●

● ●

●●●●

●●●● ●

●● ●

●●●

●●

●● ●●

●● ●

●●

●●

●●

●●

● ●

●●●

●●

●●

●●●●

●●● ●

●●

●●●

●●

●●

●●

●●

● ●

●●●

●●

●●

●●

●●

●●

●●

●● ●● ●

●●●●

●●●

●●●

●●● ●●

●●

●●●●

●●●● ●

●● ●

●●●

●●

●● ●●

●●●

●●

●●

●●

●●

●●

●●●

●●

●●

● ●●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●● ●

●●

●●

●●

●●

●●

●●

1 2 3 4 5 6 7

●●●●●

●●●●●●●

●●●

●●●●●

●●

●●●●

●●●●●●

●●●●●

●●

●●●●

●● ●

●●

●●

●●

●●● ●

●●

●●●

●●●●

●●●●

●●

●●●

●●

●●

●●

●●

● ●

●●●

●●

●●

●●

●●

●●

●●

Petal.Width

Edgar Anderson's Iris Data

alle möglichen (xi , xj)-Diagramme

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Darstellung von VerteilungsmodellenEmpirische/geschätzte Dichte · Text- und Formelsatz

Estimated Density

Height (inches)

Ker

nel D

ensi

ty w

ith N

orm

al F

it

0.000.050.100.150.200.25

60 65 70 75 80

● ●● ●●●● ●●● ●●● ● ●● ● ●● ●●● ●● ● ●

Bass 2

●● ●● ●● ●●● ●● ● ● ●●●● ● ●● ●● ●● ●●● ●●● ●● ● ●●● ●●●

Bass 1● ●● ●● ●●● ●● ● ●●●● ●●● ●● ●

Tenor 2

0.000.050.100.150.200.25

● ●●● ●●●● ●● ●● ●●●● ●● ●●●

Tenor 10.000.050.100.150.200.25

●●●●● ●● ●● ●●● ●●● ●●●● ●●●●● ●●●

Alto 2

●● ●●●● ●●● ●●● ●●● ● ●●●● ●●●● ● ●● ●●● ● ● ●● ●

Alto 1● ●● ●●● ●●● ● ●● ●●● ● ●●●● ●● ● ●● ● ●● ●●

Soprano 2

60 65 70 75 80

0.000.050.100.150.200.25

●● ●●● ● ● ●●● ●●● ● ●●● ●● ● ●● ●● ● ●●● ● ●●● ● ●●●

Soprano 1

Gruppenbezogene Dichtevisualisierung

π∑0

nx

demonstrating

expressions

σi

γ2

α

β

γ

− π

2

0 π

2

●●

●●

● ●

●●

● ●

●●

●●

●●

● ●

●●

●●

●●

●●

●●

●●

●●

● ●

: ε

α

β

γ

− π

2

0 π

2

● ●

●●●

● ●

●●

●●

●●

● ●

●●

● ●●

●●

●●

●●

●●

● ●

●●

● ●●

●●

●●

●●

: ε

α

β

γ

− π

2

0 π

2

●●

●●

●●

● ●

●●●

● ●

●●

● ●●

● ●

● ●

●●

●●

: ε

α

β

γ

− π

2

0 π

2

●●

●●

● ● ●●

●●

●●

●●

● ●

●●

●●

●●

●●

●●

●●

●●

●●

●●

● ●

: ε

ei1α+2β

● small

BIGθζ

Formelsatz in LATEX-Syntax

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Clusteranalyse (Gruppierung)Hierarchische Gruppierung · Unscharfe Gruppierung

DK L F I

UK D B

NL E

IRL

GR P

010

3050

Ward−Distanz

Lanc

e−W

illia

ms

scor

e

Dendrogramm (AGNES)

−30 −20 −10 0 10 20 30

−30

−20

−10

010

20

clusplot(fanny(x = USArrests[, 3:4], k = 7, memb.exp = 1.4))

Component 1

Com

pone

nt 2

●●

Partition (fuzzy K -means)

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Was kann ’R’?

Sprachumfang

Grafikausgabe

Installation des ’R’-Pakets

Ablauf einer ’R’-Sitzung

Elementare Grafikbefehle

Page 8: WERKZEUGEDERMUSTERERKENNUNGUND Teil I … · 2020-02-14 · Waskann’R’?SprachumfangGrafikInstallation’R’-Sitzung ?plot Datenmatrizen,EinkanalbilderII WertedurchGrenzen WertedurchFarben

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

am Institut für Informatik’R’ ist verfügbar an allen Rechnern im Linux-PC-Pool des FRZ

myself@mipool> R R version 3.3.1

R version 3.3.1 (2016-06-21) – "Bug in Your Hair"Copyright (C) 2016 The R Foundation for Statistical ComputingPlatform: x86_64-suse-linux-gnu (64-bit)

R ist freie Software und kommt OHNE JEGLICHE GARANTIE.Sie sind eingeladen, es unter bestimmten Bedingungen weiter zu verbreiten.Tippen Sie ’license()’ or ’licence()’ für Details dazu.

R ist ein Gemeinschaftsprojekt mit vielen Beitragenden.Tippen Sie ’contributors()’ für mehr Information und ’citation()’,um zu erfahren, wie R oder R packages in Publikationen zitiert werden können.

Tippen Sie ’demo()’ für einige Demos, ’help()’ für on-line Hilfe, oder’help.start()’ für eine HTML Browserschnittstelle zur Hilfe.Tippen Sie ’q()’, um R zu verlassen.

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

zu Hause unter Linux installieren

1. Rufen Sie die Webseite http://cran.r-project.org/CRAN = Comprehensive ’R’ Archive Network

2. Nutzen Sie die ONE-CLICK-InstallationR binaries linux suse SuSE 12.1 R-patched-devel-2.14.1

3. ... oder laden Sie sich eine Distribution herunter undinstallieren Sie das Paket als ’root’:rpm -i /home/schukat/hereis/R-base-2.4.0-1.i586.rpm

error: Failed dependencies:xorg-x11-fonts-100dpi is needed by R-base-2.4.0-1blas is needed by R-base-2.4.0-1libgfortran.so.0 is needed by R-base-2.4.0-1

4. Installieren Sie die fehlenden Pakete nach (YAST2), z.B.blas · xorg-x11-fonts-100dpi · fortran o.ä.

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

zu Hause unter Windows installierenWarum sollte das eigentlich nicht möglich sein? · Wer hat da eben gelacht?

〈Algorithmus〉

1 Laden Sie sich eine Binärversion für Windows XP herunter.2 Überzeugen Sie den Installationsassistenten Ihres Vertrauens

davon, daß es sich beim ’R’-Paket um einEgoshooterprogramm handelt.

3 Führen Sie einen Systemneustart durch.4 Entfernen Sie die verkohlten Kunststoffreste von der

Auslegeware.〈Algorithmus〉

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Was kann ’R’?

Sprachumfang

Grafikausgabe

Installation des ’R’-Pakets

Ablauf einer ’R’-Sitzung

Elementare Grafikbefehle

Page 9: WERKZEUGEDERMUSTERERKENNUNGUND Teil I … · 2020-02-14 · Waskann’R’?SprachumfangGrafikInstallation’R’-Sitzung ?plot Datenmatrizen,EinkanalbilderII WertedurchGrenzen WertedurchFarben

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Beginn und Ende einer ’R’-SitzungKonfiguration einer individuellen Umgebung

• Starten einer Sitzung:.../working-directory> R

• Beenden einer Sitzung:quit() oder q() oder q(’yes’) oder q(’no’)

• Der individuelle Zuschnitt Ihrer ’R’-Umgebung:.../working-directory/.Rprofile

• Prolog zu Sitzungsbeginn:... die Funktion .First() wird ausgeführt

• Epilog bei Sitzungsende:... die Funktion .Last() wird ausgeführt

• BEISPIEL:Die Startdatei .Rprofile enthält die Funktionsdefinitionen:

.First <- function() { source (’./lib/mydefs.R’) ; cat (paste (date(), ’Hola’)) }

.Last <- function() { graphics.off() ; cat (paste (date(), ’Adios’)) }

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Kommandos zur ObjektverwaltungListen · Löschen · Ein/Ausgabe von Daten und Kommandos

• Auflisten aller definierten Objekte:objects() oder ls()

• Löschen definierter Objekte:remove (x,y,fun) oder rm (list=ls()) (?!?)

• ’R’-Kommandos von Datei lesen (Eingabeumlenkung)

source (file)• ’R’-Ausgaben/Meldungen in Datei schreiben (Ausgabeumlenkung)

sink(file=NULL, append=FALSE)• ’R’-Objekte in eine Datei speichernsave(..., list=character(0), file=)

• ’R’-Objekte aus einer Datei laden (char vector)

load(file) oder loadURL(url)• Alle Sitzungsobjekte werden nach .RData geschrieben

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Stapelverarbeitung für -ProgrammeAufruf von und Parameterübergabe an ’R’-Skriptdateien

• Abarbeitung einer Datei mit ’R’-Programmcode:

Rscript progfile.R

(entspricht Ausführung von source ("progfile.R") im ’R’-Interpreter)

• Aufruf eines ’R’-Skripts mit Parameterübergabe:

Rscript progfile.R string1 string2 string3 ... ... ...

Nach der Zuweisung

arg <- commandArgs (trailingOnly=TRUE)

finden sich in den Komponenten arg[1], arg[2] usw. descharacter-Vektors arg die Aufrufparameter als Zeichenketten.

• Etwaige Grafikausgaben finden wir im aktuellen Arbeitskatalog unterdem Namen Rplots.pdf.(sofern „PDF“ voreingestellt und kein Dateiname angegeben)

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Was kann ’R’?

Sprachumfang

Grafikausgabe

Installation des ’R’-Pakets

Ablauf einer ’R’-Sitzung

Elementare Grafikbefehle

Page 10: WERKZEUGEDERMUSTERERKENNUNGUND Teil I … · 2020-02-14 · Waskann’R’?SprachumfangGrafikInstallation’R’-Sitzung ?plot Datenmatrizen,EinkanalbilderII WertedurchGrenzen WertedurchFarben

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Zeichnen von Funktionsverläufen

• Generische Funktion delegiert an zuständige Methode:plot(func,...) plot.function(func,...)

• Methode zum Kurvenzeichnen:curve (expr, from, to, n=101, add=FALSE, type=’l’,ylab=NULL, log=NULL, xlim=NULL, ...)

• Der Funktionsname ist gegeben, z.B.:plot (sin)

• Eine Funktionsdefinition ist gegeben, z.B.:plot (function(z) {2*z+5})

• Das Intervall für die Argumentwerte ist spezifiziert, z.B.:plot (sin, -2, +4)

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Beispiel: eine Sinuskurve

plot ( sin, from=0, to=6*pi, col="blue",main="Darstellung Sinuskurve",sub="drei Perioden" )

0 5 10 15

−1.0

−0.5

0.00.5

1.0

Darstellung Sinuskurve

drei Periodenx

sin (x

)

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Beispiel: eine Funktionsdeklaration

plot ( function(z) {sin(1/z)}, col=’blue’, n=256,main=’Funktionsinstanz’,sub=’eigenhaendig deklariert’ )

0.0 0.2 0.4 0.6 0.8 1.0

−1.0

−0.5

0.00.5

1.0

Funktionsinstanz

eigenhaendig deklariertx

functio

n(z) {

(x)

sin(1/

z) (x)

} (x)

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Bildübergreifende Grafikbefehle

• Überlagern mehrerer Verläufe in einem Achsenkreuzplot (x,y, add=TRUE)

• Umleiten der Grafikausgabe von Schirm auf Dateipdf (file=’Rplot.pdf’, ???)und entsprechend für postscript pictex png jpeg GTK GNOME xfig bitmap

zurück mit X11 (display, ???)• Keine neue Zeichnung ohne Bestätigung (Stapelbetrieb)

par (ask=TRUE)• Aufteilung der Leinwand in mehrere Grafikfelderpar (mfrow=c(n,m)) oderpar (mfcol=c(n,m))

Page 11: WERKZEUGEDERMUSTERERKENNUNGUND Teil I … · 2020-02-14 · Waskann’R’?SprachumfangGrafikInstallation’R’-Sitzung ?plot Datenmatrizen,EinkanalbilderII WertedurchGrenzen WertedurchFarben

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Beispiel: zwei Kurven in einem Bild

plot ( sin, from=0, to=6*pi, col="blue",main="Darstellung Sinus- und Kosinuskurve",sub="drei beziehungsweise zwei Perioden")

plot ( cos, from=0, to=4*pi, add=TRUE, col="green")

0 5 10 15

−1.0

−0.5

0.00.5

1.0

Darstellung Sinus− und Kosinuskurve

drei beziehungsweise zwei Periodenx

sin (x

)

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Beispiel: sechs Bilder auf einem Blatt

par (mfrow = c(2,3))curve (sin(10*x), col="blue"); curve (sin(20*x), col="green")curve (sin(30*x), col="red"); curve (sin(40*x), col="cyan")curve (sin(50*x), col="yellow");curve (sin(60*x), col="magenta")

0.0 0.2 0.4 0.6 0.8 1.0

−1.0

−0.5

0.00.5

1.0

x

sin(10

* x)

0.0 0.2 0.4 0.6 0.8 1.0

−1.0

−0.5

0.00.5

1.0

x

sin(20

* x)

0.0 0.2 0.4 0.6 0.8 1.0

−1.0

−0.5

0.00.5

1.0

x

sin(30

* x)

0.0 0.2 0.4 0.6 0.8 1.0

−1.0

−0.5

0.00.5

1.0

x

sin(40

* x)

0.0 0.2 0.4 0.6 0.8 1.0

−1.0

−0.5

0.00.5

1.0

x

sin(50

* x)

0.0 0.2 0.4 0.6 0.8 1.0

−1.0

−0.5

0.00.5

1.0

x

sin(60

* x)

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Wertesequenzen und Punktesequenzen

• Wertesequenzen zeichnen: plot(x) , z.B.:plot (c (2,3,5,7,11,13,17))plot (1:20)plot (seq (0,8,0.1))plot (sin (seq (0,8,0.1)))

• Punktesequenzen zeichnen: plot(x,y)z.B. x <- seq (0,2*pi,0.1) nebstplot (x, sin(x)) oderplot (sin(x), x) oderplot (cos(x), sin(x))

• Kurvendarstellung durch type=’?’ gesteuert:points lines bothoverplotted contour-onlyhigh-density steps Steps ...

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Beispiel: eindimensionale Wertefolgen

par (mfrow = c(1,3))plot (c(2,3,5,7,11,13,17,19,23), type=’l’, col=’blue’)plot (1:20, type=’p’, col=’blue’)plot (seq (0,8,1), type=’b’, col=’blue’)

2 4 6 8

510

1520

Index

c(2, 3,

5, 7, 1

1, 13, 1

7, 19, 2

3)

5 10 15 20

510

1520

Index1:2

0

2 4 6 8

02

46

8

Index

seq(0,

8, 1)

Page 12: WERKZEUGEDERMUSTERERKENNUNGUND Teil I … · 2020-02-14 · Waskann’R’?SprachumfangGrafikInstallation’R’-Sitzung ?plot Datenmatrizen,EinkanalbilderII WertedurchGrenzen WertedurchFarben

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Beispiel: zweidimensionale Wertefolgen

par (mfrow = c(1,3))x <- seq (0, 6*pi, 0.1)plot (sin(x), cos(x), type=’b’, col=’blue’)plot (x, sin(x), type=’b’, col=’blue’)plot (sin(x), x, type=’b’, col=’blue’)

● ●●

●●

●●●●●

●●

● ● ●●

●●

●●●●

●● ● ● ●

●●

●●

●●●●

●●

● ●

−1.0 −0.5 0.0 0.5 1.0

−1.0

−0.5

0.00.5

1.0

sin(x)

cos(x)

●●●●●●●

●●●●●●●

●●●●●●●●

●●●●●●●

●●●●●●●●

●●●●●●●

0 5 10 15

−1.0

−0.5

0.00.5

1.0

x

sin(x)

● ● ● ● ●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●● ● ● ● ● ● ● ● ●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●

●●●●●●●● ● ● ● ● ● ● ● ● ●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●

●●●●●●●● ● ● ● ●

−1.0 −0.5 0.0 0.5 1.00

510

15sin(x)

x

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Leinwandaufteilung mit variablen Feldmaßen

layout (matrix (c(1,1,2,3), ncol=2), width=c(2,3), height=c(3,2))x <- c (runif (123), rnorm (50, mean=2, sd=0.5))boxplot (x, col="green")plot (sort(x), col="blue", type="h")hist (x, col="red", lab=TRUE, main="")layout (1) # nicht vergessen!!

0.00.5

1.01.5

2.02.5

3.0

0 50 100 150

0.00.5

1.01.5

2.02.5

3.0

Index

sort(x)

x

Freque

ncy

0.0 0.5 1.0 1.5 2.0 2.5 3.0

020

4060 58

65

6

24

10 10

Was kann ’R’? Sprachumfang Grafik Installation ’R’-Sitzung ?plot

Zusammenfassung (1)

1. ’R’ ist eine funktionale Programmiersprache mit rudimentärerObjektorientierung (polymorphe Aufrufe).

2. ’R’ arbeitet interaktiv (Interpreter statt Compiler), unterstützt aberStapelverarbeitung (Skripten).

3. ’R’ gilt als spektakulär für wissenschaftliches Rechnen, Statistik,Datenmodellierung und -visualisierung; für Bild- und Textverarbeitunggibt es performantere Wettbewerber.

4. Der elementare Datentyp von ’R’ ist der Vektor.

5. In ’R’ sind auch Funktionen und Ausdrücke Sprachobjekte, können alsozur Laufzeit manipuliert werden.

6. ’R’ unterstützt die E/A beliebiger ’R’-Objekte durch automatischeSerialisierung.

7. Grafiken werden kumulativ erzeugt; zuerst das Koordinatensystem, dannsukzessive weitere Zeichnungskomponenten.

8. Komplexere Grafiken werden durch Leinwandaufteilung und sequentielleKomposition einfacher Grafiken erzeugt.