Skip to content

Commit ac16e58

Browse files
committed
LSED Lab 10
1 parent 627f173 commit ac16e58

File tree

3 files changed

+170
-1
lines changed

3 files changed

+170
-1
lines changed

LSED_Lab_10.R

+103
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
### LSED - LAB nr 10
2+
3+
rm(list=ls())
4+
library(MASS)
5+
6+
7+
### --- ANALIZA SK£ADOWYCH G£OWNYCH --- ###
8+
9+
10+
# Zale¿noœæ y = x
11+
x <- seq(-5, 5, by=.1)
12+
y <- x
13+
14+
# Dodanie szumu
15+
eta <- runif(101, 0, 1)
16+
dzeta <- runif(101, 0, 1)
17+
18+
x <- x + eta
19+
y <- y + dzeta
20+
21+
# Wykres
22+
plot(x, y, pch=19, xlab="Test 1", ylab="Test 2", font=2, font.lab=2, xlim=c(-5,5), ylim=c(-5,5), asp = 1)
23+
abline(h=0, v=0, lwd=2, col="gray")
24+
abline(0,1,lwd=2,col="red")
25+
abline(0,-1,lwd=2,col="green")
26+
text(4.5,-0.5,expression(x[1]),cex=2)
27+
text(-0.5,4.5,expression(x[2]),cex=2)
28+
text(4.7,4,expression(y[1]),cex=2, col="red")
29+
text(-4.5,4,expression(y[2]),cex=2, col="green")
30+
title("Dane", cex.main=1.4)
31+
32+
33+
# Zapisanie wspolrzednych x i y
34+
# do struktury dataframe
35+
36+
test <- data.frame(x, y)
37+
38+
# Macierz kowariancji
39+
S <- cov(test)
40+
41+
# Macierz korelacji
42+
Sc <- cor(test)
43+
44+
# Wyznaczenie wartoœci i wektorów w³asnych
45+
eS <- eigen(S)
46+
eSc <- eigen(Sc)
47+
48+
print(eS)
49+
print(eSc)
50+
51+
52+
# Wykonanie analizy sk³adowych glownych
53+
test.pc <- princomp(~., cor=T, data=test)
54+
55+
# Wykreœlenie wariancji zwiaz¹nych ze sk³adowymi
56+
plot(test.pc, main="")
57+
title("Wariancja", cex.main=1.4)
58+
59+
print(test.pc$sdev^2)
60+
61+
# Wykres we wspó³rzêdnych sk³adowych g³ównych
62+
plot(test.pc$scores, xlim=c(-2,2), ylim=c(-2,2), xlab="Sk³adowa 1", ylab="Sk³adowa 2")
63+
title("Sk³adowe", cex.main=1.4)
64+
65+
66+
### --- NIELINIOWA ANALIZA SK£ADOWYCH G£OWNYCH --- ###
67+
68+
# Dane irysów
69+
data(iris)
70+
71+
# Liniowe PCA
72+
iris.pca <- princomp(~ ., data = iris[,-5], cor = TRUE)
73+
plot(iris.pca$scores, pch = 19, col = as.factor(iris[,5]), xlab="Sk³adowa 1", ylab="Sk³adowa 2")
74+
75+
76+
library(kernlab)
77+
78+
# PCA nieliniowe z j¹drem radialnym
79+
iris.kpca <- kpca(~ ., data=iris[,-5], kernel="rbfdot", kpar = list(sigma=0.1))
80+
plot(rotated(iris.kpca), pch = 19, col = as.factor(iris[,5]), xlab = "Sk³adowa 1", ylab = "Sk³adowa 2")
81+
82+
83+
### --- NIELINIOWA ANALIZA SK£ADOWYCH G£OWNYCH --- ###
84+
85+
# MDS dla miast Europy
86+
euro.cmd = cmdscale(eurodist, k = 2)
87+
88+
# Tworzenie rysunku
89+
plot(euro.cmd[,1], euro.cmd[,2], type = "n", xlab = "", ylab = "", axes = FALSE, main = "MDS Europa")
90+
text(euro.cmd[,1], euro.cmd[,2], labels(eurodist), cex = 0.9, xpd = TRUE)
91+
92+
# Dane dotycz¹ce g³osowañ na prezydenta w stanach USA
93+
votes.repub <- cluster::votes.repub
94+
95+
# Pozbywamy siê wartoœci NA
96+
dates <- c(1:15)
97+
ind <- apply(is.na(votes.repub[,-dates]), 1, any)
98+
votes <- votes.repub[!ind, -dates]
99+
100+
votes.cmd <- cmdscale(dist(votes))
101+
102+
plot(votes.cmd, type = "n", xlab = "", ylab = "", axes = FALSE, main = "Stany USA w wyborach prezydenckich")
103+
text(votes.cmd, labels = rownames(votes.cmd), cex = 0.9, xpd = TRUE)

LSED_Lab_10__Zadanie_8.R

+63
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
### LSED - Zadanie 8 - LAB nr 10
2+
# Autor: Szymon Baczyński 270626
3+
4+
# Polecenie:
5+
# Wykonać analizę PCA dla zbioru win.
6+
# Wykreślić skumulowane odchylenie standardowe od liczby składowych
7+
# oraz punkty w nowych zmiennych dla 1 i 2 oraz 2 i 3 składowej.
8+
9+
rm(list=ls())
10+
library(MASS)
11+
12+
13+
### --- Punkt 1 - Wczytać dane --- ###
14+
cat("\n"); print("--- Punkt nr 1 zadania ---");
15+
16+
ifelse(!file.exists("wine.dat"), write.table(wina <- read.table("https://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data", sep=","), file="wine.dat", sep=","), wina <- read.table("wine.dat", sep=","))
17+
print("Wczytano dane i utworzono plik 'wine.dat' (jeśli taki nie istniał)")
18+
19+
20+
### --- Punkt 2 - Nazwać kolumny --- ###
21+
cat("\n"); print("--- Punkt nr 2 zadania ---");
22+
colnames(wina) <- c("class","Alcohol","Malic acid","Ash","Alcalinity of ash","Magnesium","Total phenols","Flavanoids","Nonflavanoid phenols","Proanthocyanins","Color intensity","Hue","OD280/OD315 of diluted wines", "Proline")
23+
print("Nazwano kolumny według pliku pomocniczego")
24+
25+
26+
### --- Punkt 3 - Analiza PCA --- ###
27+
cat("\n"); print("--- Punkt nr 3 zadania ---");
28+
print("Analiza PCA")
29+
wina <- data.frame(wina)
30+
# Macierz kowariancji
31+
S <- cov(wina)
32+
33+
# Macierz korelacji
34+
Sc <- cor(wina)
35+
36+
# Wyznaczenie wartości i wektorów własnych
37+
eS <- eigen(S)
38+
eSc <- eigen(Sc)
39+
40+
# print(eS)
41+
# print(eSc)
42+
43+
# Wykonanie analizy składowych glownych
44+
wina.pc <- princomp(~., cor=T, data=wina[,-1])
45+
kappa <- wina.pc$sdev
46+
sum_sdev <- 0.0
47+
# suma <- sapply(wina.pc$sdev, function(v) sum(v[1:v,]))
48+
49+
for (i in c(1:length(wina.pc$sdev))){
50+
sum_sdev[i] <- sum(wina.pc$sdev[1:i])
51+
}
52+
53+
54+
# Wykreślenie wariancji zwiaząnych ze składowymi
55+
plot(sum_sdev, main="Skumulowane Odchylenie Standardowe", xlab="Liczba składowych", ylab="Skumulowane Odchylenie standardowe",type="b", col="red" )
56+
axis(side=1, at=c(1:length(sum_sdev)))
57+
58+
print("Odchylenie standardowe z PCA:")
59+
print(wina.pc$sdev)
60+
61+
# Wykres we współrzędnych składowych głównych
62+
plot(wina.pc$scores, xlim=c(-2,2), ylim=c(-2,2), xlab="Składowa 1", ylab="Składowa 2")
63+
title("Składowe", cex.main=1.4)

LSED_Lab_9__Zadanie_7.R

+4-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414
rm(list=ls())
1515
library(MASS)
16+
library(gplots)
17+
1618

1719
CM.large <- function(org.class, pred.class) {
1820
CM <- table(org.class, pred.class)
@@ -28,7 +30,8 @@ animals <- cluster::animals
2830
colnames(animals) <- c("warm-blooded", "can fly", "vertebrate", "endangered", "live in groups", "have hair")
2931

3032
heatmap(as.matrix(animals), col = c("red", "green"))
31-
33+
heatmap.2(as.matrix(animals), col = c("red", "green"))
34+
print("Wykonano 2 wykresy HEATMAP")
3235

3336
# PUNKT 2 - K-Means
3437

0 commit comments

Comments
 (0)