P-Tech/SupervisedLearning
1
1library(shiny)2library(shinyjs)3library(bslib)4library(dplyr)5library(ggplot2)6library(tm)7library(SnowballC)8library(plotly)9library(text2vec)10library(tokenizers)11library(dplyr)12library(tidyr)13library(igraph)14library(ggraph)15library(reshape2)16library(SnowballC)17library(RColorBrewer)18library(syuzhet)19library(cluster)20library(Rtsne)21library(umap)22library(MASS)23library(koRpus)24library(openxlsx)25library(tools)26library(shinyWidgets)27library(readxl)28library(scales)29library(caret)30library(BBmisc)31library(glmnet)32library(pROC)33library(ROCR)34library(car)35library(ResourceSelection)36library(tree)37library(ggplotify)38library(lmtest)39library(gridExtra)40library(patchwork)41library(caret)42library(randomForest)43library(gbm)44library(earth)45library(broom)46library(rlang)47library(ggdendro)48library(pastecs)49options(width = 150)50options(digits = 4, scipen = 1000000000)51options(shiny.maxRequestSize=30*1024^2)52 53 54 55# Function to process a chunk of lines and update word counts56process_chunk <- function(chunk, word_counts) {57 max_word_length <- 1000 # Set a maximum word length58 59 for (line in chunk) {60 words <- unlist(strsplit(line, "\\s+")) # Splitting line into words61 for (word in words) {62 word <- as.character(word) # Ensure 'word' is a character string63 if (nchar(word) == 0 || nchar(word) > max_word_length) {64 next # Skip empty words or words that are too long65 }66 # Check if word exists and get the current count67 if (!is.null(word_counts[[word]])) {68 current_count <- word_counts[[word]]69 } else {70 current_count <- 071 }72 word_counts[[word]] <- current_count + 173 }74 }75 return(word_counts)76}77 78# Main function to count word frequencies in the file79count_word_frequencies <- function(file_path) {80 con <- file(file_path, "r") # Open file connection81 word_counts <- new.env(hash = TRUE, size = 600000) # Initialize environment for counting82 83 while(TRUE) {84 lines <- readLines(con, n = 5000) # Adjust 'n' based on system capability85 if (length(lines) == 0) {86 break87 }88 word_counts <- process_chunk(lines, word_counts)89 }90 91 close(con) # Close file connection92 return(as.list(word_counts)) # Convert environment to list for easy access93}94 95ui <- fluidPage(96 theme = bs_theme(version = 5, bootswatch = "spacelab"),97 useShinyjs(), # Initialize shinyjs98 titlePanel("PtteM Data Science"),99 tags$head(tags$link(rel = "stylesheet", href="https://fonts.googleapis.com/css?family=Montserrat:100,300,400,700&display=swap"),100 tags$style(HTML("101 body, h1, h2, h3, h4, h5, h6, .nav, p, a, .shiny-input-container {102 font-family: 'Montserrat'; /* Font type for the title attribute */103 font-weight: 385;104 color: #007c9e !important;105 }106 * {107 font-family: 'Montserrat', sans-serif;108 font-weight: 385; 109 color: #195576; /* Blue color */110 }111 body { 112 background-color: #f7f7f7; /* Light gray background */113 }114 .icon-btn {115 border: 1px solid #0d6efd; /* Example border: solid, 2 pixels, #555 color */116 border-radius: 15%; /* Circular border */117 color: #00969e; /* Icon color */118 font-family: 'Montserrat'; /* Font type for the title attribute */119 font-weight: 385;120 background-color: #f7f7f7;121 padding: 125px; /* Space around the icon */122 margin: 25px; /* Space around the button */123 font-size: 24px; /* Icon size */124 box-shadow: 0 2px 4px rgba(0,0,0,0.2);125 }126 .icon-btn:hover {127 color: #00969e; /* Icon color on hover */128 border-color: #007c9e;129 background-color: #ebfbfd;/* Border color on hover */130 }131 /* Add custom styles here */132 .shiny-input-container {133 margin-bottom: 15px;134 }135 .box {136 border: 1px solid #ddd;137 padding: 20px;138 border-radius: 50px;139 margin-bottom: 200px;140 gap: 200px;141 align-items: center;142 }143 #statsTable_wrapper {144 margin: 0 auto;145 }146 .shiny-output-error {147 border: 1px solid #FF0000; /* Red border on error */148 }149 /* If you want to change the font size of the tooltip, you can add custom CSS for the 'title' attribute's default styling. */150 "))),151 tags$head(152 # Include JavaScript to reload the page153 tags$script(HTML("154 document.addEventListener('DOMContentLoaded', function() {155 document.getElementById('myElement').style.color = '#0d6efd'; // Change to your desired color156 });157"))158 ),159 tags$head(160 tags$script(HTML("161 function reloadPage() {162 window.location.reload();163 }164 "))165 ),166 # Refresh button that calls the JavaScript function167 actionButton("refresh", "Refresh Analysis", onclick = "reloadPage();"),168 # Help Text or Information for the user169 helpText("Bu uygulama ile metin analizi başlığı altındaki veri bilimi fonksiyonlarına erişebilirsiniz."),170 #Supervised Learning171 h2("Supervised Learning Section"),172 tabsetPanel(173 tabPanel("Simple Linear Regression",174 sidebarLayout(175 sidebarPanel(176 fileInput("slrinput", "Choose a CSV or XLSX file", accept = c(".csv", ".xlsx")),177 actionButton("loadslr", "Load Data"),178 selectInput("targetslr", "Select Target Column", choices = NULL),179 selectizeInput("independentVar", "Select Independent Variable", choices = NULL, multiple = FALSE),180 sliderInput("dataSplitslr", 181 "Data Split Ratio",182 min = 0.1,183 max = 0.9,184 value = 0.7, # Default value, for instance, 70% for training and 30% for testing185 step = 0.05,186 ticks = FALSE,187 animate = TRUE),188 actionButton("slrassumption", "Run Assumption"),189 actionButton("slrmodel", "Run SLR Model"),190 HTML("<div>191 <h2>Basit Doğrusal Regresyon Paneli</h2>192 193 <h3>Çıktı Nedir ve Neden Kullanılır?</h3> Bu panel, bir hedef değişken ile bir veya birden fazla bağımsız değişken arasındaki ilişkiyi modellemek için basit doğrusal regresyon (SLR) analizi yapar. SLR, iki değişken arasındaki ilişkinin doğasını ve gücünü anlamak için kullanılır.</p>194 195 <h3>Kullanım Adımları:</h3></p>196 <ol>197 <li><strong>Veri Dosyası Yükleme:</strong> SLR analizi için bir CSV veya XLSX dosyasını <code>fileInput</code> aracılığıyla yükleyin.</li>198 <li><strong>Hedef ve Bağımsız Değişken Seçimi:</strong> Analiz için hedef değişkeni ve bağımsız değişkeni seçin.</li>199 <li><strong>Analizi Çalıştırma:</strong> <code>actionButton</code> butonlarına tıklayarak SLR modelini ve varsayım kontrollerini çalıştırın.</li>200 </ol>201 202 <h3>Kullanıcı Etkileşimi:</h3> Kullanıcılar, dosya yükledikten ve gerekli değişkenleri seçtikten sonra analizi başlatır ve sonuçlar ana panelde görselleştirilir.</p>203 204 <h3>Veri Bilimi Alanındaki Kullanımı:</h3> Basit doğrusal regresyon, özellikle iki değişken arasındaki ilişkiyi keşfetmek ve bu ilişkinin gücünü ve yönünü belirlemek için önemli bir yöntemdir. SLR, tahmin modelleri oluşturma, trend analizi ve değişkenler arasındaki ilişkilerin değerlendirilmesi gibi çeşitli alanlarda kullanılır.</p>205 206 <h3>Desteklenen Dosya Tipleri:</h3> Kullanıcılar, analiz için CSV (.csv) veya Excel (.xlsx) formatında dosyalar yükleyebilirler.</p>207 208 <h3>Sonuçların Yorumlanması:</h3> Elde edilen model özeti, regresyon katsayıları, p-değerleri, R-kare gibi istatistiklerle modelin anlamlılığını ve açıklayıcılığını değerlendirir. Ayrıca, varsayım testleri ve diyagnostik grafikler modelin varsayımlara uygunluğunu kontrol etmek için kullanılır.</p>209 210 <ul>211 <li><strong>Model Özeti:</strong> Modelin istatistiksel anlamlılığını ve açıklayıcılığını değerlendirir.</li>212 <li><strong>Varsayım Testleri:</strong> Modelin normal dağılım, homoskedastisite, bağımsızlık ve doğrusallık gibi temel varsayımlara uygunluğunu test eder.</li>213 <li><strong>Regresyon Çizgisi Grafiği:</strong> Hedef ve bağımsız değişken arasındaki ilişkiyi görsel olarak gösterir.</li>214 </ul>215 216 <p>Bu özellikler, basit doğrusal regresyon analizinin, veri setinden önemli içgörüler elde etmek ve değişkenler arasındaki ilişkileri anlamak için nasıl kullanılabileceğini gösterir.</p>217</div>218")219 ),220 mainPanel(221 tabsetPanel(222 tabPanel("Data Summary", verbatimTextOutput("slrsummary")),223 tabPanel("Assumptions for SLR Model", 224 tabsetPanel( 225 tabPanel("Diagnostics",226 plotlyOutput("residualsFittedPlot"),227 plotlyOutput("qqPlot"),228 plotlyOutput("scaleLocationPlot"),229 plotlyOutput("residualsLeveragePlot")230 ),231 tabPanel("Shapiro-Wilk Test", verbatimTextOutput("shapiroTest")),232 tabPanel("Breusch-Pagan Test", verbatimTextOutput("ncvTest")),233 tabPanel("Linearity Plot", plotlyOutput("linearityPlotOutput", width = "100%", height = "700px")),234 tabPanel("Durbin-Watson Test", verbatimTextOutput("durbinWatsonTest"))235 )236 ),237 tabPanel("SLR Model Evaluation",238 tabsetPanel(239 tabPanel("Model Summary", verbatimTextOutput("slrmodeleva")),240 tabPanel("Correlation Coefficient Between the Variables", verbatimTextOutput("corcoefslr")),241 tabPanel("Confidence Interval", verbatimTextOutput("confintslr")),242 tabPanel("Regression Line Plot", plotlyOutput("slrregressPlot", width = "100%", height = "625px"))243 )244 )245 )246 )247 )248 ),249 tabPanel("Multiple Linear Regression",250 sidebarLayout(251 sidebarPanel(252 fileInput("mlrinput", "Choose a CSV or XLSX file", accept = c(".csv", ".xslx")),253 actionButton("loadmlr", "Load Data"),254 selectInput("targetmlr", "Select Target Column", choices = NULL),255 selectizeInput("independentVarmlr", "Select Independent Variable", choices = NULL, multiple = TRUE),256 sliderInput("dataSplitmlr", 257 "Data Split Ratio",258 min = 0.1,259 max = 0.9,260 value = 0.7, # Default value, for instance, 70% for training and 30% for testing261 step = 0.05,262 ticks = FALSE,263 animate = TRUE),264 actionButton("mlrassumption", "Run Assumption"),265 actionButton("mlrmodel", "Run MLR Model"),266 HTML("<div>267 <h2>Çoklu Doğrusal Regresyon Paneli</h2>268 269 <h3>Çıktı Nedir ve Neden Kullanılır?</h3> Bu panel, bir hedef değişken ile birden fazla bağımsız değişken arasındaki ilişkiyi modellemek için çoklu doğrusal regresyon (MLR) analizi yapar. MLR, değişkenler arasındaki ilişkilerin karmaşıklığını anlamak ve birden çok bağımsız değişkenin hedef değişken üzerindeki etkisini keşfetmek için kullanılır.</p>270 271 <h3>Kullanım Adımları:</h3></p>272 <ol>273 <li><strong>Veri Dosyası Yükleme:</strong> MLR analizi için bir CSV veya XLSX dosyasını <code>fileInput</code> aracılığıyla yükleyin.</li>274 <li><strong>Hedef ve Bağımsız Değişkenlerin Seçimi:</strong> Analiz için hedef değişkeni ve birden fazla bağımsız değişkeni seçin.</li>275 <li><strong>Analizi Çalıştırma:</strong> <code>actionButton</code> butonlarına tıklayarak MLR modelini ve varsayım kontrollerini çalıştırın.</li>276 </ol>277 278 <h3>Kullanıcı Etkileşimi:</h3> Kullanıcılar, dosya yükledikten ve gerekli değişkenleri seçtikten sonra analizi başlatır ve sonuçlar ana panelde görselleştirilir.</p>279 280 <h3>Veri Bilimi Alanındaki Kullanımı:</h3> Çoklu doğrusal regresyon, tahmin modelleri oluşturma, çok faktörlü etki analizi ve değişkenler arasındaki ilişkilerin değerlendirilmesi gibi çeşitli alanlarda kullanılır. MLR, birden çok bağımsız değişkenin hedef değişken üzerindeki etkisini ve ilişkilerin yapısını anlamak için tercih edilen bir yöntemdir.</p>281 282 <h3>Desteklenen Dosya Tipleri:</h3> Kullanıcılar, analiz için CSV (.csv) veya Excel (.xlsx) formatında dosyalar yükleyebilirler.</p>283 284 <h3>Sonuçların Yorumlanması:</h3> Elde edilen model özeti, regresyon katsayıları, p-değerleri, R-kare gibi istatistiklerle modelin anlamlılığını ve açıklayıcılığını değerlendirir. Ayrıca, varsayım testleri ve diyagnostik grafikler modelin varsayımlara uygunluğunu kontrol etmek için kullanılır.</p>285 286 <ul>287 <li><strong>Model Özeti:</strong> Modelin istatistiksel anlamlılığını ve açıklayıcılığını değerlendirir.</li>288 <li><strong>Varsayım Testleri:</strong> Modelin normal dağılım, homoskedastisite, bağımsızlık, doğrusallık ve çoklu bağlantı gibi temel varsayımlara uygunluğunu test eder.</li>289 <li><strong>Regresyon Çizgisi Grafiği:</strong> Hedef ve bağımsız değişkenler arasındaki ilişkiyi görsel olarak gösterir.</li>290 </ul>291 292 <p>Bu özellikler, çoklu doğrusal regresyon analizinin, veri setinden derinlemesine içgörüler elde etmek ve değişkenler arasındaki ilişkileri anlamak için nasıl kullanılabileceğini gösterir.</p>293</div>294")295 ),296 mainPanel(297 tabsetPanel(298 tabPanel("Data Summary", verbatimTextOutput("mlrsummary")),299 tabPanel("Assumptions for MLR Model", 300 tabsetPanel( 301 tabPanel("Diagnostics",302 plotlyOutput("resFitmlrPlot"),303 plotlyOutput("qqPlotmlr"),304 plotlyOutput("scaleLocmlrPlot"),305 plotlyOutput("resLevmlrPlot")306 ),307 tabPanel("Shapiro-Wilk Test", verbatimTextOutput("shapTestmlr")),308 tabPanel("Breusch-Pagan Test", verbatimTextOutput("ncvTestmlr")),309 tabPanel("Linearity Plot", plotlyOutput("linPlotmlr", width = "100%", height = "725px")),310 tabPanel("Durbin-Watson Test", verbatimTextOutput("dWTestmlr")),311 tabPanel("Variance Inflation Factor", verbatimTextOutput("vifmlr"))312 )313 ),314 tabPanel("MLR Model Evaluation",315 tabsetPanel(316 tabPanel("Model Summary", verbatimTextOutput("mlrmodeleva")),317 tabPanel("Correlation Coefficient Between the Variables", verbatimTextOutput("corcoefmlr")),318 tabPanel("Confidence Interval", verbatimTextOutput("confintmlr")),319 tabPanel("Model Evaluation Metrics", verbatimTextOutput("modelevamet")),320 tabPanel("Regression Line Plot", plotlyOutput("mlrregressPlot", width = "100%", height = "625px"))321 )322 ),323 324 ),325 )326 )327 ),328 tabPanel("Logistic Regression",329 sidebarLayout(330 sidebarPanel(331 fileInput("glmfile", "Choose a CSV or XLSX file", accept = c(".csv", ".xlsx")),332 actionButton("loadData", "Load Data"),333 selectInput("targetglm", "Select Target Column", choices = NULL),334 selectizeInput("independentVars", "Select Independent Variables", choices = NULL, multiple = TRUE),335 sliderInput("dataSplit", 336 "Data Split Ratio",337 min = 0.1,338 max = 0.9,339 value = 0.7, # Default value, for instance, 70% for training and 30% for testing340 step = 0.05,341 ticks = FALSE,342 animate = TRUE),343 actionButton("glmassumption", "Run Assumption"),344 actionButton("runLogisticRegression", "Run Logistic Regression"),345 HTML("<div>346 <h2>Lojistik Regresyon Paneli</h2>347 348 <h3>Çıktı Nedir ve Neden Kullanılır?</h3> Bu panel, bir veya birden fazla bağımsız değişken ile kategorik bir hedef değişken arasındaki ilişkiyi modellemek için lojistik regresyon analizi yapar. Lojistik regresyon, özellikle ikili (binary) sonuçlar için tercih edilen bir yöntemdir ve olasılıkların tahmin edilmesinde kullanılır.</p>349 350 <h3>Kullanım Adımları:</h3></p>351 <ol>352 <li><strong>Veri Dosyası Yükleme:</strong> Lojistik regresyon analizi için bir CSV veya XLSX dosyasını <code>fileInput</code> aracılığıyla yükleyin.</li>353 <li><strong>Hedef ve Bağımsız Değişkenlerin Seçimi:</strong> Analiz için kategorik hedef değişkeni ve bir veya birden fazla bağımsız değişkeni seçin.</li>354 <li><strong>Analizi Çalıştırma:</strong> <code>actionButton</code> butonlarına tıklayarak lojistik regresyon modelini ve varsayım kontrollerini çalıştırın.</li>355 </ol>356 357 <h3>Kullanıcı Etkileşimi:</h3> Kullanıcılar, dosya yükledikten ve gerekli değişkenleri seçtikten sonra analizi başlatır ve sonuçlar ana panelde görselleştirilir.</p>358 359 <h3>Veri Bilimi Alanındaki Kullanımı:</h3> Lojistik regresyon, sınıflandırma, olasılık tahmini ve risk faktörlerinin incelenmesi gibi çeşitli alanlarda kullanılır. Özellikle, kategorik sonuçların (örneğin, evet/hayır, başarılı/başarısız) olasılıklarının tahmin edilmesinde tercih edilen bir yöntemdir.</p>360 361 <h3>Desteklenen Dosya Tipleri:</h3> Kullanıcılar, analiz için CSV (.csv) veya Excel (.xlsx) formatında dosyalar yükleyebilirler.</p>362 363 <h3>Sonuçların Yorumlanması:</h3> Elde edilen model özeti, regresyon katsayıları, p-değerleri, ROC eğrisi gibi istatistiklerle modelin anlamlılığını ve performansını değerlendirir. Ayrıca, varsayım testleri modelin varsayımlara uygunluğunu kontrol etmek için kullanılır.</p>364 365 <ul>366 <li><strong>Model Özeti:</strong> Modelin istatistiksel anlamlılığını ve performansını değerlendirir.</li>367 <li><strong>Varsayım Testleri:</strong> Modelin normal dağılım, homoskedastisite, bağımsızlık gibi temel varsayımlara uygunluğunu test eder.</li>368 <li><strong>ROC Eğrisi:</strong> Modelin sınıflandırma performansını değerlendirir ve AUC (Alan Altında Kalan Alan) değeri ile modelin ayırt edici gücünü gösterir.</li>369 </ul>370 371 <p>Bu özellikler, lojistik regresyon analizinin, veri setinden derinlemesine içgörüler elde etmek ve kategorik sonuçların olasılıklarını tahmin etmek için nasıl kullanılabileceğini gösterir.</p>372</div>373")374 ),375 376 mainPanel(377 tabsetPanel(378 tabPanel("Data Summary", verbatimTextOutput("dataSummary")),379 tabPanel("Assumptions for Model", verbatimTextOutput("glmassumption")),380 tabPanel("Logistic Regression Output", verbatimTextOutput("logisticOutput")),381 tabPanel("Cross Validation GLM Output", plotlyOutput("glmcvplot")),382 tabPanel("Area Under the Curve Plot", plotlyOutput("glmaucplot"))383 )384 )385 )386 ),387 tabPanel("Decision Tree",388 sidebarLayout(389 sidebarPanel(390 fileInput("treedecfile", "Choose a CSV or XLSX file", accept = c(".csv", ".xlsx")),391 selectInput("targetdectree", "Select Target Column", choices = NULL),392 sliderInput("dataSplittree", 393 "Data Split Ratio",394 min = 0.1,395 max = 0.9,396 value = 0.7, # Default value, for instance, 70% for training and 30% for testing397 step = 0.05,398 ticks = FALSE,399 animate = TRUE),400 actionButton("rundectree", "Run Prior Steps"),401 HTML("<div>402 <h2>Karar Ağacı Paneli</h2>403 404 <h3>Çıktı Nedir ve Neden Kullanılır?</h3> Bu panel, sınıflandırma ve regresyon problemleri için karar ağacı modellemesi yapar. Karar ağacı, veri setindeki özelliklerin farklı kombinasyonlarını kullanarak sonuçları tahmin eder ve bu tahminlerin nasıl yapıldığını açıklayabilir bir şekilde görselleştirir.</p>405 406 <h3>Kullanım Adımları:</h3></p>407 <ol>408 <li><strong>Veri Dosyası Yükleme:</strong> Karar ağacı modellemesi için bir CSV veya XLSX dosyasını <code>fileInput</code> aracılığıyla yükleyin.</li>409 <li><strong>Hedef Değişken Seçimi:</strong> Modelde tahmin edilecek hedef değişkeni seçin.</li>410 <li><strong>Modellemeyi Çalıştırma:</strong> <code>actionButton</code> butonuna tıklayarak karar ağacı modellemesini ve ilgili ön adımları çalıştırın.</li>411 </ol>412 413 <h3>Kullanıcı Etkileşimi:</h3> Kullanıcılar, dosya yükledikten ve hedef değişkeni seçtikten sonra modellemeyi başlatır ve sonuçlar ana panelde görselleştirilir.</p>414 415 <h3>Veri Bilimi Alanındaki Kullanımı:</h3> Karar ağacı, sınıflandırma ve regresyon problemlerinde yaygın olarak kullanılan bir yöntemdir. Ağaç yapısı, modelin kararlarını ve tahminlerini açıklayıcı bir şekilde sunar, bu da modelin yorumlanabilirliğini artırır.</p>416 417 <h3>Desteklenen Dosya Tipleri:</h3> Kullanıcılar, analiz için CSV (.csv) veya Excel (.xlsx) formatında dosyalar yükleyebilirler.</p>418 419 <h3>Sonuçların Yorumlanması:</h3> Elde edilen karar ağacı modeli, veri setindeki özelliklerin nasıl birleştirildiğini ve sonuçların nasıl tahmin edildiğini gösterir. Model özeti, karar ağacının performansını ve doğruluğunu değerlendirir. Ayrıca, ağacın budanması ve çapraz doğrulama gibi tekniklerle modelin genelleştirilmesi incelenir.</p>420 421 <ul>422 <li><strong>Model Özeti:</strong> Modelin performansını ve doğruluğunu değerlendirir.</li>423 <li><strong>Karar Ağacı Görselleştirme:</strong> Karar ağacının nasıl yapılandırıldığını ve tahminlerin nasıl yapıldığını görsel olarak sunar.</li>424 <li><strong>Çapraz Doğrulama:</strong> Modelin farklı veri setleri üzerindeki performansını test eder ve genelleştirme yeteneğini değerlendirir.</li>425 <li><strong>Karışıklık Matrisi:</strong> Modelin sınıflandırma performansını detaylı bir şekilde gösterir.</li>426 </ul>427 428 <p>Bu özellikler, karar ağacı modellemesinin, veri setinden derinlemesine içgörüler elde etmek ve tahminler yapmak için nasıl kullanılabileceğini gösterir.</p>429</div>430")431 ),432 433 mainPanel(434 tabsetPanel(435 tabPanel("Finding Right Model",436 tabsetPanel(437 tabPanel("Data Summary", verbatimTextOutput("dataSummarydt")),438 tabPanel("Run First Model", verbatimTextOutput("rundectree")),439 tabPanel("Before Pruning Model's Plot", plotOutput("dectreeplot", width = "100%", height = "750px")),440 tabPanel("Cross-validation Plot", plotOutput("cvplot", width = "100%", height = "750px")),441 tabPanel("Confusion Matrix", verbatimTextOutput("confMatrix")),442 tabPanel("Pruned Tree", plotOutput("pruneddtree", width = "100%", height = "725px")),443 )444 ),445 tabPanel("Decision Tree Model Evaluation",446 tabsetPanel(447 tabPanel("Model Evaluation", verbatimTextOutput("cfdtpteva")),448 ))449 )450 ),451 )452 ),453 tabPanel("Random Forest",454 sidebarLayout(455 sidebarPanel(456 fileInput("rfinput", "Choose a CSV or XLSX file", accept = c(".csv", ".xlsx")),457 actionButton("loadrf", "Load Data"),458 selectInput("targetrf", "Select Target Column", choices = NULL),459 selectizeInput("independentVarrf", "Select Independent Variables", choices = NULL, multiple = TRUE),460 sliderInput("dataSplitrf", 461 "Data Split Ratio",462 min = 0.1,463 max = 0.9,464 value = 0.7, # Default value, for instance, 70% for training and 30% for testing465 step = 0.05,466 ticks = FALSE,467 animate = TRUE),468 numericInput("mtryInput", "Mtry Value", value = 3, min = 1),469 numericInput("ntreeInput", "Ntree Value", value = 14, min = 1),470 actionButton("runrf", "Run Prior Steps"),471 actionButton("predictBtn", "Predict"),472 HTML("<div>473 <h2>Rastgele Orman Paneli</h2>474 475 <h3>Çıktı Nedir ve Neden Kullanılır?</h3> Bu panel, sınıflandırma ve regresyon problemleri için rastgele orman modellemesi yapar. Rastgele orman, birden fazla karar ağacını birleştirerek oluşturulan bir topluluk öğrenme yöntemidir. Bu yöntem, modelin genel hatası üzerindeki varyansı azaltır ve aşırı uyuma karşı dirençli olmasını sağlar.</p>476 477 <h3>Kullanım Adımları:</h3></p>478 <ol>479 <li><strong>Veri Dosyası Yükleme:</strong> Rastgele orman modellemesi için bir CSV veya XLSX dosyasını <code>fileInput</code> aracılığıyla yükleyin.</li>480 <li><strong>Hedef Değişken ve Bağımsız Değişkenler Seçimi:</strong> Modelde tahmin edilecek hedef değişkeni ve kullanılacak bağımsız değişkenleri seçin.</li>481 <li><strong>Model Parametreleri Ayarlama:</strong> Modelin <code>mtry</code> ve <code>ntree</code> değerlerini ayarlayın.</li>482 <li><strong>Modellemeyi Çalıştırma:</strong> <code>actionButton</code> butonlarına tıklayarak rastgele orman modellemesini ve tahmin işlemini çalıştırın.</li>483 </ol>484 485 <h3>Kullanıcı Etkileşimi:</h3> Kullanıcılar, dosya yükledikten, değişkenleri seçtikten ve model parametrelerini ayarladıktan sonra modellemeyi başlatır ve sonuçlar ana panelde görselleştirilir.</p>486 487 <h3>Veri Bilimi Alanındaki Kullanımı:</h3> Rastgele orman, sınıflandırma ve regresyon gibi çeşitli makine öğrenmesi problemlerinde kullanılır. Modelin oluşturduğu birden fazla karar ağacının sonuçlarını birleştirerek daha doğru tahminler yapılmasını sağlar.</p>488 489 <h3>Desteklenen Dosya Tipleri:</h3> Kullanıcılar, analiz için CSV (.csv) veya Excel (.xlsx) formatında dosyalar yükleyebilirler.</p>490 491 <h3>Sonuçların Yorumlanması:</h3> Elde edilen rastgele orman modeli, bağımsız değişkenlerin hedef değişken üzerindeki etkilerini ve önem derecelerini gösterir. Model özeti, rastgele ormanın performansını ve doğruluğunu değerlendirir. Ayrıca, modelin tahminlerini ve bu tahminlerin gerçek değerlerle karşılaştırılmasını içeren görselleştirmeler sunar.</p>492 493 <ul>494 <li><strong>Model Özeti:</strong> Modelin performansını ve doğruluğunu değerlendirir.</li>495 <li><strong>Özellik Önemi:</strong> Bağımsız değişkenlerin model üzerindeki etkisinin ve öneminin değerlendirilmesi.</li>496 <li><strong>Model Tahminleri:</strong> Modelin tahmin ettiği sonuçlar ve bu tahminlerin gerçek değerlerle karşılaştırılması.</li>497 </ul>498 499 <p>Bu özellikler, rastgele orman modellemesinin, veri setinden derinlemesine içgörüler elde etmek ve tahminler yapmak için nasıl kullanılabileceğini gösterir.</p>500</div>501")502 ),503 mainPanel(504 tabsetPanel(505 tabPanel("Data Summary", verbatimTextOutput("dataSummaryrf")),506 tabPanel("Run First Model", verbatimTextOutput("runrf")),507 tabPanel("Feature Importance Plot", plotlyOutput("importancePlot", width = "100%", height = "625px")),508 tabPanel("Model Prediction",509 tabsetPanel(510 tabPanel("Predicted Result", verbatimTextOutput("predictionOutput")),511 tabPanel("Predicted Plot", plotlyOutput("performancePlot", width = "100%", height = "625px"))512 )513 )514 )515 516 )517 )518 ),519 tabPanel("Bagging",520 sidebarLayout(521 sidebarPanel(522 fileInput("bginput", "Choose a CSV or XLSX file", accept = c(".csv", ".xlsx")),523 actionButton("loadbg", "Load Data"),524 selectInput("targetbg", "Select Target Column", choices = NULL),525 selectizeInput("independentVarbg", "Select Independent Variables", choices = NULL, multiple = TRUE),526 sliderInput("dataSplitbg", 527 "Data Split Ratio",528 min = 0.1,529 max = 0.9,530 value = 0.7, # Default value, for instance, 70% for training and 30% for testing531 step = 0.05,532 ticks = FALSE,533 animate = TRUE),534 numericInput("nbaggInput", "Nbagg Value", value = 14, min = 1),535 actionButton("runbg", "Run Prior Steps"),536 actionButton("baggingBtn", "Predict"),537 HTML("<div>538 <h2>Çanta (Bagging) Paneli</h2>539 540 <h3>Çıktı Nedir ve Neden Kullanılır?</h3>541 <p>Bu panel, çok sayıda karar ağacı modelini birleştirerek güçlü bir makine öğrenimi modeli oluşturan çanta (bagging) yöntemini kullanır. Çanta yöntemi, modelin genel hatasını azaltarak ve aşırı uyum (overfitting) riskini minimize ederek tahminlerin doğruluğunu artırır.</p>542 543 <h3>Kullanım Adımları:</h3>544 <ol>545 <li><strong>Veri Dosyası Yükleme:</strong> CSV veya XLSX formatında bir dosya yükleyerek analize başlayın.</li>546 <li><strong>Hedef ve Bağımsız Değişkenlerin Seçilmesi:</strong> Modelde kullanılacak hedef ve bağımsız değişkenleri seçin.</li>547 <li><strong>Model Parametrelerinin Ayarlanması:</strong> Modelin performansını etkileyen parametreleri (örneğin, çanta iterasyon sayısı) ayarlayın.</li>548 <li><strong>Modelin Eğitilmesi ve Tahmin Yapılması:</strong> Modeli eğitin ve test veri seti üzerinde tahminlerde bulunun.</li>549 </ol>550 551 <h3>Kullanıcı Etkileşimi:</h3>552 <p>Kullanıcılar, veri setini yükledikten ve gerekli seçimleri yaptıktan sonra, modeli eğitmek ve tahminler yapmak için belirtilen butonlara tıklar. Sonuçlar, ana panelde görselleştirilir ve detaylı analizler sunulur.</p>553 554 <h3>Veri Bilimi ve Makine Öğrenmesindeki Uygulamaları:</h3>555 <p>Çanta yöntemi, hem sınıflandırma hem de regresyon problemleri için yaygın olarak kullanılan bir topluluk öğrenme yöntemidir. Bu yöntem, veri setlerinden elde edilen bilgiyi maksimize eder ve modelin genel performansını iyileştirir.</p>556 557 <h3>Desteklenen Dosya Tipleri ve Seçenekler:</h3>558 <p>Panel, kullanıcıların CSV (.csv) veya Excel (.xlsx) formatındaki dosyaları yüklemesine izin verir. Bu, veri bilimcilerin ve analistlerin çeşitli veri setleri üzerinde çalışabilmesi için esneklik sağlar.</p>559 560 <h3>Sonuçların Yorumlanması:</h3>561 <p>Modelin performansı, çeşitli metrikler kullanılarak değerlendirilir. Özellik önem dereceleri, hangi değişkenlerin model tahminlerini en çok etkilediğini gösterir. Ayrıca, tahmin edilen sonuçlar ve modelin genel doğruluğu hakkında bilgiler sunulur.</p>562 563 <ul>564 <li><strong>Model Özeti:</strong> Modelin performans metrikleri ve ayarlanan parametreler hakkında bilgi verir.</li>565 <li><strong>Özellik Önemi:</strong> Model tahminlerinde hangi bağımsız değişkenlerin önemli olduğunu gösterir.</li>566 <li><strong>Tahmin Sonuçları:</strong> Modelin test veri seti üzerinde yaptığı tahminler ve bu tahminlerin gerçek değerlerle karşılaştırılması.</li>567 </ul>568 569 <p>Bu özellikler, çanta yönteminin veri setlerinden maksimum bilgiyi çıkararak tahminlerin doğruluğunu artırma potansiyelini gösterir.</p>570</div>")571 ),572 mainPanel(573 tabsetPanel(574 tabPanel("Data Summary", verbatimTextOutput("dataSummarybg")),575 tabPanel("Run First Model", verbatimTextOutput("runbg")),576 tabPanel("Feature Importance Plot", plotlyOutput("importancePlotbg", width = "100%", height = "625px")),577 tabPanel("Model Prediction",578 tabsetPanel(579 tabPanel("Predicted Result", verbatimTextOutput("predictionOutputbg")),580 tabPanel("Predicted Plot", plotlyOutput("performancePlotbg", width = "100%", height = "625px"))581 )582 )583 )584 585 )586 )587 ),588 tabPanel("Boosting",589 sidebarLayout(590 sidebarPanel(591 fileInput("bsinput", "Choose a CSV or XLSX file", accept = c(".csv", ".xlsx")),592 actionButton("loadbs", "Load Data"),593 selectInput("targetbs", "Select Target Column", choices = NULL),594 selectizeInput("independentVarbs", "Select Independent Variables", choices = NULL, multiple = TRUE),595 sliderInput("dataSplitbs", 596 "Data Split Ratio",597 min = 0.1,598 max = 0.9,599 value = 0.7, # Default value, for instance, 70% for training and 30% for testing600 step = 0.05,601 ticks = FALSE,602 animate = TRUE),603 numericInput("nbsInput", "N Trees Value", value = 14, min = 1),604 numericInput("nbsdepth", "Interaction Depth", value = 4, min = 1),605 numericInput("nbshr", "Shrinkage", value = 0.03, min = 0.0001),606 actionButton("runbs", "Run Prior Steps"),607 actionButton("boostingBtn", "Predict"),608 HTML("<div>609 <h2>Artırma (Boosting) Paneli</h2>610 611 <h3>Çıktı Nedir ve Neden Kullanılır?</h3>612 <p>Bu panel, zayıf öğrenicileri güçlü bir model oluşturmak üzere birleştiren artırma (boosting) yöntemini kullanır. Artırma, bir dizi zayıf modeli sıralı olarak eğitir ve her birini öncekinin hatalarını düzeltmeye odaklanır, böylece modelin genel performansı artar.</p>613 614 <h3>Kullanım Adımları:</h3>615 <ol>616 <li><strong>Veri Dosyası Yükleme:</strong> CSV veya XLSX formatında bir dosya yükleyerek analize başlayın.</li>617 <li><strong>Hedef ve Bağımsız Değişkenlerin Seçilmesi:</strong> Modelde kullanılacak hedef ve bağımsız değişkenleri seçin.</li>618 <li><strong>Model Parametrelerinin Ayarlanması:</strong> Modelin performansını etkileyen parametreleri (örneğin, ağaç sayısı, etkileşim derinliği, küçültme) ayarlayın.</li>619 <li><strong>Modelin Eğitilmesi ve Tahmin Yapılması:</strong> Modeli eğitin ve test veri seti üzerinde tahminlerde bulunun.</li>620 </ol>621 622 <h3>Kullanıcı Etkileşimi:</h3>623 <p>Kullanıcılar, veri setini yükledikten ve gerekli seçimleri yaptıktan sonra, modeli eğitmek ve tahminler yapmak için belirtilen butonlara tıklar. Sonuçlar, ana panelde görselleştirilir ve detaylı analizler sunulur.</p>624 625 <h3>Veri Bilimi ve Makine Öğrenmesindeki Uygulamaları:</h3>626 <p>Artırma yöntemi, genellikle sınıflandırma ve regresyon problemlerinde kullanılır ve modelin aşırı uyuma (overfitting) eğilimini azaltırken tahmin doğruluğunu artırır.</p>627 628 <h3>Desteklenen Dosya Tipleri ve Seçenekler:</h3>629 <p>Panel, kullanıcıların CSV (.csv) veya Excel (.xlsx) formatındaki dosyaları yüklemesine izin verir. Bu, veri bilimcilerin ve analistlerin çeşitli veri setleri üzerinde çalışabilmesi için esneklik sağlar.</p>630 631 <h3>Sonuçların Yorumlanması:</h3>632 <p>Modelin performansı, çeşitli metrikler kullanılarak değerlendirilir. Özellik önem dereceleri, hangi değişkenlerin model tahminlerini en çok etkilediğini gösterir. Ayrıca, tahmin edilen sonuçlar ve modelin genel doğruluğu hakkında bilgiler sunulur.</p>633 634 <ul>635 <li><strong>Model Özeti:</strong> Modelin performans metrikleri ve ayarlanan parametreler hakkında bilgi verir.</li>636 <li><strong>Özellik Önemi:</strong> Model tahminlerinde hangi bağımsız değişkenlerin önemli olduğunu gösterir.</li>637 <li><strong>Tahmin Sonuçları:</strong> Modelin test veri seti üzerinde yaptığı tahminler ve bu tahminlerin gerçek değerlerle karşılaştırılması.</li>638 </ul>639 640 <p>Bu özellikler, artırma yönteminin veri setlerinden maksimum bilgiyi çıkararak tahminlerin doğruluğunu artırma potansiyelini gösterir.</p>641</div>")642 ),643 mainPanel(644 tabsetPanel(645 tabPanel("Data Summary", verbatimTextOutput("dataSummarybs")),646 tabPanel("Run First Model", verbatimTextOutput("runbs")),647 tabPanel("Feature Importance Plot", plotlyOutput("importancePlotbs", width = "100%", height = "625px")),648 tabPanel("Model Prediction",649 tabsetPanel(650 tabPanel("Predicted Result", verbatimTextOutput("predictionOutputbs")),651 tabPanel("Predicted Plot", plotlyOutput("performancePlotbs", width = "100%", height = "625px"))652 )653 )654 )655 656 )657 )658 ),659 tabPanel("MARS",660 sidebarLayout(661 sidebarPanel(662 fileInput("msinput", "Choose a CSV or XLSX file", accept = c(".csv", ".xlsx")),663 actionButton("loadms", "Load Data"),664 selectInput("targetms", "Select Target Column", choices = NULL),665 selectizeInput("independentVarms", "Select Independent Variables", choices = NULL, multiple = TRUE),666 sliderInput("dataSplitms", 667 "Data Split Ratio",668 min = 0.1,669 max = 0.9,670 value = 0.7, # Default value, for instance, 70% for training and 30% for testing671 step = 0.05,672 ticks = FALSE,673 animate = TRUE),674 actionButton("runms", "Run Prior Steps"),675 actionButton("marsBtn", "Predict"),676 HTML("<div>677 <h2>MARS Paneli</h2>678 679 <h3>Çıktı Nedir ve Neden Kullanılır?</h3>680 <p>Bu panel, Çoklu Adaptif Regresyon Spline'ları (MARS) kullanarak veri setinden karmaşık ilişkileri ve etkileşimleri yakalayabilen bir model oluşturur. MARS, lineer olmayan ilişkileri ve değişkenler arasındaki etkileşimleri otomatik olarak tanımlayabilen esnek bir yöntemdir.</p>681 682 <h3>Kullanım Adımları:</h3>683 <ol>684 <li><strong>Veri Dosyası Yükleme:</strong> Analize başlamak için CSV veya XLSX formatında bir dosya yükleyin.</li>685 <li><strong>Hedef ve Bağımsız Değişkenlerin Seçilmesi:</strong> Modelde kullanılacak hedef ve bağımsız değişkenleri belirleyin.</li>686 <li><strong>Veri Bölme Oranının Ayarlanması:</strong> Modelin eğitim ve test veri setlerine bölünme oranını ayarlayın.</li>687 <li><strong>Modelin Eğitilmesi ve Değerlendirilmesi:</strong> Modeli eğitip performansını değerlendirin. Modelin doğruluğunu ve bağımsız değişkenlerin önemini inceleyin.</li>688 </ol>689 690 <h3>Kullanıcı Etkileşimi:</h3>691 <p>Kullanıcılar, analiz için gerekli veri ve parametreleri girer ve modeli eğitmek için belirtilen adımları takip eder. Sonuçlar, kullanıcıya modelin performansı ve değişkenlerin önemi hakkında detaylı bilgiler sunar.</p>692 693 <h3>Veri Bilimi ve Makine Öğrenmesindeki Uygulamaları:</h3>694 <p>MARS yöntemi, özellikle karmaşık ilişkilerin ve değişken etkileşimlerinin olduğu durumlarda tercih edilen bir modelleme tekniğidir. Hem sınıflandırma hem de regresyon problemleri için uygundur.</p>695 696 <h3>Desteklenen Dosya Tipleri ve Seçenekler:</h3>697 <p>Panel, kullanıcıların analiz için CSV (.csv) veya Excel (.xlsx) formatlarında veri dosyaları yüklemesine olanak tanır, bu da farklı veri setleri üzerinde çalışmayı kolaylaştırır.</p>698 699 <h3>Sonuçların Yorumlanması:</h3>700 <p>Modelin performansı, çeşitli metrikler kullanılarak değerlendirilir. Bağımsız değişkenlerin model üzerindeki etkisi, özellik önem dereceleriyle gösterilir. Ayrıca, modelin genel doğruluğu ve tahmin edilen sonuçlar hakkında bilgiler sağlanır.</p>701 702 <ul>703 <li><strong>Model Özeti:</strong> Modelin performans metrikleri ve ayarlanan parametreler hakkında bilgi sağlar.</li>704 <li><strong>Özellik Önemi:</strong> Hangi bağımsız değişkenlerin model tahminlerini en çok etkilediğini gösterir.</li>705 <li><strong>Tahmin Sonuçları:</strong> Modelin test veri seti üzerinde yaptığı tahminler ve bu tahminlerin gerçek değerlerle karşılaştırılması.</li>706 </ul>707 708 <p>Bu panel, MARS modelinin veri setlerinden karmaşık ilişkileri çıkararak tahminlerin doğruluğunu artırma potansiyeline sahip olduğunu gösterir.</p>709</div>")710 ),711 mainPanel(712 tabsetPanel(713 tabPanel("Data Summary", verbatimTextOutput("dataSummaryms")),714 tabPanel("Run First Model", verbatimTextOutput("runms")),715 tabPanel("Feature Importance Plot", plotlyOutput("importancePlotms", width = "100%", height = "625px")),716 tabPanel("Model Prediction",717 tabsetPanel(718 tabPanel("Predicted Result", verbatimTextOutput("predictionOutputms")),719 tabPanel("Predicted Plot", plotlyOutput("performancePlotms", width = "100%", height = "625px"))720 )721 )722 )723 724 )725 )726 ),727 tabPanel("Ridge Regression",728 sidebarLayout(729 sidebarPanel(730 fileInput("rrinput", "Choose a CSV or XLSX file", accept = c(".csv", ".xlsx")),731 actionButton("loadrr", "Load Data"),732 selectInput("targetrr", "Select Target Column", choices = NULL),733 selectizeInput("independentVarrr", "Select Independent Variables", choices = NULL, multiple = TRUE),734 sliderInput("dataSplitrr", 735 "Data Split Ratio",736 min = 0.1,737 max = 0.9,738 value = 0.7, # Default value, for instance, 70% for training and 30% for testing739 step = 0.05,740 ticks = FALSE,741 animate = TRUE),742 actionButton("runrr", "Run Prior Steps"),743 actionButton("RidgeBtn", "Predict"),744 HTML("<div>745 <h2>Ridge Regresyon Paneli</h2>746 747 <h3>Çıktı Nedir ve Neden Kullanılır?</h3>748 <p>Ridge Regresyonu, çoklu doğrusal regresyon modellerinde aşırı uyumun önlenmesine yardımcı olan bir düzenlileştirme tekniğidir. Bu panel, yüksek boyutlu veri setlerinde bile değişkenler arası ilişkileri daha iyi anlamak için Ridge Regresyon modelini kullanır.</p>749 750 <h3>Kullanım Adımları:</h3>751 <ol>752 <li><strong>Veri Dosyası Yükleme:</strong> Analize başlamak için uygun bir CSV veya XLSX dosyası yükleyin.</li>753 <li><strong>Hedef ve Bağımsız Değişkenlerin Seçimi:</strong> Modelde hedef değişken olarak neyin tahmin edileceğini ve hangi bağımsız değişkenlerin kullanılacağını seçin.</li>754 <li><strong>Veri Bölme Oranı Ayarlama:</strong> Veri setinin eğitim ve test seti olarak nasıl bölüneceğini belirleyin.</li>755 <li><strong>Model Eğitimi ve Değerlendirme:</strong> Modeli eğitin ve performansını değerlendirin. Modelin nasıl performans gösterdiğini ve hangi değişkenlerin önemli olduğunu öğrenin.</li>756 </ol>757 758 <h3>Kullanıcı Etkileşimi:</h3>759 <p>Kullanıcılar, panel aracılığıyla veri setlerini yükleyebilir, model parametrelerini ayarlayabilir ve modelin performansını değerlendirme sonuçlarını görüntüleyebilir. Bu süreç, veri bilimi projelerinde kritik öneme sahip olan modelleme ve analiz işlemlerini kolaylaştırır.</p>760 761 <h3>Veri Bilimi ve Makine Öğrenmesindeki Uygulamaları:</h3>762 <p>Ridge Regresyonu, özellikle çok sayıda özellik içeren veri setlerinde ve değişkenler arasında yüksek korelasyon olduğunda kullanışlıdır. Model karmaşıklığını kontrol ederek aşırı uyumu azaltır ve modelin genelleştirme yeteneğini artırır.</p>763 764 <h3>Desteklenen Dosya Tipleri ve Seçenekler:</h3>765 <p>Panel, CSV (.csv) ve Excel (.xlsx) formatlarındaki veri dosyalarını destekler, bu da kullanıcıların çeşitli veri kaynaklarından kolayca veri yüklemesine olanak tanır.</p>766 767 <h3>Sonuçların Yorumlanması:</h3>768 <p>Modelin başarısı, RMSE, R-kare gibi metriklerle değerlendirilir. Ayrıca, değişkenlerin model üzerindeki etkisi ve önemi hakkında bilgiler sunulur, bu da hangi özelliklerin hedef değişkeni en çok etkilediğini anlamaya yardımcı olur.</p>769 770 <ul>771 <li><strong>Model Özeti:</strong> Modelin ayar parametreleri, performans metrikleri ve doğrulama sonuçları hakkında ayrıntılı bilgi sağlar.</li>772 <li><strong>Özellik Önemi:</strong> Model tahminlerinde hangi bağımsız değişkenlerin daha etkili olduğunu gösterir.</li>773 <li><strong>Tahmin Sonuçları:</strong> Modelin test veri seti üzerindeki tahminleri ve bu tahminlerin gerçek değerlerle olan karşılaştırması.</li>774 </ul>775 776 <p>Ridge Regresyon paneli, modelin veri setindeki özellikler arasındaki karmaşık ilişkileri nasıl yakaladığını ve tahminlerin doğ777 778ruluğunu nasıl artırdığını gösterir.</p>779</div>")780 ),781 mainPanel(782 tabsetPanel(783 tabPanel("Data Summary", verbatimTextOutput("dataSummaryrr")),784 tabPanel("Run First Model", verbatimTextOutput("runrr")),785 tabPanel("Feature Importance Plot", plotlyOutput("importancePlotrr", width = "100%", height = "625px")),786 tabPanel("Model Prediction",787 tabsetPanel(788 tabPanel("Predicted Result", verbatimTextOutput("predictionOutputrr")),789 tabPanel("Predicted Plot", plotlyOutput("performancePlotrr", width = "100%", height = "625px"))790 )791 )792 )793 794 )795 )796 ),797 tabPanel("LASSO Regression",798 sidebarLayout(799 sidebarPanel(800 fileInput("lsinput", "Choose a CSV or XLSX file", accept = c(".csv", ".xlsx")),801 actionButton("loadls", "Load Data"),802 selectInput("targetls", "Select Target Column", choices = NULL),803 selectizeInput("independentVarls", "Select Independent Variables", choices = NULL, multiple = TRUE),804 sliderInput("dataSplitls", 805 "Data Split Ratio",806 min = 0.1,807 max = 0.9,808 value = 0.7, # Default value, for instance, 70% for training and 30% for testing809 step = 0.05,810 ticks = FALSE,811 animate = TRUE),812 actionButton("runls", "Run Prior Steps"),813 actionButton("LassoBtn", "Predict"),814 HTML("<div>815 <h2>LASSO Regresyon Paneli</h2>816 817 <h3>Çıktı Nedir ve Neden Kullanılır?</h3>818 <p>LASSO Regresyonu, özellik seçimi ve düzenlileştirme sağlayarak modelin karmaşıklığını azaltır ve genelleştirme kabiliyetini artırır. Bu panel, veri setlerindeki değişkenler arasındaki ilişkileri anlamak ve önemli özellikleri belirlemek için LASSO Regresyon modelini kullanır.</p>819 820 <h3>Kullanım Adımları:</h3>821 <ol>822 <li><strong>Veri Dosyası Yükleme:</strong> Analize başlamak için bir CSV veya XLSX dosyası yükleyin.</li>823 <li><strong>Hedef ve Bağımsız Değişkenlerin Seçimi:</strong> Modelin neyi tahmin edeceğini ve hangi bağımsız değişkenlerin kullanılacağını seçin.</li>824 <li><strong>Veri Bölme Oranı Ayarlama:</strong> Eğitim ve test setlerinin nasıl bölüneceğini belirleyin.</li>825 <li><strong>Model Eğitimi ve Değerlendirme:</strong> Modeli eğitin, performansını değerlendirin ve önemli özellikleri keşfedin.</li>826 </ol>827 828 <h3>Kullanıcı Etkileşimi:</h3>829 <p>Kullanıcılar, veri setlerini yükleyebilir, model parametrelerini ayarlayabilir ve modelin nasıl performans gösterdiğini anlayabilir. Panel, modelleme ve analiz işlemlerini kolaylaştırarak veri bilimi projelerinde değerli bir araç sunar.</p>830 831 <h3>Veri Bilimi ve Makine Öğrenmesindeki Uygulamaları:</h3>832 <p>LASSO Regresyonu, özellikle çok sayıda özelliği olan ve değişkenler arasında yüksek korelasyon bulunan veri setlerinde kullanışlıdır. Model, önemsiz özellikleri sıfıra yaklaştırarak özellik seçimi yapar ve daha anlamlı tahminler sağlar.</p>833 834 <h3>Desteklenen Dosya Tipleri ve Seçenekler:</h3>835 <p>Panel, CSV (.csv) ve Excel (.xlsx) formatlarını destekler, bu da kullanıcıların farklı veri kaynaklarından kolaylıkla veri yüklemesine olanak tanır.</p>836 837 <h3>Sonuçların Yorumlanması:</h3>838 <p>Modelin başarısı, RMSE, R-kare gibi metriklerle değerlendirilir. Ayrıca, modelin hangi değişkenleri önemli bulduğu ve tahminlerin doğruluğu hakkında bilgi sunulur.</p>839 840 <ul>841 <li><strong>Model Özeti:</strong> Modelin performans metrikleri, ayar parametreleri ve doğrulama sonuçları hakkında detaylı bilgiler sağlar.</li>842 <li><strong>Özellik Önemi:</strong> Model tahminlerinde hangi bağımsız değişkenlerin daha etkili olduğunu belirler.</li>843 <li><strong>Tahmin Sonuçları:</strong> Modelin test veri seti üzerindeki tahmin sonuçları ve bu tahminlerin gerçek değerlerle karşılaştırılması.</li>844 </ul>845 846 <p>LASSO Regresyon paneli, modelin veri setindeki özellikler arasındaki ilişkileri nasıl çözümlendiğini ve tahminlerin doğruluğunu nasıl artırdığını gösterir.</p>847</div>")848 ),849 mainPanel(850 tabsetPanel(851 tabPanel("Data Summary", verbatimTextOutput("dataSummaryls")),852 tabPanel("Run First Model", verbatimTextOutput("runls")),853 tabPanel("Feature Importance Plot", plotlyOutput("importancePlotls", width = "100%", height = "625px")),854 tabPanel("Model Prediction",855 tabsetPanel(856 tabPanel("Predicted Result", verbatimTextOutput("predictionOutputls")),857 tabPanel("Predicted Plot", plotlyOutput("performancePlotls", width = "100%", height = "625px"))858 )859 )860 )861 862 )863 )864 )865 866 )867 868)869 870server <- function(input, output, session) {871 872 ##Supervised Learning873 ###Simple Linear Regression874 # Define reactive values for each assumption test875 shapiroTestResult <- reactiveVal()876 ncvTestResult <- reactiveVal()877 linearityPlot <- reactiveVal()878 durbinWatsonTestResult <- reactiveVal()879 modelslr <- reactiveVal()880 dataslr <- reactiveVal(NULL)881 modelslreva <- reactiveVal(NULL)882 dataslreva <- reactiveVal(NULL)883 # Fix the data loading and cleaning part884 observeEvent(input$loadslr, {885 file <- input$slrinput886 if (!is.null(file)) {887 data_slr <- read_data(file$datapath)888 data_slr <- clean_column_names(data_slr)889 dataslr(data_slr) # Update the reactive value correctly890 updateSelectInput(session, "targetslr", choices = colnames(data_slr))891 updateSelectizeInput(session, "independentVar", choices = setdiff(colnames(data_slr), input$targetslr))892 }893 })894 895 output$slrsummary <- renderPrint({896 req(dataslr())897 summary(dataslr())898 })899 900 # Observe the action button for triggering assumption tests901 observeEvent(input$slrassumption, {902 req(dataslr(), input$targetslr, input$independentVar)903 data_slr <- dataslr()904 target_col <- input$targetslr905 independent_var <- input$independentVar906 907 # Ensure the target and independent variables are available908 if (is.null(data_slr[[target_col]]) || is.null(data_slr[[independent_var]])) {909 return("Target or independent variable not found in the data.")910 }911 912 # Filter out rows where any character column is an empty string913 data_slr <- data_slr %>% dplyr::select(all_of(target_col), all_of(independent_var)) %>%914 na.omit()915 916 # Split the data into training and testing sets917 set.seed(123)918 split_ratio <- input$dataSplitslr919 training.samples <- createDataPartition(data_slr[[target_col]], p = split_ratio, list = FALSE)920 train_data <- data_slr[training.samples, ]921 test_data <- data_slr[-training.samples, ]922 923 # Fit the linear regression model924 fitted_model <- lm(reformulate(independent_var, target_col), data = train_data)925 modelslr(fitted_model) # Update the reactive value926 927 # Print the summary of the model928 summary(fitted_model)929 })930 931 output$shapiroTest <- renderPrint({932 req(dataslr(), input$targetslr, input$independentVar)933 data_slr <- dataslr()934 target_col <- input$targetslr935 independent_var <- input$independentVar936 # Ensure the target and independent variables are available937 if (is.null(data_slr[[target_col]]) || is.null(data_slr[[independent_var]])) {938 return("Target or independent variable not found in the data.")939 }940 941 # Filter out rows where any character column is an empty string942 data_slr <- data_slr %>% dplyr::select(all_of(target_col), all_of(independent_var)) %>%943 na.omit()944 945 # Split the data into training and testing sets946 set.seed(123)947 split_ratio <- input$dataSplitslr948 training.samples <- createDataPartition(data_slr[[target_col]], p = split_ratio, list = FALSE)949 train_data <- data_slr[training.samples, ]950 test_data <- data_slr[-training.samples, ]951 952 # Fit the linear regression model953 fitted_model <- lm(reformulate(independent_var, target_col), data = train_data)954 modelslr(fitted_model) # Update the reactive value955 956 # Print the summary of the model957 summary(fitted_model)958 # Shapiro-Wilk Test for Normality959 cat("\nShapiro-Wilk Test for Normality of Residuals:\n")960 shap_Test <- shapiro.test(fitted_model$residuals)961 print(shap_Test)962 if (shap_Test$p.value > 0.05) {963 cat("Result: Residuals appear to be normally distributed.\n")964 } else {965 cat("Result: Residuals may not be normally distributed.\n")966 }967 })968 969 970 output$ncvTest <- renderPrint({971 req(modelslr()) # Ensure modelslr is available972 fitted_model <- modelslr() # Access the model973 974 # Perform Breusch-Pagan Test for Heteroscedasticity975 cat("\nBreusch-Pagan Test for Heteroscedasticity:\n")976 bp_test_result <- tryCatch({977 bptest(fitted_model)978 }, error = function(e) {979 cat("Error in conducting Breusch-Pagan test: ", e$message, "\n")980 NULL # Return NULL in case of error981 })982 983 if (!is.null(bp_test_result) && !is.na(bp_test_result$p.value)) {984 print(bp_test_result)985 if (bp_test_result$p.value > 0.05) {986 cat("Result: No evidence of heteroscedasticity.\n")987 } else {988 cat("Result: There may be heteroscedasticity.\n")989 }990 } else {991 cat("Result: Breusch-Pagan test could not be conducted.\n")992 }993 })994 995 output$linearityPlotOutput <- renderPlotly({996 req(dataslr(), input$targetslr, input$independentVar)997 data_slr <- dataslr()998 target_col <- input$targetslr999 independent_var <- input$independentVar1000 # Ensure the target and independent variables are available1001 if (is.null(data_slr[[target_col]]) || is.null(data_slr[[independent_var]])) {1002 return("Target or independent variable not found in the data.")1003 }1004 1005 # Filter out rows where any character column is an empty string1006 data_slr <- data_slr %>% dplyr::select(all_of(target_col), all_of(independent_var)) %>%1007 na.omit()1008 1009 # Split the data into training and testing sets1010 set.seed(123)1011 split_ratio <- input$dataSplitslr1012 training.samples <- createDataPartition(data_slr[[target_col]], p = split_ratio, list = FALSE)1013 train_data <- data_slr[training.samples, ]1014 test_data <- data_slr[-training.samples, ]1015 1016 # Fit the linear regression model1017 fitted_model <- lm(reformulate(independent_var, target_col), data = train_data)1018 # Create the ggplot object for the linearity plot1019 ggplot_object <- ggplot(train_data, aes_string(x = independent_var, y = target_col)) +1020 geom_point(color = "darkorange") +1021 geom_smooth(method = "lm", se = FALSE, color = "dodgerblue") +1022 ggtitle("Linearity") +1023 scale_x_continuous(name = independent_var) +1024 scale_y_continuous(name = target_col)1025 1026 # Convert ggplot object to plotly and render1027 ggplotly(ggplot_object)1028 })1029 1030 output$durbinWatsonTest <- renderPrint({1031 req(modelslr()) # Ensure modelslr is available1032 fitted_model <- modelslr() # Access the model1033 1034 # Perform Durbin-Watson Test for Autocorrelation1035 dw_test_result <- tryCatch({1036 lmtest::dwtest(fitted_model)1037 }, error = function(e) {1038 cat("Error in conducting Durbin-Watson test: ", e$message, "\n")1039 NULL # Return NULL in case of error1040 })1041 1042 if (!is.null(dw_test_result) && !is.na(dw_test_result$p.value)) {1043 cat("\nDurbin-Watson Test for Autocorrelation:\n")1044 print(dw_test_result)1045 if (dw_test_result$p.value > 0.05) {1046 cat("Result: No evidence of autocorrelation.\n")1047 } else {1048 cat("Result: There may be autocorrelation in the residuals.\n")1049 }1050 } else {1051 cat("Result: Durbin-Watson test could not be conducted.\n")1052 }1053 })1054 1055 # Server function to create diagnostic plots1056 output$residualsFittedPlot <- renderPlotly({1057 req(modelslr())1058 fitted_model <- modelslr()1059 1060 p <- ggplot(fitted_model, aes(.fitted, .resid)) +1061 geom_point(color = "darkorange") +1062 geom_smooth(method = "lm", se = FALSE, color = "dodgerblue") +1063 labs(title = "Residuals vs Fitted", x = "Fitted Values", y = "Residuals")1064 1065 ggplotly(p)1066 })1067 1068 output$qqPlot <- renderPlotly({1069 req(modelslr())1070 fitted_model <- modelslr()1071 1072 p <- ggplot(fitted_model, aes(sample = .stdresid)) +1073 stat_qq(color = "darkorange") +1074 stat_qq_line(color = "dodgerblue") +1075 labs(title = "Normal Q-Q")1076 1077 ggplotly(p)1078 })1079 1080 output$scaleLocationPlot <- renderPlotly({1081 req(modelslr())1082 fitted_model <- modelslr()1083 1084 p <- ggplot(fitted_model, aes(.fitted, sqrt(abs(.resid)))) +1085 geom_point(color = "darkorange") +1086 geom_smooth(method = "lm", se = FALSE, color = "dodgerblue") +1087 labs(title = "Scale-Location", x = "Fitted Values", y = "Sqrt(|Residuals|)")1088 1089 ggplotly(p)1090 })1091 1092 output$residualsLeveragePlot <- renderPlotly({1093 req(modelslr())1094 fitted_model <- modelslr()1095 1096 p <- ggplot(fitted_model, aes(.hat, .stdresid)) +1097 geom_point(aes(size = .cooksd), shape = 1, color = "darkorange") +1098 geom_smooth(method = "lm", se = FALSE, color = "dodgerblue") +1099 labs(title = "Residuals vs Leverage", x = "Leverage", y = "Standardized Residuals")1100 1101 ggplotly(p)1102 })1103 1104 1105 # Define the reactive value for the data and model at the top of the server function1106 dataslreva <- reactiveVal(NULL)1107 modelslreva <- reactiveVal(NULL)1108 test_data_slr <- reactiveVal(NULL) 1109 1110 # Load and clean data1111 observeEvent(input$loadslr, {1112 req(input$slrinput)1113 file <- input$slrinput1114 if (!is.null(file)) {1115 data_slreva <- read_data(file$datapath)1116 data_slreva <- clean_column_names(data_slreva)1117 dataslreva(data_slreva) # Update the reactive value correctly1118 updateSelectInput(session, "targetslr", choices = colnames(data_slreva))1119 updateSelectizeInput(session, "independentVar", choices = setdiff(colnames(data_slreva), input$targetslr))1120 }1121 })1122 1123 observeEvent(input$slrmodel, {1124 req(dataslreva(), input$targetslr, input$independentVar)1125 data_slreva <- dataslreva()1126 target_col <- input$targetslr1127 independent_var <- input$independentVar1128 1129 # Ensure the target and independent variables are available1130 if (is.null(data_slreva[[target_col]]) || is.null(data_slreva[[independent_var]])) {1131 return("Target or independent variable not found in the data.")1132 }1133 1134 # Filter out rows with NAs and split the data1135 data_slreva <- na.omit(data_slreva[, c(target_col, independent_var)])1136 set.seed(123)1137 split_ratio <- input$dataSplitslr1138 training.samples <- createDataPartition(data_slreva[[target_col]], p = split_ratio, list = FALSE)1139 train_data <- data_slreva[training.samples, ]1140 test_data <- data_slreva[-training.samples, ]1141 1142 # Fit the linear regression model and update the reactive value1143 fitted_modelslr <- lm(reformulate(independent_var, target_col), data = train_data)1144 modelslreva(fitted_modelslr)1145 1146 # After fitting the model, update test_data_slr reactive value1147 test_data_slr(test_data) # Store test_data in the reactive value1148 })1149 1150 output$slrmodeleva <- renderPrint({1151 req(modelslreva())1152 fitted_modelslr <- modelslreva()1153 1154 if (inherits(fitted_modelslr, "lm")) {1155 # Model Summary1156 cat("Model Summary:\n")1157 print(summary(fitted_modelslr))1158 1159 # Interpretation of the key components1160 cat("\nInterpretation:\n")1161 cat("1. Coefficients: Estimates of the model parameters.\n")1162 cat(" - Intercept: Represents the predicted value of the dependent variable when all independent variables are zero.\n")1163 cat(" - Slope: Represents the change in the dependent variable for a one-unit change in the independent variable.\n")1164 cat("2. Residual standard error: Measures the quality of the linear regression fit.\n")1165 cat(" - Lower values indicate a better fit.\n")1166 cat("3. Multiple R-squared: Indicates the proportion of variance in the dependent variable explained by the model.\n")1167 cat(" - Values closer to 1 suggest a better explanatory power of the model.\n")1168 cat("4. F-statistic and p-value: Test the overall significance of the model.\n")1169 cat(" - A low p-value (< 0.05) indicates that the model is statistically significant.\n")1170 1171 # Additional specific interpretations can be added here1172 } else {1173 "Model has not been run or is not a linear model."1174 }1175 })1176 1177 # Render print for correlation coefficient1178 output$corcoefslr <- renderPrint({1179 req(modelslreva(), test_data_slr()) # Ensure model and test data are available1180 fitted_modelslr <- modelslreva()1181 test_data <- test_data_slr() # Access the test data1182 target_col <- input$targetslr1183 independent_var <- input$independentVar1184 1185 # Prediction and calculation of correlation coefficient1186 lm_predict <- predict(fitted_modelslr, newdata = test_data)1187 actual_pred <- data.frame(actuals = test_data[[target_col]], predicted = lm_predict)1188 cor_accuracy <- cor(actual_pred$actuals, actual_pred$predicted)1189 1190 # Output with interpretation1191 cat("Correlation Coefficient between Actual and Predicted Values:\n")1192 cat(cor_accuracy, "\n\n")1193 1194 # Interpretation of the correlation coefficient1195 cat("Interpretation:\n")1196 if(cor_accuracy > 0.75) {1197 cat("The model has a strong positive correlation between actual and predicted values.\n")1198 } else if(cor_accuracy > 0.5) {1199 cat("The model has a moderate positive correlation between actual and predicted values.\n")1200 } else if(cor_accuracy > 0.25) {