knn.ani
41
ani.options(interval = 2)
par(mar = c(3, 3, 1, 1.5), mgp = c(1.5, 0.5, 0))
cent = 1.5 * c(1, 1, -1, -1, 1, -1, 1, -1)
x = NULL
for (i in 1:8) x = c(x, rnorm(25, mean = cent[i]))
x = matrix(x, ncol = 2)
colnames(x) = c("X1", "X2")
kmeans.ani(x, centers = 4, pch = 1:4, col = 1:4)
}, img.name = "kmeans.ani", htmlfile = "kmeans.ani.html", ani.height = 480,
ani.width = 480, title = "Demonstration of the K-means Cluster Algorithm",
description = "Move! Average! Cluster! Move! Average! Cluster! ...")
ani.options(oopt)
knn.ani
Demonstration of the k-Nearest Neighbour classification
Description
Demonstrate the process of k-Nearest Neighbour classification onthe 2D plane.
Usage
knn.ani(train, test, cl, k = 10, interact = FALSE, tt.col = c("blue", "red"),
cl.pch = seq_along(unique(cl)), dist.lty = 2, dist.col = "gray", knn.col = "green",
...)
Arguments
train
matrix or data frame of training set cases containing only 2 columns
test
matrix or data frame of test set cases. A vector will be interpreted as a row
vector for a single case. It should alsocontainonly 2columns. This dataset will
be ignored if interact = TRUE; see interact below.
cl
factor of true classifications of training set
k
number of neighbours considered.
interact
logical. If TRUE, the user will have to choose a test set for himself using mouse
click on the screen; otherwise compute kNN classification based on argument
test.
tt.col
avector of length 2 specifying the colors for the training data and test data.
cl.pch
avector specifying symbols for each class
dist.lty, dist.col
the line type and color to annotate the distances
knn.col
the color to annotate the k-nearest neighbour points using a polygon
...
additional arguments to create the empty frame for the animation (passed to
plot.default)
Pdf bookmark - add, remove, update PDF bookmarks in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your C# Project with Rapid PDF Internal Navigation Via Bookmark and Outline
bookmark template pdf; how to create bookmark in pdf automatically
Pdf bookmark - VB.NET PDF bookmark library: add, remove, update PDF bookmarks in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your VB.NET Project with Rapid PDF Internal Navigation Via Bookmark and Outline
export pdf bookmarks to text file; excel print to pdf with bookmarks
42
knn.ani
Details
For each row of the test set, the k nearest (inEuclidean distance) trainingset vectors are found, and
the classification is decided by majority vote, with ties broken at random. For a single test sample
point, the basic steps are:
1. locate the test point
2. compute the distances between the test point and all points in the training set
3. find k shortest distances and the corresponding training set points
4. vote for the result (find the maximum in the table for the true classifications)
As thereare four steps in an iteration, the totalnumber of animationframes shouldbe 4 * min(nrow(test), ani.options(nmax))
at last.
Value
Avector of class labels for the test set.
Note
There is a special restriction (onlytwocolumns) onthe trainingand test data set just for sake of the
conveniencefor makinga scatterplot. This is onlya rough demonstration;for practicalapplications,
please refer to existing kNN functions such asknn in class, etc.
If either one of train andtest is missing, there’ll be random matrices prepared for them. (It’s the
same for cl.)
Author(s)
Yihui Xie
References
Venables, W. N. andRipley, B. D. (2002) ModernAppliedStatisticswithS.Fourthedition. Springer.
See Also
knn
Examples
## a binary classification problem
oopt = ani.options(interval = 2, nmax = ifelse(interactive(), 10, 2))
x = matrix(c(rnorm(80, mean = -1), rnorm(80, mean = 1)), ncol = 2, byrow = TRUE)
y = matrix(rnorm(20, mean = 0, sd = 1.2), ncol = 2)
knn.ani(train = x, test = y, cl = rep(c("first class", "second class"),
each = 40), k = 30)
x = matrix(c(rnorm(30, mean = -2), rnorm(30, mean = 2), rnorm(30, mean = 0)),
ncol = 2, byrow = TRUE)
y = matrix(rnorm(20, sd = 2), ncol = 2)
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
C#.NET PDF file & pages edit, C#.NET PDF pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET search text in PDF, C#.NET edit PDF bookmark, C#.NET edit
bookmarks in pdf reader; pdf reader with bookmarks
C# PDF Library SDK to view, edit, convert, process PDF file for C#
RasterEdge PDF SDK for .NET package offers robust APIs for editing PDF document hyperlink (url) and quick navigation link in PDF bookmark.
delete bookmarks pdf; how to add bookmarks on pdf
least.squares
43
knn.ani(train = x, test = y, cl = rep(c("first", "second", "third"),
each = 15), k = 25, cl.pch = c(2, 3, 19), dist.lty = 3)
## an interactive demo: choose the test set by mouse-clicking
if (interactive()) {
ani.options(nmax = 5)
knn.ani(interact = TRUE)
}
## HTML page
saveHTML({
ani.options(nmax = ifelse(interactive(), 10, 2), interval = 2)
par(mar = c(3, 3, 1, 0.5), mgp = c(1.5, 0.5, 0))
knn.ani(cl.pch = c(3, 19), asp = 1)
}, img.name = "knn_ani", htmlfile = "knn.ani.html", ani.height = 500,
ani.width = 600, title = "Demonstration for kNN Classification",
description = c("For each row of the test set", "the k nearest (in Euclidean",
"distance) training set vectors are found, and the classification is",
"decided by majority vote, with ties broken at random."))
ani.options(oopt)
least.squares
Demonstrate the least squares method
Description
This is a simple demonstration of the meaning of least squares in univariate linear regression.
Usage
least.squares(x, y, n = 15, ani.type = c("slope", "intercept"), a, b, a.range, b.range,
ab.col = c("gray", "black"), est.pch = 19, v.col = "red", v.lty = 2, rss.pch = 19,
rss.type = "o", mfrow = c(1, 2), ...)
Arguments
x
anumeric vector: the independent variable
y
anumeric vector: the dependent variable
n
thesamplesize: whenxand yaremissing, we usesimulatedvaluesof y(x = 1:n
and y = a + b * x + rnorm(n))
ani.type
slope: the slopeis changing withtheintercept fixed; intercept: intercept
changing and slope fixed
a, b
the fixed intercept and slope; depending on ani.type, we only need to specify
one of them; e.g. when ani.type == slope, we needto specify the value of
a
VB.NET PDF File Split Library: Split, seperate PDF into multiple
Split PDF document by PDF bookmark and outlines in VB.NET. Independent component for splitting PDF document in preview without using external PDF control.
create pdf bookmarks online; how to bookmark a pdf page
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
key. Quick to remove watermark and save PDF text, image, table, hyperlink and bookmark to Word without losing format. Powerful components
bookmarks in pdf; creating bookmarks in pdf files
44
least.squares
a.range, b.range
avector of length 2 to define the range of the intercept and the slope; only one
of them need to be specified; see above
ab.col
the colors of two lines: the real regression line and the moving line with either
intercept or slope changing
est.pch
the point character of the ’estimated’ values given x
v.col, v.lty
the color and line type of the vetical lines which demonstrate the residuals
rss.pch, rss.type
the point character and plot type of the residual plot
mfrow
defines the layout of the graph; seepar
...
other parameters passed toplot to define the appearance of the scatterplot
Details
With either the intercept or the slope changing, the lines will be moving in the graph and corre-
sponding residuals will be plotted. We can finally see the best estimate of the intercept and the
slope from the residual plot.
Value
The value returned depends on the animation type.
If it is a slope animation, the value will be a list containing
lmfit
the estimates of the intercept and slope withlm
anifit
the estimate of the slope in the animation
If it is an intercept animation, the second component of the above list will be the estimate of the
intercept.
Note the estimate will not be precise generally.
Note
ani.options(nmax) specifies the maximum number of steps for the slope or intercept to move.
Author(s)
Yihui Xie
See Also
lm
C# Create PDF from Word Library to convert docx, doc to PDF in C#.
Able to get word count in PDF pages. Change Word hyperlink to PDF hyperlink and bookmark. Free online Word to PDF converter without email.
bookmark pdf in preview; create bookmark in pdf automatically
How to C#: Basic SDK Concept of XDoc.PDF for .NET
XDoc.PDF for .NET allows C# developers to edit hyperlink of PDF document, including editing PDF url links and quick navigation link in bookmark/outline.
create bookmark pdf file; creating bookmarks in pdf documents
lln.ani
45
Examples
par(mar = c(5, 4, 0.5, 0.1))
oopt = ani.options(interval = 0.3, nmax = ifelse(interactive(),
50, 2))
## default animation: with slope changing
least.squares()
## intercept changing
least.squares(ani.type = "intercept")
## save the animation in HTML pages
saveHTML({
ani.options(interval = 0.3, nmax = ifelse(interactive(), 50,
2))
par(mar = c(4, 4, 0.5, 0.1), mgp = c(2, 0.5, 0), tcl = -0.3)
least.squares()
}, img.name = "least.squares", htmlfile = "least.squares.html",
ani.height = 450, ani.width = 600, title = "Demonstration of Least Squares",
description = c("We want to find an estimate for the slope",
"in 50 candidate slopes, so we just compute the RSS one by one. "))
ani.options(oopt)
lln.ani
Demonstration of Law of Large Numbers
Description
This function plots the sample mean as the sample size grows to check whether the sample mean
approaches to the population mean.
Usage
lln.ani(FUN = rnorm, mu = 0, np = 30, pch = 20, col.poly = "bisque", col.mu = "gray",
...)
Arguments
FUN
afunction to generaterandom numbersfrom acertaindistribution: function(n, mu)
mu
population mean; passed to FUN
np
times for sampling from a distribution (not the sample size!); to examine the
behaviour of the sample mean, we need more times of sampling to get a series
of mean values
pch
symbols for points; see Details
col.poly
the color of the polygon to annotate the range of sample means
col.mu
the color of the horizontal line which denotes the population mean
...
other arguments passed topoints
VB.NET PDF - WPF PDF Viewer for VB.NET Program
C#.NET PDF file & pages edit, C#.NET PDF pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET search text in PDF, C#.NET edit PDF bookmark, C#.NET edit
adding bookmarks to pdf document; how to create bookmark in pdf with
VB.NET Create PDF from Word Library to convert docx, doc to PDF in
Ability to get word count of PDF pages. Change Word hyperlink to PDF hyperlink and bookmark. Free online Word to PDF converter without email.
adding bookmarks to pdf; add bookmark to pdf reader
46
lln.ani
Details
np points are plotted to denote the distribution of the sample mean; we will observe that the range
of the sample mean just becomes smaller and smaller as the sample size increases and ultimately
there will be an obvious trend that the sample mean converges to the population mean mu.
The parameter nmax inani.options means the maximum sample size.
Value
None (invisible NULL).
Note
The argument pch will influence the speed of plotting, and for a very large sample size (say, 300),
it is suggested that this argument be specified as ‘.’.
Author(s)
Yihui Xie
References
http://vis.supstat.com/2013/04/law-of-large-numbers/
Examples
oopt = ani.options(interval = 0.01, nmax = ifelse(interactive(), 150,
2))
lln.ani(pch = ".")
## chi-square distribution; population mean = df
lln.ani(FUN = function(n, mu) rchisq(n, df = mu), mu = 5, cex = 0.6)
## save the animation in HTML pages
saveHTML({
par(mar = c(3, 3, 1, 0.5), mgp = c(1.5, 0.5, 0))
ani.options(interval = 0.1, nmax = ifelse(interactive(), 150, 2))
lln.ani(cex = 0.6)
}, img.name = "lln.ani", htmlfile = "lln.ani.html", ani.height = 480,
ani.width = 600, title = "Demonstration of the Law of Large Numbers",
description = c("The sample mean approaches to the population mean as",
"the sample size n grows."))
ani.options(oopt)
MC.hitormiss
47
MC.hitormiss
Hit or Miss Monte Carlo integration
Description
Integrate a function using the Hit-or-Miss Monte Carlo algorithm.
Usage
MC.hitormiss(FUN = function(x) x - x^2, n = ani.options("nmax"), from = 0, to = 1,
col.points = c("black", "red"), pch.points = c(20, 4), ...)
Arguments
FUN
the function to be integrated
n
number of points to be sampled from the Uniform(0, 1) distribution
from, to
the limits of integration
col.points, pch.points
colors and point characters for points which “hit” or “miss” the area under the
curve
...
other arguments passed topoints
Details
We compute the proportion of points hitting the area under the curve, and the integral can be esti-
mated by the proportion multiplied by the total area of the rectangle (from xmin to xmax, ymin to
ymax).
Value
Alist containing
x1
the Uniform random numbers generated on x-axis
x2
the Uniform random numbers generated on y-axis
y
function values evaluated at x1
n
number of points drawn from the Uniform distribtion
est
the estimated value of the integral
Note
This function is for demonstration purpose only; the integral might be very inaccurate when n is
small.
ani.options(nmax) specifies the maximum number of trials.
48
MC.samplemean
Author(s)
Yihui Xie
See Also
integrate, MC.samplemean
Examples
oopt = ani.options(interval = 0.2, nmax = ifelse(interactive(),
100, 2))
## should be close to 1/6
MC.hitormiss()$est
## should be close to 1/12
MC.hitormiss(from = 0.5, to = 1)$est
## HTML animation page
saveHTML({
ani.options(interval = 0.5, nmax = ifelse(interactive(), 100,
2))
MC.hitormiss()
}, img.name = "MC.hitormiss", htmlfile = "MC.hitormiss.html",
title = "Hit or Miss Monte Carlo Integration", description = c("",
"Generate Uniform random numbers", "and compute the proportion",
"of points under the curve."))
ani.options(oopt)
MC.samplemean
Sample Mean Monte Carlo integration
Description
Integrate a function from 0 to 1 using the Sample Mean Monte Carlo algorithm
Usage
MC.samplemean(FUN = function(x) x - x^2, n = ani.options("nmax"), col.rect = c("gray",
"black"), adj.x = TRUE, ...)
Arguments
FUN
the function to be integrated
n
number of points to be sampled from the Uniform(0, 1) distribution
col.rect
colors of rectangles (for the past rectangles and the current one)
MC.samplemean
49
adj.x
should the locations of rectangles on the x-axis be adjusted? If TRUE, the rectan-
gles will be laid side by side and it is informative for us to assess the total area
of the rectangles, otherwise the rectangles will be laid at their exact locations.
...
other arguments passed torect
Details
Sample Mean Monte Carlo integration can compute
I=
Z
1
0
f(x)dx
by drawing random numbers x
i
from Uniform(0, 1) distribution and average the values of f(x
i
).
As n goes to infinity, the sample mean will approach to the expectation of f(X) by Law of Large
Numbers.
The height of the i-th rectangle in the animation is f(x
i
)and the width is 1=n, so the total area
of all the rectangles is
P
f(x
i
)1=n, which is just the sample mean. We can compare the area of
rectangles to the curve to see how close is the area to the real integral.
Value
Alist containing
x
the Uniform random numbers
y
function values evaluated at x
n
number of points drawn from the Uniform distribtion
est
the estimated value of the integral
Note
This function is for demonstration purpose only; the integral might be very inaccurate when n is
small.
ani.options(nmax) specifies the maximum number of trials.
Author(s)
Yihui Xie
See Also
integrate, MC.hitormiss
50
moving.block
Examples
oopt = ani.options(interval = 0.2, nmax = ifelse(interactive(),
50, 2))
par(mar = c(4, 4, 1, 1))
## when the number of rectangles is large, use border = NA
MC.samplemean(border = NA)$est
integrate(function(x) x - x^2, 0, 1)
## when adj.x = FALSE, use semi-transparent colors
MC.samplemean(adj.x = FALSE, col.rect = c(rgb(0, 0, 0, 0.3), rgb(1,
0, 0)), border = NA)
## another function to be integrated
MC.samplemean(FUN = function(x) x^3 - 0.5^3, border = NA)$est
integrate(function(x) x^3 - 0.5^3, 0, 1)
## HTML animation page
saveHTML({
ani.options(interval = 0.3, nmax = ifelse(interactive(), 50,
2))
MC.samplemean(n = 100, border = NA)
}, img.name = "MC.samplemean", htmlfile = "MC.samplemean.html",
title = "Sample Mean Monte Carlo Integration", description = c("",
"Generate Uniform random numbers", " and compute the average",
"function values."))
ani.options(oopt)
moving.block
Cycle through an R object and plot each subset of elements
Description
For a long numeric vector or matrix (or data frame), we can plot only a subset of its elements to
take a closer look at its structure. With a moving “block” from the beginning to the end of a vector
or matrix or any R objects to which we can apply subset, all elements inside the block are plotted
as a line or scatter plot or any customized plots.
Usage
moving.block(dat = runif(100), block, FUN, ...)
Arguments
dat
anumeric vector or two-column matrix
block
block length (i.e. howmany elements are to be plotted in each step)
Documents you may be interested
Documents you may be interested