AIData Systems & AI LabProduct Analytics · Data Systems · AI Workflows · Decision InfrastructureContact
Open OS launcher

Modeling / analytics

ML Models

ML modeling connects supervised learning, unsupervised learning, regression, classification, clustering, forecasting, and anomaly detection to business questions.

model-selection-and-clustering-r.working-project

Machine learning · R

Model Selection and Clustering in R

Live

Reproducible credit-approval model validation and Iris k-means clustering with kernlab and kknn.

Business question

How do we select a predictive model without using the final test set, and evaluate clusters without fitting to species labels?

Compares KNN and linear SVM with stratified five-fold cross-validation and a 60/20/20 split. The full Iris script covers the elbow method, k-means, and an exploratory predictor comparison. Species labels score predictor sets; that comparison is not an untouched-test performance estimate.

RMachine LearningKNNSVMCross-validationClustering
View working project

code-proof.workspace

Model Selection and Clustering in R · source preview

1# Question 4.2: Iris clustering with k-means23data(iris)45dim(iris)6names(iris)7head(iris)8table(iris$Species)910# Step 2: I will Keep only the four predictors for k-means11# Species is not included.1213iris_predictors <- iris[, 1:4]1415head(iris_predictors)16summary(iris_predictors)1718# Step 3: Test possible numbers of clusters19# Elbow Method2021set.seed(6501)2223k_values <- 2:624within_ss <- numeric(length(k_values))2526for (i in seq_along(k_values)) {27  28  model <- kmeans(29    iris_predictors,30    centers = k_values[i],31    nstart = 5032  )33  34  within_ss[i] <- model$tot.withinss35}3637data.frame(38  k = k_values,39  total_within_cluster_sum_of_squares = within_ss40)4142plot(43  k_values,44  within_ss,45  type = "b",46  xlab = "Number of clusters (k)",47  ylab = "Total within-cluster sum of squares",48  main = "Elbow Method for Iris Data"49)5051# Step 4: Run k-means with k = 3 using all four predictors5253set.seed(6501)5455iris_kmeans_all <- kmeans(56  iris_predictors,57  centers = 3,58  nstart = 5059)6061cluster_table_all <- table(62  Cluster = iris_kmeans_all$cluster,63  Species = iris$Species64)6566cluster_table_all676869# Step 5: Compare all predictor combinations with k = 37071cluster_accuracy <- function(selected_predictors, actual_species) {72  73  set.seed(6501)74  75  model <- kmeans(76    selected_predictors,77    centers = 3,78    nstart = 5079  )80  81  comparison_table <- table(82    Cluster = model$cluster,83    Species = actual_species84  )85  86  sum(apply(comparison_table, 1, max)) / length(actual_species)87}8889predictor_names <- names(iris)[1:4]9091combination_results <- data.frame(92  predictors = character(),93  accuracy = numeric()94)9596for (size in seq_along(predictor_names)) {97  98  combinations <- combn(99    predictor_names,100    size,101    simplify = FALSE102  )103  104  for (variables in combinations) {105    106    current_accuracy <- cluster_accuracy(107      iris[, variables, drop = FALSE],108      iris$Species109    )110    111    combination_results <- rbind(112      combination_results,113      data.frame(114        predictors = paste(variables, collapse = " + "),115        accuracy = current_accuracy116      )117    )118  }119}120121combination_results <- combination_results[122  order(-combination_results$accuracy),123]124125combination_results126127128# Step 6: Final best k-means model129130best_predictors <- c(131  "Petal.Length",132  "Petal.Width"133)134135set.seed(6501)136137best_iris_model <- kmeans(138  iris[, best_predictors],139  centers = 3,140  nstart = 50141)142143best_cluster_table <- table(144  Cluster = best_iris_model$cluster,145  Species = iris$Species146)147148best_accuracy <- sum(149  apply(best_cluster_table, 1, max)150) / nrow(iris)151152best_cluster_table153best_accuracy

supervised-classification-r.working-project

Machine learning · R

Supervised Classification in R

Live

Binary credit-approval classification using linear SVM, KNN, and an optional RBF-SVM sensitivity analysis.

Business question

How do neighbor count, kernel choice, and regularization affect credit-approval classification?

Fits scaled SVM models, extracts the linear decision function, and compares odd KNN neighbor counts using leave-one-out cross-validation. SVM full-data accuracy is exploratory; it is not held-out test performance.

RMachine LearningClassificationSVMKNN
View working project

code-proof.workspace

Supervised Classification in R · source preview

1# Excerpt: data is loaded by the full script.2model <- ksvm(3  as.matrix(data[, 1:10]),4  as.factor(data[, 11]),5  type = "C-svc",6  kernel = "vanilladot",7  C = 0.01,8  scaled = TRUE9)
systems.ml-models

What this system does

Frames predictive and descriptive modeling problems around churn, risk, segmentation, forecasting, and anomaly detection.

Uses feature preparation, train/test splitting, baseline models, and evaluation metrics before making recommendations.

Connects model results to monitoring workflows, dashboards, and stakeholder interpretation.

How I use it

R projects cover scaled SVM classification, KNN cross-validation, stratified model selection, and Iris k-means clustering.

The churn analysis script is a working example of a baseline supervised-learning workflow.

Budget forecasting and decision scoring are marked as future modeling directions, not completed production claims.

Statistics and model evaluation concepts support practical interpretation rather than black-box modeling.

examples.evidence

Evidence or examples

The two public R repositories include seeded analyses and reproduction instructions. Credit data are excluded; Iris is built into R.

Supervised Classification reports exploratory SVM accuracy and KNN leave-one-out validation. Model Selection reserves the final test set until selection is complete.

predictive-churn-analysis.py uses pandas, ColumnTransformer, OneHotEncoder, LinearRegression, train_test_split, RMSE, and ROC AUC.

The portfolio states churn baseline as available and budget forecasting/decision scoring as coming soon.

Skills content includes advanced analytics foundation such as regression, classification, clustering, forecasting, and anomaly detection.

Supervised learning workflow

python
preprocess = ColumnTransformer([
    ('cat', OneHotEncoder(handle_unknown='ignore'), cat_cols),
    ('num', 'passthrough', numeric_cols),
])

Evaluation pattern

python
rmse = np.sqrt(mean_squared_error(y_test, pred))
auc = roc_auc_score(y_test, pred)

Unsupervised use case

pattern
Cluster customers, vendors, or product usage patterns to find segments that need different actions.

Forecasting use case

pattern
Use historical spend, employee count, and vendor categories to project budget scenarios before planning cycles.
Content is evidence-first. If a system detail is conceptual, it is framed as a system focus or implementation pattern rather than a fake production claim.