Skip to content

Instantly share code, notes, and snippets.

@adammb86
Last active January 3, 2020 15:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save adammb86/bd25191d1faae13c19bae38da8083683 to your computer and use it in GitHub Desktop.
Save adammb86/bd25191d1faae13c19bae38da8083683 to your computer and use it in GitHub Desktop.
Ujicoba Data Mining Association Rule
#
install.packages('dataset')
Titanic
str(Titanic)
#
dfTitanic<-as.data.frame(Titanic)
head(dfTitanic)
View(dfTitanic)
#
titanic.raw<-NULL
#
for(i in 1:4) {titanic.raw <- cbind(titanic.raw, rep(as.character(dfTitanic[,i]), dfTitanic$Freq))}
titanic.raw <- as.data.frame(titanic.raw)
names(titanic.raw) <- names(dfTitanic)[1:4]
dim(titanic.raw)
#
titanic.raw
View(titanic.raw)
summary(titanic.raw)
#
library("arules")
rules.all<-apriori(titanic.raw)
quality(rules.all) <- round(quality(rules.all), digits=3)
rules.all
#
inspect(rules.all)
quality(rules.all)<-round(quality(rules.all),digits=2)
#
rulesSurvived <- apriori(titanic.raw, control = list(verbose=F),
parameter = list(minlen=2, supp=0.005, conf=0.8),
appearance = list(rhs=c("Survived=No", "Survived=Yes"),
default="lhs"))
quality(rulesSurvived) <- round(quality(rulesSurvived), digits=3)
inspect(rulesSurvived)
#
rulesSurvivedSort<-sort(rulesSurvived,by="confidence")
inspect(rulesSurvived)
#
library(arulesViz)
plot(rulesSurvived)
plot(rules.all, method="graph")
@jafrudin
Copy link

jafrudin commented Jan 3, 2020

Tugas Manajemen Data (RStudio)
Nama : Jafrudin
NPM : 75119003
Jurusan : Magister Sistem Informasi

# Script menggunakan dataset Titanic dan melihat strukturnya

install.packages('dataset')
# Hasilnya sebagai berikut :
Installing package into ‘C:/Users/delphidelta/Documents/R/win-library/3.6’
(as ‘lib’ is unspecified)
--- Please select a CRAN mirror for use in this session ---
Warning message:
package ‘dataset’ is not available (for R version 3.6.2)
Titanic
# Hasilnya sebagai berikut :
, , Age = Child, Survived = No
Sex
Class Male Female
1st 0 0
2nd 0 0
3rd 35 17
Crew 0 0

, , Age = Adult, Survived = No
Sex
Class Male Female
1st 118 4
2nd 154 13
3rd 387 89
Crew 670 3

, , Age = Child, Survived = Yes

  Sex

Class Male Female
1st 5 1
2nd 11 13
3rd 13 14
Crew 0 0

, , Age = Adult, Survived = Yes
Sex
Class Male Female
1st 57 140
2nd 14 80
3rd 75 76
Crew 192 20

str(Titanic)
# Hasilnya sebagai berikut :
'table' num [1:4, 1:2, 1:2, 1:2] 0 0 35 0 0 0 17 0 118 154 ...

  • attr(*, "dimnames")=List of 4
    ..$ Class : chr [1:4] "1st" "2nd" "3rd" "Crew"
    ..$ Sex : chr [1:2] "Male" "Female"
    ..$ Age : chr [1:2] "Child" "Adult"
    ..$ Survived: chr [1:2] "No" "Yes"

# Script mengubah data titanic menjadi data frame

dfTitanic<-as.data.frame(Titanic)
head(dfTitanic)
# Hasilnya sebagai berikut :
Class Sex Age Survived Freq
1 1st Male Child No 0
2 2nd Male Child No 0
3 3rd Male Child No 35
4 Crew Male Child No 0
5 1st Female Child No 0
6 2nd Female Child No 0

View(dfTitanic)
# Hasilnya sebagai berikut :
view_dftitanic

# Mengubah data titanic menjadi data mentah perorang

titanic.raw<-NULL

# Script cbind untuk memetakan atribut terhadap row pada data mentah titanic

for(i in 1:4) {titanic.raw <- cbind(titanic.raw, rep(as.character(dfTitanic[,i]), dfTitanic$Freq))}
titanic.raw <- as.data.frame(titanic.raw)
names(titanic.raw) <- names(dfTitanic)[1:4]
dim(titanic.raw)
# Hasilnya sebagai berikut :
[1] 2201 4

# Script data understanding titanic.raw
titanic.raw
View(titanic.raw)
summary(titanic.raw)

titanic.raw
# Hasilnya sebagai berikut (ada 2201 baris yang tampil)
Class Sex Age Survived
1 3rd Male Child No
2 3rd Male Child No
3 3rd Male Child No
4 3rd Male Child No
5 3rd Male Child No
6 3rd Male Child No
….
View(titanic.raw)
summary(titanic.raw)
# Hasilnya sebagai berikut (Meringkas data yg 2201)
Class Sex Age Survived
1st :325 Female: 470 Adult:2092 No :1490
2nd :285 Male :1731 Child: 109 Yes: 711
3rd :706
Crew:885

# Script menjalankan association rules

library("arules")
Loading required package: Matrix
Attaching package: ‘arules’
The following objects are masked from ‘package:base’:
abbreviate, write
rules.all<-apriori(titanic.raw)
Apriori
Parameter specification:
confidence minval smax arem aval originalSupport maxtime support minlen
0.8 0.1 1 none FALSE TRUE 5 0.1 1
maxlen target ext
10 rules FALSE

Algorithmic control:
filter tree heap memopt load sort verbose
0.1 TRUE TRUE FALSE TRUE 2 TRUE

Absolute minimum support count: 220

set item appearances ...[0 item(s)] done [0.00s].
set transactions ...[10 item(s), 2201 transaction(s)] done [0.00s].
sorting and recoding items ... [9 item(s)] done [0.00s].
creating transaction tree ... done [0.00s].
checking subsets of size 1 2 3 4 done [0.00s].
writing ... [27 rule(s)] done [0.00s].
creating S4 object ... done [0.00s].

quality(rules.all) <- round(quality(rules.all), digits=3)
rules.all
set of 27 rules

# Script memeriksa rules yang terbentuk
inspect(rules.all)
# Hasilnya sebagai berikut :
inspect_rules

quality(rules.all)<-round(quality(rules.all),digits=2)

# Script membentuk rule berdasarkan yang consequencesnya berdasarkan survived
rulesSurvived <- apriori(titanic.raw, control = list(verbose=F),
parameter = list(minlen=2, supp=0.005, conf=0.8),
appearance = list(rhs=c("Survived=No", "Survived=Yes"),
default="lhs"))
quality(rulesSurvived) <- round(quality(rulesSurvived), digits=3)
inspect(rulesSurvived)

# Hasilnya sebagai berikut :

inspect_rules_survived

# Script mengurutkan rule berdasarkan confidence
rulesSurvivedSort<-sort(rulesSurvived,by="confidence")
inspect(rulesSurvived)
# Hasilnya sebagai berikut :

inspect_rules_survived2

# Script visualizasi rules
library(arulesViz)
# Hasilnya sebagai berikut :
Loading required package: grid
Registered S3 method overwritten by 'seriation':
method from
reorder.hclust gclus

plot(rulesSurvived)
# Hasilnya sebagai berikut :
plot_rules_survived

plot(rules.all, method="graph")
# Hasilnya sebagai berikut :
plot_rules_method_graph

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment