## Example 126
u <- c(1, 5, 0)
v <- c(1, 0, 3)
sum(u * v)[1] 1
## Example 128
v <- c(1, 2, 3)
sqrt(sum(v * v))[1] 3.741657
## Example 129
v <- c(1, 2, 3)
u <- c(2, 2, 2)
sqrt(sum((v - u)^2))[1] 1.414214
In \(\mathbb{R}^d\), we have
## Example 126
u <- c(1, 5, 0)
v <- c(1, 0, 3)
sum(u * v)[1] 1
## Example 128
v <- c(1, 2, 3)
sqrt(sum(v * v))[1] 3.741657
## Example 129
v <- c(1, 2, 3)
u <- c(2, 2, 2)
sqrt(sum((v - u)^2))[1] 1.414214
Properties:
df <- USArrests
df <- na.omit(df)
df <- scale(df)
# nstart is the number of random starting points
clusters <- kmeans(df, 4, nstart = 10)
library(factoextra)Loading required package: ggplot2
Warning: package 'ggplot2' was built under R version 4.2.3
Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
fviz_cluster(clusters, df)### Practical Applications
library(animation)
kmeans.ani(df, 4)fviz_nbclust(df, kmeans, method = "wss")k-means clustering - Wikipedia
library(ggplot2)
library(ggfortify)
library(gridExtra)
df <- USArrests
df <- na.omit(df)
df <- scale(df)
pc <- prcomp(df, scale=TRUE)
autoplot(pc, data=df)#pca<- princomp(data.frame(scale(df)))
#pca$loadings## Example 137
library(pracma)
library(MASS)
A <- matrix(c(1, 1, 1, 1, 1, 0, 0, 0, 1), 3, 3, byrow = TRUE)
B <- orth(A)
fractions(B) [,1] [,2]
[1,] -780/989 209/989
[2,] -571/989 -571/989
[3,] -153/724 571/724
library(MASS)
library(pracma)
A <- matrix(c(1, 1, 1, 1, 1, 0, 0, 0, 1), 3, 3, byrow = TRUE)
#A <-matrix(c(1,1,1,1,1,0,0,0,1),3,3,byrow=TRUE)
Null(t(A)) [,1]
[1,] -7.071068e-01
[2,] 7.071068e-01
[3,] -1.110223e-16
fractions(Null(t(A))) [,1]
[1,] -5741/8119
[2,] 2378/3363
[3,] 0
rref(A) [,1] [,2] [,3]
[1,] 1 1 0
[2,] 0 0 1
[3,] 0 0 0
library(ISLR)
data(Hitters)
D <- na.omit(Hitters)
dim(Hitters)[1] 322 20
Hitters[1,] AtBat Hits HmRun Runs RBI Walks Years CAtBat CHits CHmRun CRuns
-Andy Allanson 293 66 1 30 29 14 1 293 66 1 30
CRBI CWalks League Division PutOuts Assists Errors Salary
-Andy Allanson 29 14 A E 446 33 20 NA
NewLeague
-Andy Allanson A
library(pracma)
res <- odregress(as.matrix(D[,1:2]), as.matrix(D$Salary))
res$coeff[1] -43.53176 150.65796 1861.91571
(see Vector projection - Wikipedia)