This is an R Markdown
Notebook. When you execute code within the notebook, the results appear
beneath the code.
Try executing this chunk by clicking the Run button within
the chunk or by placing your cursor inside it and pressing
Cmd+Shift+Enter.
1 a) Hyperplane: 1 + 3X1 - X2 = 0
This equation represents a straight line in a two-dimensional plane.
It can be rewritten as:
X2 = 3X1 + 1
This line has a slope of 3 and a y-intercept of 1. It divides the
plane into three parts:
On the line: The equation is exactly 1 + 3X1 - X2 = 0.
Above the line: Points where X2 is less than 3X1 + 1. In this region,
the expression 1 + 3X1 - X2 is greater than 0.
Below the line: Points where X2 is greater than 3X1 + 1. In this
region, the expression 1 + 3X1 - X2 is less than 0.
So, the hyperplane separates the space into two regions: one where
the expression is positive and one where it is negative.
(b) Hyperplane: -2 + X1 + 2X2 = 0
This is also a straight line in the two-dimensional space. It can be
rewritten as:
X2 = (-X1 + 2) / 2
This line has a slope of -0.5 and a y-intercept of 1. It divides the
plane into three parts:
On the line: The equation is exactly -2 + X1 + 2X2 = 0.
Above the line: Points where X2 is greater than (-X1 + 2) / 2. In
this region, the expression -2 + X1 + 2X2 is greater than 0.
Below the line: Points where X2 is less than (-X1 + 2) / 2. In this
region, the expression -2 + X1 + 2X2 is less than 0.
Again, the hyperplane separates the space into two regions based on
whether the expression is positive or negative.
library(ggplot2)
# Create grid of values
x1_vals <- seq(-10, 10, length.out = 400)
x2_vals <- seq(-10, 10, length.out = 400)
grid <- expand.grid(X1 = x1_vals, X2 = x2_vals)
# Calculate the hyperplane values
grid$z1 <- 1 + 3 * grid$X1 - grid$X2
grid$z2 <- -2 + grid$X1 + 2 * grid$X2
# Plot
ggplot(grid, aes(x = X1, y = X2)) +
# Region for hyperplane 1
geom_raster(aes(fill = factor(sign(z1))), alpha = 0.3) +
scale_fill_manual(values = c("-1" = "#add8e6", "1" = "#0000ff"), name = "1 + 3X1 - X2") +
# Region for hyperplane 2 (fixed)
geom_raster(data = grid, aes(x = X1, y = X2, alpha = factor(sign(z2))), fill = "green") +
scale_alpha_manual(values = c("1" = 0.2, "-1" = 0.5), guide = FALSE) +
# Add contour lines for both hyperplanes
geom_contour(aes(z = z1), breaks = 0, color = "blue", size = 1) +
geom_contour(aes(z = z2), breaks = 0, color = "darkgreen", size = 1) +
labs(title = "Hyperplanes and Regions",
x = "X1", y = "X2") +
theme_minimal() +
coord_fixed()
Warning: The `guide` argument in `scale_*()` cannot be `FALSE`. This was deprecated in ggplot2 3.3.4.
ℹ Please use "none" instead.
This warning is displayed once every 8 hours.
Call `lifecycle::last_lifecycle_warnings()` to see where this warning was generated.

2) Exploring a Non-Linear Decision Boundary in Two Dimensions
library(ggplot2)
# Create a grid of values
x1_vals <- seq(-5, 5, length.out = 400)
x2_vals <- seq(-5, 10, length.out = 400)
grid <- expand.grid(X1 = x1_vals, X2 = x2_vals)
# Compute the decision value
grid$Z <- (1 + grid$X1)^2 + (2 - grid$X2)^2
# Define points to classify
points <- data.frame(
X1 = c(0, -1, 2, 3),
X2 = c(0, 1, 2, 8),
label = c("(0,0)", "(-1,1)", "(2,2)", "(3,8)")
)
points$class <- ifelse((1 + points$X1)^2 + (2 - points$X2)^2 > 4, "Blue", "Red")
# Plot
ggplot(grid, aes(x = X1, y = X2)) +
# Fill regions
geom_raster(aes(fill = Z <= 4), alpha = 0.4) +
scale_fill_manual(values = c("TRUE" = "#add8e6", "FALSE" = "#ff9999"),
labels = c("<= 4", "> 4"),
name = "Decision Value") +
# Contour line where Z = 4
geom_contour(aes(z = Z), breaks = 4, color = "black", size = 1) +
# Points and labels
geom_point(data = points, aes(x = X1, y = X2, color = class), size = 3) +
geom_text(data = points, aes(label = label), hjust = -0.3, vjust = -0.3, size = 3.5) +
scale_color_manual(values = c("Red" = "red", "Blue" = "blue")) +
# Labels and theme
labs(title = "Non-linear Decision Boundary",
subtitle = "(1 + X1)^2 + (2 - X2)^2 = 4",
x = "X1", y = "X2") +
coord_fixed() +
theme_minimal()

(a) Curve: (1 + X1)^2 + (2 - X2)^2 = 4
This equation represents a circle in two-dimensional space. The
center of the circle is at the point (-1, 2), and the radius is 2 units.
The curve itself is the set of all points that lie exactly 2 units away
from the center.
(b) Region interpretation
The circle divides the plane into two regions: Inside the circle:
This includes all points where (1 + X1)^2 + (2 - X2)^2 is less than or
equal to 4. Outside the circle: This includes all points where (1 +
X1)^2 + (2 - X2)^2 is greater than 4.
(c) Classification of points
Suppose we classify a point as blue if (1 + X1)^2 + (2 - X2)^2 is
greater than 4, and red otherwise. Then:
The point (0, 0) is classified as blue, because the value is 5. The
point (-1, 1) is classified as red, because the value is 1. The point
(2, 2) is classified as blue, because the value is 9. The point (3, 8)
is classified as blue, because the value is 52.
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKVGhpcyBpcyBhbiBbUiBNYXJrZG93bl0oaHR0cDovL3JtYXJrZG93bi5yc3R1ZGlvLmNvbSkgTm90ZWJvb2suIFdoZW4geW91IGV4ZWN1dGUgY29kZSB3aXRoaW4gdGhlIG5vdGVib29rLCB0aGUgcmVzdWx0cyBhcHBlYXIgYmVuZWF0aCB0aGUgY29kZS4gCgpUcnkgZXhlY3V0aW5nIHRoaXMgY2h1bmsgYnkgY2xpY2tpbmcgdGhlICpSdW4qIGJ1dHRvbiB3aXRoaW4gdGhlIGNodW5rIG9yIGJ5IHBsYWNpbmcgeW91ciBjdXJzb3IgaW5zaWRlIGl0IGFuZCBwcmVzc2luZyAqQ21kK1NoaWZ0K0VudGVyKi4gCgotLS0tCgojIDEgYSkgSHlwZXJwbGFuZTogMSArIDNYMSAtIFgyID0gMAoKVGhpcyBlcXVhdGlvbiByZXByZXNlbnRzIGEgc3RyYWlnaHQgbGluZSBpbiBhIHR3by1kaW1lbnNpb25hbCBwbGFuZS4gSXQgY2FuIGJlIHJld3JpdHRlbiBhczoKClgyID0gM1gxICsgMQoKVGhpcyBsaW5lIGhhcyBhIHNsb3BlIG9mIDMgYW5kIGEgeS1pbnRlcmNlcHQgb2YgMS4gSXQgZGl2aWRlcyB0aGUgcGxhbmUgaW50byB0aHJlZSBwYXJ0czoKCk9uIHRoZSBsaW5lOiBUaGUgZXF1YXRpb24gaXMgZXhhY3RseSAxICsgM1gxIC0gWDIgPSAwLgoKQWJvdmUgdGhlIGxpbmU6IFBvaW50cyB3aGVyZSBYMiBpcyBsZXNzIHRoYW4gM1gxICsgMS4gSW4gdGhpcyByZWdpb24sIHRoZSBleHByZXNzaW9uIDEgKyAzWDEgLSBYMiBpcyBncmVhdGVyIHRoYW4gMC4KCkJlbG93IHRoZSBsaW5lOiBQb2ludHMgd2hlcmUgWDIgaXMgZ3JlYXRlciB0aGFuIDNYMSArIDEuIEluIHRoaXMgcmVnaW9uLCB0aGUgZXhwcmVzc2lvbiAxICsgM1gxIC0gWDIgaXMgbGVzcyB0aGFuIDAuCgpTbywgdGhlIGh5cGVycGxhbmUgc2VwYXJhdGVzIHRoZSBzcGFjZSBpbnRvIHR3byByZWdpb25zOiBvbmUgd2hlcmUgdGhlIGV4cHJlc3Npb24gaXMgcG9zaXRpdmUgYW5kIG9uZSB3aGVyZSBpdCBpcyBuZWdhdGl2ZS4KCiMgKGIpIEh5cGVycGxhbmU6IC0yICsgWDEgKyAyWDIgPSAwCgpUaGlzIGlzIGFsc28gYSBzdHJhaWdodCBsaW5lIGluIHRoZSB0d28tZGltZW5zaW9uYWwgc3BhY2UuIEl0IGNhbiBiZSByZXdyaXR0ZW4gYXM6CgpYMiA9ICgtWDEgKyAyKSAvIDIKClRoaXMgbGluZSBoYXMgYSBzbG9wZSBvZiAtMC41IGFuZCBhIHktaW50ZXJjZXB0IG9mIDEuIEl0IGRpdmlkZXMgdGhlIHBsYW5lIGludG8gdGhyZWUgcGFydHM6CgpPbiB0aGUgbGluZTogVGhlIGVxdWF0aW9uIGlzIGV4YWN0bHkgLTIgKyBYMSArIDJYMiA9IDAuCgpBYm92ZSB0aGUgbGluZTogUG9pbnRzIHdoZXJlIFgyIGlzIGdyZWF0ZXIgdGhhbiAoLVgxICsgMikgLyAyLiBJbiB0aGlzIHJlZ2lvbiwgdGhlIGV4cHJlc3Npb24gLTIgKyBYMSArIDJYMiBpcyBncmVhdGVyIHRoYW4gMC4KCkJlbG93IHRoZSBsaW5lOiBQb2ludHMgd2hlcmUgWDIgaXMgbGVzcyB0aGFuICgtWDEgKyAyKSAvIDIuIEluIHRoaXMgcmVnaW9uLCB0aGUgZXhwcmVzc2lvbiAtMiArIFgxICsgMlgyIGlzIGxlc3MgdGhhbiAwLgoKQWdhaW4sIHRoZSBoeXBlcnBsYW5lIHNlcGFyYXRlcyB0aGUgc3BhY2UgaW50byB0d28gcmVnaW9ucyBiYXNlZCBvbiB3aGV0aGVyIHRoZSBleHByZXNzaW9uIGlzIHBvc2l0aXZlIG9yIG5lZ2F0aXZlLgoKYGBge3J9CmxpYnJhcnkoZ2dwbG90MikKCiMgQ3JlYXRlIGdyaWQgb2YgdmFsdWVzCngxX3ZhbHMgPC0gc2VxKC0xMCwgMTAsIGxlbmd0aC5vdXQgPSA0MDApCngyX3ZhbHMgPC0gc2VxKC0xMCwgMTAsIGxlbmd0aC5vdXQgPSA0MDApCmdyaWQgPC0gZXhwYW5kLmdyaWQoWDEgPSB4MV92YWxzLCBYMiA9IHgyX3ZhbHMpCgojIENhbGN1bGF0ZSB0aGUgaHlwZXJwbGFuZSB2YWx1ZXMKZ3JpZCR6MSA8LSAxICsgMyAqIGdyaWQkWDEgLSBncmlkJFgyCmdyaWQkejIgPC0gLTIgKyBncmlkJFgxICsgMiAqIGdyaWQkWDIKCiMgUGxvdApnZ3Bsb3QoZ3JpZCwgYWVzKHggPSBYMSwgeSA9IFgyKSkgKwogICMgUmVnaW9uIGZvciBoeXBlcnBsYW5lIDEKICBnZW9tX3Jhc3RlcihhZXMoZmlsbCA9IGZhY3RvcihzaWduKHoxKSkpLCBhbHBoYSA9IDAuMykgKwogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMoIi0xIiA9ICIjYWRkOGU2IiwgIjEiID0gIiMwMDAwZmYiKSwgbmFtZSA9ICIxICsgM1gxIC0gWDIiKSArCiAgCiAgIyBSZWdpb24gZm9yIGh5cGVycGxhbmUgMiAoZml4ZWQpCiAgZ2VvbV9yYXN0ZXIoZGF0YSA9IGdyaWQsIGFlcyh4ID0gWDEsIHkgPSBYMiwgYWxwaGEgPSBmYWN0b3Ioc2lnbih6MikpKSwgZmlsbCA9ICJncmVlbiIpICsKICBzY2FsZV9hbHBoYV9tYW51YWwodmFsdWVzID0gYygiMSIgPSAwLjIsICItMSIgPSAwLjUpLCBndWlkZSA9IEZBTFNFKSArCiAgCiAgIyBBZGQgY29udG91ciBsaW5lcyBmb3IgYm90aCBoeXBlcnBsYW5lcwogIGdlb21fY29udG91cihhZXMoeiA9IHoxKSwgYnJlYWtzID0gMCwgY29sb3IgPSAiYmx1ZSIsIHNpemUgPSAxKSArCiAgZ2VvbV9jb250b3VyKGFlcyh6ID0gejIpLCBicmVha3MgPSAwLCBjb2xvciA9ICJkYXJrZ3JlZW4iLCBzaXplID0gMSkgKwogIAogIGxhYnModGl0bGUgPSAiSHlwZXJwbGFuZXMgYW5kIFJlZ2lvbnMiLAogICAgICAgeCA9ICJYMSIsIHkgPSAiWDIiKSArCiAgdGhlbWVfbWluaW1hbCgpICsKICBjb29yZF9maXhlZCgpCgpgYGAKCgojIDIpIEV4cGxvcmluZyBhIE5vbi1MaW5lYXIgRGVjaXNpb24gQm91bmRhcnkgaW4gVHdvIERpbWVuc2lvbnMKCmBgYHtyfQpsaWJyYXJ5KGdncGxvdDIpCgojIENyZWF0ZSBhIGdyaWQgb2YgdmFsdWVzCngxX3ZhbHMgPC0gc2VxKC01LCA1LCBsZW5ndGgub3V0ID0gNDAwKQp4Ml92YWxzIDwtIHNlcSgtNSwgMTAsIGxlbmd0aC5vdXQgPSA0MDApCmdyaWQgPC0gZXhwYW5kLmdyaWQoWDEgPSB4MV92YWxzLCBYMiA9IHgyX3ZhbHMpCgojIENvbXB1dGUgdGhlIGRlY2lzaW9uIHZhbHVlCmdyaWQkWiA8LSAoMSArIGdyaWQkWDEpXjIgKyAoMiAtIGdyaWQkWDIpXjIKCiMgRGVmaW5lIHBvaW50cyB0byBjbGFzc2lmeQpwb2ludHMgPC0gZGF0YS5mcmFtZSgKICBYMSA9IGMoMCwgLTEsIDIsIDMpLAogIFgyID0gYygwLCAxLCAyLCA4KSwKICBsYWJlbCA9IGMoIigwLDApIiwgIigtMSwxKSIsICIoMiwyKSIsICIoMyw4KSIpCikKcG9pbnRzJGNsYXNzIDwtIGlmZWxzZSgoMSArIHBvaW50cyRYMSleMiArICgyIC0gcG9pbnRzJFgyKV4yID4gNCwgIkJsdWUiLCAiUmVkIikKCiMgUGxvdApnZ3Bsb3QoZ3JpZCwgYWVzKHggPSBYMSwgeSA9IFgyKSkgKwogICMgRmlsbCByZWdpb25zCiAgZ2VvbV9yYXN0ZXIoYWVzKGZpbGwgPSBaIDw9IDQpLCBhbHBoYSA9IDAuNCkgKwogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMoIlRSVUUiID0gIiNhZGQ4ZTYiLCAiRkFMU0UiID0gIiNmZjk5OTkiKSwKICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKCI8PSA0IiwgIj4gNCIpLAogICAgICAgICAgICAgICAgICAgIG5hbWUgPSAiRGVjaXNpb24gVmFsdWUiKSArCiAgCiAgIyBDb250b3VyIGxpbmUgd2hlcmUgWiA9IDQKICBnZW9tX2NvbnRvdXIoYWVzKHogPSBaKSwgYnJlYWtzID0gNCwgY29sb3IgPSAiYmxhY2siLCBzaXplID0gMSkgKwogIAogICMgUG9pbnRzIGFuZCBsYWJlbHMKICBnZW9tX3BvaW50KGRhdGEgPSBwb2ludHMsIGFlcyh4ID0gWDEsIHkgPSBYMiwgY29sb3IgPSBjbGFzcyksIHNpemUgPSAzKSArCiAgZ2VvbV90ZXh0KGRhdGEgPSBwb2ludHMsIGFlcyhsYWJlbCA9IGxhYmVsKSwgaGp1c3QgPSAtMC4zLCB2anVzdCA9IC0wLjMsIHNpemUgPSAzLjUpICsKICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gYygiUmVkIiA9ICJyZWQiLCAiQmx1ZSIgPSAiYmx1ZSIpKSArCiAgCiAgIyBMYWJlbHMgYW5kIHRoZW1lCiAgbGFicyh0aXRsZSA9ICJOb24tbGluZWFyIERlY2lzaW9uIEJvdW5kYXJ5IiwKICAgICAgIHN1YnRpdGxlID0gIigxICsgWDEpXjIgKyAoMiAtIFgyKV4yID0gNCIsCiAgICAgICB4ID0gIlgxIiwgeSA9ICJYMiIpICsKICBjb29yZF9maXhlZCgpICsKICB0aGVtZV9taW5pbWFsKCkKYGBgCgojIChhKSBDdXJ2ZTogKDEgKyBYMSleMiArICgyIC0gWDIpXjIgPSA0CgpUaGlzIGVxdWF0aW9uIHJlcHJlc2VudHMgYSBjaXJjbGUgaW4gdHdvLWRpbWVuc2lvbmFsIHNwYWNlLgpUaGUgY2VudGVyIG9mIHRoZSBjaXJjbGUgaXMgYXQgdGhlIHBvaW50ICgtMSwgMiksIGFuZCB0aGUgcmFkaXVzIGlzIDIgdW5pdHMuClRoZSBjdXJ2ZSBpdHNlbGYgaXMgdGhlIHNldCBvZiBhbGwgcG9pbnRzIHRoYXQgbGllIGV4YWN0bHkgMiB1bml0cyBhd2F5IGZyb20gdGhlIGNlbnRlci4KCiMgKGIpIFJlZ2lvbiBpbnRlcnByZXRhdGlvbgoKVGhlIGNpcmNsZSBkaXZpZGVzIHRoZSBwbGFuZSBpbnRvIHR3byByZWdpb25zOgpJbnNpZGUgdGhlIGNpcmNsZTogVGhpcyBpbmNsdWRlcyBhbGwgcG9pbnRzIHdoZXJlICgxICsgWDEpXjIgKyAoMiAtIFgyKV4yIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byA0LgpPdXRzaWRlIHRoZSBjaXJjbGU6IFRoaXMgaW5jbHVkZXMgYWxsIHBvaW50cyB3aGVyZSAoMSArIFgxKV4yICsgKDIgLSBYMileMiBpcyBncmVhdGVyIHRoYW4gNC4KCiMgKGMpIENsYXNzaWZpY2F0aW9uIG9mIHBvaW50cwoKU3VwcG9zZSB3ZSBjbGFzc2lmeSBhIHBvaW50IGFzIGJsdWUgaWYgKDEgKyBYMSleMiArICgyIC0gWDIpXjIgaXMgZ3JlYXRlciB0aGFuIDQsIGFuZCByZWQgb3RoZXJ3aXNlLiBUaGVuOgoKVGhlIHBvaW50ICgwLCAwKSBpcyBjbGFzc2lmaWVkIGFzIGJsdWUsIGJlY2F1c2UgdGhlIHZhbHVlIGlzIDUuClRoZSBwb2ludCAoLTEsIDEpIGlzIGNsYXNzaWZpZWQgYXMgcmVkLCBiZWNhdXNlIHRoZSB2YWx1ZSBpcyAxLgpUaGUgcG9pbnQgKDIsIDIpIGlzIGNsYXNzaWZpZWQgYXMgYmx1ZSwgYmVjYXVzZSB0aGUgdmFsdWUgaXMgOS4KVGhlIHBvaW50ICgzLCA4KSBpcyBjbGFzc2lmaWVkIGFzIGJsdWUsIGJlY2F1c2UgdGhlIHZhbHVlIGlzIDUyLgoKIyAoZCkgTGluZWFyaXR5IGluIHRyYW5zZm9ybWVkIHZhcmlhYmxlcwoKQWx0aG91Z2ggdGhlIGRlY2lzaW9uIGJvdW5kYXJ5ICh0aGUgY2lyY2xlKSBpcyBub3QgYSBzdHJhaWdodCBsaW5lIHdoZW4gdmlld2VkIGluIHRlcm1zIG9mIHRoZSBvcmlnaW5hbCB2YXJpYWJsZXMgWDEgYW5kIFgyLCBpdCBiZWNvbWVzIGEgbGluZWFyIGJvdW5kYXJ5IHdoZW4gd2UgdXNlIHRyYW5zZm9ybWVkIHZhcmlhYmxlczoKCjEuIFgxCjIuIFgxIHNxdWFyZWQKMy4gWDIKNC4gWDIgc3F1YXJlZAoKaWYgd2UgaW5jbHVkZSBib3RoIHRoZSBvcmlnaW5hbCB2YXJpYWJsZXMgYW5kIHRoZWlyIHNxdWFyZXMgYXMgbmV3IGZlYXR1cmVzLCB0aGVuIHRoZSBlcXVhdGlvbiBiZWNvbWVzIGEgbGluZWFyIGNvbWJpbmF0aW9uIG9mIHRob3NlIGZlYXR1cmVzLiBTbywgdGhlIGJvdW5kYXJ5IGlzIG5vbi1saW5lYXIgaW4gdGhlIG9yaWdpbmFsIHNwYWNlIGJ1dCBsaW5lYXIgaW4gdGhlIHRyYW5zZm9ybWVkIGZlYXR1cmUgc3BhY2UuCg==