[Link].
:1b Basics of R-programming
x<-2
x
5+3
10-2
3*2
8/2
num_var<-10.5
int_var<-[Link](5)
char_var<-"Hello"
bool_var<-TRUE
class(num_var)
class(int_var)
class(char_var)
class(bool_var)
d=10
z<-2
k<<-3
4->v
5->>n
a<-10
b<-5
sum<-a+b
diff<-a-b
pro<-a*b
quo<-a/b
exp<-a^b
mod<-a%%b
int_div<-a%/%b
print(sum)
print(diff)
print(pro)
print(quo)
print(exp)
print(mod)
print(int_div)
x<-10
y<-20
print(x==y)
print(x!=y)
print(x<y)
print(x>y)
print(x<=y)
print(x>=y)
p<-TRUE
q<-FALSE
print(p&q)
print(p|q)
print(!p)
ip=readline(prompt="Input your Dept:")
print(ip)
[Link].:2 Data Structures in R
num_v1 <- c(1, 2, 3.14, 4.33, 5)
num_v2 <- c(1,1,2,2,2)
num_v3 <- c(1,1,2,2,3,4)
char_v2 <- c("a", "psg", "3")
int_v3 <- c(2L, 33L, 1L, 56L)
log_v4 <- c(TRUE, FALSE, TRUE, FALSE, TRUE)
print(num_v1)
print(char_v2)
print(int_v3)
print(log_v4)
class(num_v1)
class(char_v2)
class(int_v3)
class(log_v4)
print(num_v1[1])
print(num_v1[c(1, 3)])
print(num_v1+2)
print(num_v1*10)
print(num_v1>4)
print(sum(num_v1))
print(median(num_v1))
print(mean(num_v1))
print(max(num_v1))
print(min(num_v1))
print(mode(num_v2))
print(sd(num_v1))
print(num_v1+num_v2)
print(num_v1+num_v3)
print((num_v1-num_v2))
test_list<-list(roll=1,name="hello",score=c(1,2,3),FALSE)
print(test_list[[3]])
print(test_list$name)
print(test_list$score)
mat1<-matrix(1:9,nrow=3,ncol=3)
print(mat1)
mat2<-matrix(1:9,nrow=3,ncol=3,byrow=TRUE)
print(mat2)
rownames<-c("row1","row2","row3")
colnames<-c("col1","col2","col3")
mat3<-matrix(c(1:9),ncol=3,dimnames = list(rownames,colnames))
print(mat3)
print(mat1[1,2])
print(mat1[2,])
print(mat1[,3])
print(mat1+mat2)
anmat<-matrix(9:1,nrow=3,ncol=3)
print(anmat)
print(mat1+anmat)
print(anmat-mat1)
print(mat1*anmat)
print(anmat/mat1)
stu_id<-c(1:3)
stu_name<-c("Abc","Def","Ghi")
stu_rank<-c("third","first","second")
stu_data<-[Link](stu_id,stu_name,stu_rank)
stu_data
data_frame<-[Link](Names=c("Neetha","Khan","Carol"),
Age=c(10,25,30),
Gender=c("Female","Male","Female"))
print(data_frame)
print(data_frame$Names)
print(data_frame[1,])
print(data_frame[,2])
print(data_frame[1,1])
subset_female<-data_frame[data_frame$Gender=='Female',]
print(subset_female)
data_frame<-data_frame[order(data_frame$Names),]
print(data_frame)
summary(data_frame)
arr=array(1:8,dim=c(2,2,2))
print(arr)
fac=factor(c("Male","Female","Male","Male","Female","Male","Female"))
print(fac)
[Link] Conditional Statements
[Link] a student's marks as input and
classify the grade as:
I. A if marks > 80
ii. B if 60 ≤ marks ≤ 80
iii. C if 40 ≤ marks < 60
iv. Fail if marks < 40
m=readline(prompt="Enter your Mark:")
print(m)
if(m>80){
print("Grade A")
}else if(m>=60 && m<=80){
print("Grade B")
}else if(m>=40 && m<=60){
print("Grade C")
}else{
print("Fail")
}
b.A store gives discounts based on
purchase amount:
[Link] the bill is above ₹5000, apply a 20% discount. [Link]
between ₹2000 and ₹5000, apply a 10% discount.
[Link], no discount.
[Link] the purchase amount as input and calculate the final bill.
d<-[Link](readline(prompt = "Enter the Purchase Amount:")) print(d)
if(d>5000){
price<-d-(d*0.2)
}else if(d>=2000 && d<=5000){
price<-d-(d*0.1)
}else{
price=d
}
print(paste("Bill Amount:",price))
[Link] a program that takes a number N and computes the sum of the first N natural
numbers using a while loop. n<-[Link](readline(prompt="Enter a number:"))
print(n)
sum<-0
while(n>0){
sum<-sum+n
n<-n-1
}
print(sum)
[Link] a function where arguments are (1) temperature, (2) Measure (C/F). The
function should transform C to F and F to C.
convertTemp<-function(a,b){
b<-toupper(b)
if(b=="C"){
Temp=(9/5)*a+32
}else{
Temp=(a-32)*(5/9)
}
return(Temp)
}
print(convertTemp(30,"C"))
print(convertTemp(45,"F"))
[Link] a loop which transforms TempinAD from C to F.
TempinAD<-c(32,32,30,31.5,29,30,35)
Temp<-c(32,32,30,31.5,29,30,35)
for(i in 1:length(Temp)){
Temp[i]<-(9/5)*Temp[i]+32
print(paste(Temp[i]))
}
[Link] Create a data set and visualize using R
[Link]
diam<-[Link]("C:/Users/sjosh/Downloads/[Link]")
head(diam)
tail(diam)
str(diam)
summary(diam)
plot(diam$carat,diam$price,main="Carat Vs
Price",xlab="Carat",ylab="Price",col="cyan",pch=8)
sorted_diam<-diam[order(diam$carat),]
plot(sorted_diam$carat,sorted_diam$price,type="l",
col="purple",lwd=2,main="Price
Overview",xlab="Carat",ylab="Price")
cut_counts<-table(diam$cut)
print(cut_counts)
barplot(cut_counts,[Link]=names(cut_counts),
col="pink",main="Distribution of Diamond Cuts",xlab="Cut
Type",ylab="Count")
barplot(cut_counts,[Link]=names(cut_counts),horiz=TRUE,col="light
blue",
main="Distribution of Diamond Cuts",xlab="Count",ylab="Cut
Type")
barplot(cut_counts,col="violet",main="Distribution of Diamond
Cuts",xlab="Cut Type",ylab="Count",las=2)
diam$Volume<-diam$x*diam$y*diam$z
hist(diam$Volume,col="lavender",main="Distribution of Diamond
Volume",
xlab="Volume",breaks=10)
boxplot(diam$carat,main="Boxplot of
Carat",ylab="Carat",col="lightgreen")
pie(cut_counts,col=rainbow(length(cut_counts)),main="Distribution of
Diamond Cuts",
labels=names(cut_counts))
numeric_data<-diam[,sapply(diam,[Link])]
pairs(numeric_data,main="Pairwise Scatter plot for Diamonds
dataset",col="purple")
corr_matrix<-cor(numeric_data)
print(corr_matrix)
[Link]("corrplot")
library(corrplot)
corrplot(corr_matrix,method="color",type="full",col=colorRampPalette(c(
"purple","violet",
"lightblue"))(200),[Link]="black",[Link]="darkblue",[Link]=45)
[Link]("ggplot2")
library(ggplot2)
[Link]("reshape2")
library(reshape2)
corr_data<-melt(corr_matrix)
print(corr_data)
ggplot(corr_data,aes(Var1,Var2,fill=value))+geom_tile()+
scale_fill_gradient2(low="blue",mid="white",high="magenta",midpoint=0
)+
geom_text(aes(label=round(value,2)),color="black",size=4)+
theme_minimal()+labs(title="Correlation Heatmap of Diamonds
Dataset",x="",y="")
[Link]("dplyr")
library(dplyr)
filtered_data<-filter(diam,price>5000)
filtered_data
selected_data<-select(diam,carat,price,cut)
selected_data
sorted_data<-arrange(diam,desc(price))
sorted_data
mutated_data<-mutate(diam,price_per_carat=price/carat)
mutated_data
summary_data<-diam%>%
group_by(cut)%>%
summarize(avg_price=mean(price))
Summary_data
Exp. No: 05 Exploratory Data Analysis Using R
[Link]
data <- [Link]("C:/Users/sjosh/OneDrive/Desktop/Mall_Customers.csv")
head(data)
colSums([Link](data))
data$Age[[Link](data$Age)] <- median(data$Age, [Link] = TRUE)
data$[Link]..k..[[Link](data$[Link]..k..)] <-
median(data$[Link]..k.., [Link] = TRUE)
data$[Link]..1.100.[[Link](data$[Link]..1.100.)] <-
median(data$[Link]..1.100., [Link] = TRUE)
colSums([Link](data))
data$Genre <- ifelse(data$Genre == "Male", 0, 1)
head(data$Genre)
data$CustomerValue <- data$[Link]..k.. +
data$[Link]..1.100.
head(data[, c("[Link]..k..", "[Link]..1.100.",
"CustomerValue")])
data <- subset(data, select = -c(CustomerID))
head(data)
min_max_scaling <- function(x){
(x - min(x)) / (max(x) - min(x))
}
data$Age <- min_max_scaling(data$Age)
data$[Link]..k.. <- min_max_scaling(data$[Link]..k..)
data$[Link]..1.100. <-
min_max_scaling(data$[Link]..1.100.)
[Link](data,"cleaned_mall_data.csv",[Link] = FALSE)
[Link]: 6(a) Implementation of ML techniques for Predictive Analysis using
Regression models
library(caret)
library(tidyverse)
options(timeout = 600)
[Link]("lava", repos = "[Link]
[Link]("recipes", repos = "[Link]
[Link]("caret", repos = "[Link]
[Link]("stringi")
[Link]("caret")
[Link]("tidyverse")
[Link]("randomForest")
[Link]("rpart")
[Link]("e1071")
data <- mtcars
str(data)
[Link](123)
split <- createDataPartition(data$mpg, p = 0.8, list = FALSE)
train_data <- data[split, ]
test_data <- data[- split, ]
model_lm <- lm(mpg~.,data=train_data)
summary(model_lm)
pred_lm <- predict(model_lm, test_data)
cat("Linear Regression Performance:\n")
print(postResample(pred_lm, test_data$mpg))
library(randomForest)
model_rf <- randomForest(mpg~.,data=train_data)
summary(model_lm)
pred_rf <- predict(model_rf, test_data)
cat("Random Forest Performance:\n")
print(postResample(pred_rf, test_data$mpg))
plot(test_data$mpg, pred_rf, main="Actual vs Predicted MPG (Random Forest)", xlab='Actual',
ylab='Predicted',col='blue', pch=19)
abline(0,1,col='red')
library(randomForest)
library(rpart)
library(e1071)
data <- mtcars
[Link](123)
models <- list()
split <- createDataPartition(data$mpg, p = 0.8, list = FALSE)
train_data <- data[split, ]
test_data <- data[- split, ]
control <- trainControl(method='cv',number=5)
models$lm <- train(mpg~.,data=train_data,method='lm',trControl=control)
models$knn <- train(mpg~.,data=train_data,method='knn',trControl=control)
models$tree <- train(mpg~.,data=train_data,method='rpart',trControl=control)
models$rf <- train(mpg~.,data=train_data,method='rf',trControl=control)
models$svm <-train(mpg~.,data=train_data,method='svmRadial',trControl=control)
results <- [Link](Model = character(), RMSE = numeric(), Rsquared = numeric(),
MAE = numeric(), stringsAsFactors = FALSE)
for (model_name in names(models)){
model <- models[[model_name]]
predictions <- predict(model, newdata=test_data)
metrics <- postResample(predictions, obs=test_data$mpg)
results <- rbind(results, [Link](Model=model_name, RMSE =
metrics['RMSE'],Rsquared=metrics['Rsquared'],MAE=metrics['MAE']))
}
cat("Regression Model Performance Comparision:\n")
print(results[order(results$RMSE),])
barplot(results$RMSE, [Link]=results$Model, col = "skyblue", main='Model Comparision -
RMSE', xlab='Model', ylab='RMSE',las=2)
[Link](b) Implementation of ML Techniques for Predictive Analysis
Classification Models for Predictive Analysis
options(timeout = 600)
[Link]("lava", repos = "[Link]
[Link]("recipes", repos = "[Link]
[Link]("caret", repos = "[Link]
[Link]("stringi")
[Link]("caret")
[Link]("tidyverse")
[Link]("randomForest")
[Link]("rpart")
[Link]("e1071")
library (tidyverse)
library(caret)
library(randomForest)
data <- iris
[Link](123)
split <- createDataPartition(iris$Species, p=0.8, list=FALSE)
train_data <- iris[split,]
test_data <- iris[-split,]
model_rf <- randomForest(Species ~., data = train_data)
predictions <- predict(model_rf, newdata = test_data)
confusionMatrix(predictions, test_data$Species)
models <- list()
control <- trainControl(method='cv',number=5)
models$logistic <- train(Species ~., data = train_data, method = 'multinom', trControl = control,
trace = FALSE)
models$knn <- train(Species ~., data = train_data, method = 'knn', trControl = control)
models$tree <- train(Species ~., data = train_data, method = 'rpart', trControl = control)
models$svm <- train(Species ~., data = train_data, method = 'svmLinear',trControl = control)
models$rf <- train(Species ~., data = train_data, method = 'rf',trControl = control)
results <- [Link](Model = character(), Accuracy = numeric(), stringsAsFactors = FALSE)
for(model_name in names(models)){
model <- models[[model_name]]
predictions <- predict(model, newdata = test_data)
cm <- confusionMatrix(predictions, test_data$Species)
results <- rbind(results, [Link](Model = model_name, Accuracy =
cm$overall["Accuracy"]))
cat("\nModel:", model_name, "\n")
print(cm$table)}
cat("Model Accuracy Comparision:\n")
print(results[order(-results$Accuracy),])
results$Accuracy <- [Link](results$Accuracy)
barplot(results$Accuracy, [Link] = results$Model, col = "skyblue", ylim = c(0,1.1),
main ="Classification Model Accuracy", xlab = "Model", ylab = "Accuracy", las = 2)
text(x = barplot(results$Accuracy,plot = FALSE),y = results$Accuracy + 0.05, labels =
round(results$Accuracy,2))
[Link] Predict the Customer Credit Risk for Credit card data-set
using Linear Regression
[Link]
library(readr)
library(dplyr)
library(ggplot2)
data <- read_csv("C:/Users/Nandhini Akila/Downloads/credit_score.csv")
data <- data %>%
mutate(
AGE = [Link](gsub("[^0-9]", "", Age)),
SALARY = [Link](gsub("[^0-9.]", "", Annual_Income)),
AMOUNT = [Link](gsub("[^0-9.]", "", Outstanding_Debt)),
CREDIT_SCORE = [Link](factor(Credit_Score)),
OCCUPATION = [Link](Occupation) )
data <- [Link](data)
[Link](123)
data$PROPERTY <- sample(c("Owned", "Rented"), nrow(data), replace = TRUE)
data$TYPE <- [Link](data$Type_of_Loan)
data$PROPERTY <- [Link](data$PROPERTY)
data$TYPE <- [Link](substr([Link](data$TYPE), 1, 10))
str(data)
model <- lm(CREDIT_SCORE ~ AMOUNT + SALARY + AGE + OCCUPATION +
PROPERTY + TYPE, data = data)
data$prediction <- predict(model, data)
ggplot(data, aes(x = CREDIT_SCORE, y = prediction)) +
geom_point(color = "blue", size = 2) +
geom_abline(intercept = 0, slope = 1, color = "red", linetype = "dashed") +
labs(
title = "Actual Vs Predicted Credit Score",
x = "Actual Credit Score",
y = "Predicted Credit Score"
)+
theme_minimal()
rmse <- sqrt(mean((data$CREDIT_SCORE - data$prediction)^2))
cat("RMSE:", rmse)
[Link] Apply HR Analytics to make a prediction of the demand for hourly-employees
for the following month or for the next five years
Date,Hourly
2019-01-01,135
2019-02-01,234
2019-03-01,178
2019-04-01,255
2019-05-01,269
2019-06-01,198
2019-07-01,156
2019-08-01,290
2019-09-01,243
2019-10-01,287
2019-11-01,310
2019-12-01,330
2020-01-01,200
2020-02-01,220
2020-03-01,210
2020-04-01,260
2020-05-01,275
2020-06-01,240
2020-07-01,230
2020-08-01,300
[Link]("rstan")
[Link]("prophet")
library(prophet)
library(readr)
library(dplyr)
hdata<-read_csv("C:/Users/Nandhini Akila/Downloads/hr_hourly_employees_demand.csv")
prophet_data<-hdata%>% select(Date,Hourly) %>%
rename(ds=Date,y=Hourly)
prophet_data
prophet_data$ds<-[Link](paste0(prophet_data$ds,"-01"))
prophet_data
model<-prophet(prophet_data)
future<-make_future_dataframe(model,periods = 12,freq = "month")
forecast<-predict(model,future)
plot(model,forecast) + ggtitle("Prophet Forecast: Hourly Employee Demand")
prophet_plot_components(model,forecast)
[Link] Apply Analytics For Forecasting And Inventory Planning For a large retailer
[Link]
[Link]("tidyverse")
library(tidyverse)
[Link]("lubridate")
library(lubridate)
[Link]("forecast")
library(forecast)
[Link]("tseries")
library(tseries)
train <-[Link]("C:/Users/sjosh/OneDrive/Desktop/walmart_forecasting/[Link]")
stores <-[Link]("C:/Users/sjosh/OneDrive/Desktop/walmart_forecasting/[Link]")
data <- merge(train,stores,by="Store")
head(data)
data$Date <- ymd(data$Date)
head(data)
store_data <- data %>% filter(Store ==1,Dept==1) %>% arrange(Date)
store_data
ts_sales <-ts(store_data$Weekly_Sales,frequency = 52,start=c(2010,5))
ts_sales
plot(ts_sales, main="weekly sales")
stl_decomp <- stl(ts_sales,[Link]="periodic")
plot(stl_decomp)
fit <- [Link](ts_sales)
forecast_sales <-forecast(fit,h=12)
plot(forecast_sales)
avg_demand <- mean(store_data$Weekly_Sales)
sd_demand <-sd(store_data$Weekly_Sales)
lead_time <-2
service_level <-1.65
reorder_point <-avg_demand * lead_time + service_level * sd_demand *
sqrt(lead_time)
cat("reorder point:",round(reorder_point,2),"\n")
Ex:10 Predictive Analytics
[Link]
[Link]("lava")
[Link]("recipes")
[Link]("caret")
[Link]("tideyverse")
[Link]("randomForest")
[Link]("arules")
library(tidyverse)
library(recipes)
library(caret)
library(lava)
library(randomForest)
library(arules)
data <- [Link]("C:/Users/PRIYA/Downloads/archive (9)/marketing_campaign1.csv")
colnames(data)
str(data)
data <- [Link](data)
data$TotalSpend <- rowSums(data[, c(
"MntWines","MntFruits","MntMeatProducts",
"MntFishProducts","MntSweetProducts","MntGoldProds"
)], [Link] = TRUE)
data <- data %>% select(-ID, -Dt_Customer, -Z_CostContact, -Z_Revenue)
data$Education <- [Link](data$Education)
data$Marital_Status <- [Link](data$Marital_Status)
library(caret)
[Link](123)
split <- createDataPartition(data$TotalSpend, p = 0.8, list = FALSE)
train_data <- data[split, ]
test_data <- data[-split, ]
model_rf <- randomForest(TotalSpend ~ ., data = train_data, ntree = 100)
pred <- predict(model_rf, test_data)
rmse <- sqrt(mean((pred - test_data$TotalSpend)^2))
cat("RMSE:", round(rmse, 2), "\n")
varImpPlot(model_rf)
cat("\n--- Predicting TotalSpend ---\n")
new_customer <- [Link](
Year_Birth = 1980,
Education = factor("Graduation", levels = levels(train_data$Education)),
Marital_Status = factor("Married", levels = levels(train_data$Marital_Status)),
Income = 60000,
Kidhome = 1,
Teenhome = 0,
Recency = 10,
MntWines = 200,
MntFruits = 50,
MntMeatProducts = 150,
MntFishProducts = 40,
MntSweetProducts = 30,
MntGoldProds = 20,
NumDealsPurchases = 3,
NumWebPurchases = 5,
NumCatalogPurchases = 2,
NumStorePurchases = 6,
NumWebVisitsMonth = 4,
AcceptedCmp3 = 0,
AcceptedCmp4 = 0,
AcceptedCmp5 = 1,
AcceptedCmp1 = 0,
AcceptedCmp2 = 0,
Complain = 0,
Response = 1
)
predicted_spend <- predict(model_rf, new_customer)
cat("Predicted TotalSpend:", round(predicted_spend, 2), "\n")
data$Churn <- ifelse(data$TotalSpend < 300, "Yes", "No")
data$Churn <- [Link](data$Churn)
data <- data %>% select(-TotalSpend)
[Link](123)
split <- createDataPartition(data$Churn, p = 0.8, list = FALSE)
train_data <- data[split, ]
test_data <- data[-split, ]
model_churn <- randomForest(Churn ~ ., data = train_data, ntree = 100)
pred <- predict(model_churn, test_data)
cm <- confusionMatrix(pred, test_data$Churn)
print(cm)
accuracy <- cm$overall['Accuracy']
recall <- cm$byClass['Sensitivity']
precision <- cm$byClass['Pos Pred Value']
f1_score <- 2 * (precision * recall) / (precision + recall)
cat("\nModel Performance:\n")
cat("Accuracy :", round(accuracy, 4), "\n")
cat("Recall :", round(recall, 4), "\n")
cat("Precision:", round(precision, 4), "\n")
cat("F1 Score :", round(f1_score, 4), "\n")
products <- data %>%
select(MntWines, MntFruits, MntMeatProducts,
MntFishProducts, MntSweetProducts, MntGoldProds)
products <- [Link](lapply(products, function(x)
[Link](ifelse(x > 0, "Yes", "No"))))
transactions <- as(products, "transactions")
rules <- apriori(transactions, parameter = list(supp = 0.01, conf = 0.5))
inspect(head(sort(rules, by = "lift"), 10))
new_customer_rules <- c("MntMeatProducts=Yes", "MntFruits=Yes")
matched_rules <- subset(rules, lhs %ain% new_customer_rules)
inspect(sort(matched_rules, by = "confidence")[1:5])