@ -1,129 +0,0 @@ |
|||||
#Linear Regression |
|
||||
|
|
||||
#Import Library |
|
||||
#Import other necessary libraries like pandas, numpy... |
|
||||
from sklearn import linear_model |
|
||||
#Load Train and Test datasets |
|
||||
#Identify feature and response variable(s) and values must be numeric and numpy arrays |
|
||||
x_train=input_variables_values_training_datasets |
|
||||
y_train=target_variables_values_training_datasets |
|
||||
x_test=input_variables_values_test_datasets |
|
||||
# Create linear regression object |
|
||||
linear = linear_model.LinearRegression() |
|
||||
# Train the model using the training sets and check score |
|
||||
linear.fit(x_train, y_train) |
|
||||
linear.score(x_train, y_train) |
|
||||
#Equation coefficient and Intercept |
|
||||
print('Coefficient: \n', linear.coef_) |
|
||||
print('Intercept: \n', linear.intercept_) |
|
||||
#Predict Output |
|
||||
predicted= linear.predict(x_test) |
|
||||
|
|
||||
|
|
||||
|
|
||||
#Logistic Regression |
|
||||
|
|
||||
|
|
||||
#Import Library |
|
||||
from sklearn.linear_model import LogisticRegression |
|
||||
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset |
|
||||
# Create logistic regression object |
|
||||
model = LogisticRegression() |
|
||||
# Train the model using the training sets and check score |
|
||||
model.fit(X, y) |
|
||||
model.score(X, y) |
|
||||
#Equation coefficient and Intercept |
|
||||
print('Coefficient: \n', model.coef_) |
|
||||
print('Intercept: \n', model.intercept_) |
|
||||
#Predict Output |
|
||||
predicted= model.predict(x_test) |
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
#Decision Tree |
|
||||
#Import Library |
|
||||
#Import other necessary libraries like pandas, numpy... |
|
||||
from sklearn import tree |
|
||||
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset |
|
||||
# Create tree object |
|
||||
model = tree.DecisionTreeClassifier(criterion='gini') # for classification, here you can change the algorithm as gini or entropy (information gain) by default it is gini |
|
||||
# model = tree.DecisionTreeRegressor() for regression |
|
||||
# Train the model using the training sets and check score |
|
||||
model.fit(X, y) |
|
||||
model.score(X, y) |
|
||||
#Predict Output |
|
||||
predicted= model.predict(x_test) |
|
||||
|
|
||||
|
|
||||
#SVM |
|
||||
|
|
||||
#Import Library |
|
||||
from sklearn import svm |
|
||||
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset |
|
||||
# Create SVM classification object |
|
||||
model = svm.svc() # there is various option associated with it, this is simple for classification. You can refer link, for mo# re detail. |
|
||||
# Train the model using the training sets and check score |
|
||||
model.fit(X, y) |
|
||||
model.score(X, y) |
|
||||
#Predict Output |
|
||||
predicted= model.predict(x_test) |
|
||||
|
|
||||
# Naive Bayes |
|
||||
|
|
||||
#Import Library |
|
||||
from sklearn.naive_bayes import GaussianNB |
|
||||
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset |
|
||||
# Create SVM classification object model = GaussianNB() # there is other distribution for multinomial classes like Bernoulli Naive Bayes, Refer link |
|
||||
# Train the model using the training sets and check score |
|
||||
model.fit(X, y) |
|
||||
#Predict Output |
|
||||
predicted= model.predict(x_test) |
|
||||
|
|
||||
#kNN (k- Nearest Neighbors) |
|
||||
|
|
||||
#Import Library |
|
||||
from sklearn.neighbors import KNeighborsClassifier |
|
||||
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset |
|
||||
# Create KNeighbors classifier object model |
|
||||
KNeighborsClassifier(n_neighbors=6) # default value for n_neighbors is 5 |
|
||||
# Train the model using the training sets and check score |
|
||||
model.fit(X, y) |
|
||||
#Predict Output |
|
||||
predicted= model.predict(x_test) |
|
||||
|
|
||||
#K-Means |
|
||||
#Import Library |
|
||||
from sklearn.cluster import KMeans |
|
||||
#Assumed you have, X (attributes) for training data set and x_test(attributes) of test_dataset |
|
||||
# Create KNeighbors classifier object model |
|
||||
k_means = KMeans(n_clusters=3, random_state=0) |
|
||||
# Train the model using the training sets and check score |
|
||||
model.fit(X) |
|
||||
#Predict Output |
|
||||
predicted= model.predict(x_test) |
|
||||
|
|
||||
#Random Forest |
|
||||
|
|
||||
#Import Library |
|
||||
from sklearn.ensemble import RandomForestClassifier |
|
||||
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset |
|
||||
# Create Random Forest object |
|
||||
model= RandomForestClassifier() |
|
||||
# Train the model using the training sets and check score |
|
||||
model.fit(X, y) |
|
||||
#Predict Output |
|
||||
predicted= model.predict(x_test) |
|
||||
|
|
||||
#Dimensionality Reduction Algorithms |
|
||||
|
|
||||
#Import Library |
|
||||
from sklearn import decomposition |
|
||||
#Assumed you have training and test data set as train and test |
|
||||
# Create PCA obeject pca= decomposition.PCA(n_components=k) #default value of k =min(n_sample, n_features) |
|
||||
# For Factor analysis |
|
||||
#fa= decomposition.FactorAnalysis() |
|
||||
# Reduced the dimension of training dataset using PCA |
|
||||
train_reduced = pca.fit_transform(train) |
|
||||
#Reduced the dimension of test dataset |
|
||||
test_reduced = pca.transform(test) |
|
@ -1,85 +0,0 @@ |
|||||
#Linear Regression |
|
||||
|
|
||||
#Load Train and Test datasets |
|
||||
#Identify feature and response variable(s) and values must be numeric and numpy arrays |
|
||||
x_train <- input_variables_values_training_datasets |
|
||||
y_train <- target_variables_values_training_datasets |
|
||||
x_test <- input_variables_values_test_datasets |
|
||||
x <- cbind(x_train,y_train) |
|
||||
# Train the model using the training sets and check score |
|
||||
linear <- lm(y_train ~ ., data = x) |
|
||||
summary(linear) |
|
||||
#Predict Output |
|
||||
predicted= predict(linear,x_test) |
|
||||
|
|
||||
#Logistic Regression |
|
||||
|
|
||||
x <- cbind(x_train,y_train) |
|
||||
# Train the model using the training sets and check score |
|
||||
logistic <- glm(y_train ~ ., data = x,family='binomial') |
|
||||
summary(logistic) |
|
||||
#Predict Output |
|
||||
predicted= predict(logistic,x_test) |
|
||||
|
|
||||
#Decision tree |
|
||||
|
|
||||
library(rpart) |
|
||||
x <- cbind(x_train,y_train) |
|
||||
# grow tree |
|
||||
fit <- rpart(y_train ~ ., data = x,method="class") |
|
||||
summary(fit) |
|
||||
#Predict Output |
|
||||
predicted= predict(fit,x_test) |
|
||||
|
|
||||
|
|
||||
#SVM |
|
||||
|
|
||||
library(e1071) |
|
||||
x <- cbind(x_train,y_train) |
|
||||
# Fitting model |
|
||||
fit <-svm(y_train ~ ., data = x) |
|
||||
summary(fit) |
|
||||
#Predict Output |
|
||||
predicted= predict(fit,x_test) |
|
||||
|
|
||||
# Naive Bayes |
|
||||
|
|
||||
library(e1071) |
|
||||
x <- cbind(x_train,y_train) |
|
||||
# Fitting model |
|
||||
fit <-naiveBayes(y_train ~ ., data = x) |
|
||||
summary(fit) |
|
||||
#Predict Output |
|
||||
predicted= predict(fit,x_test) |
|
||||
|
|
||||
#kNN (k- Nearest Neighbors) |
|
||||
|
|
||||
library(knn) |
|
||||
x <- cbind(x_train,y_train) |
|
||||
# Fitting model |
|
||||
fit <-knn(y_train ~ ., data = x,k=5) |
|
||||
summary(fit) |
|
||||
#Predict Output |
|
||||
predicted= predict(fit,x_test) |
|
||||
|
|
||||
#K-Means |
|
||||
|
|
||||
library(cluster) |
|
||||
fit <- kmeans(X, 3) # 5 cluster solution |
|
||||
|
|
||||
#Random Forest |
|
||||
|
|
||||
library(randomForest) |
|
||||
x <- cbind(x_train,y_train) |
|
||||
# Fitting model |
|
||||
fit <- randomForest(Species ~ ., x,ntree=500) |
|
||||
summary(fit) |
|
||||
#Predict Output |
|
||||
predicted= predict(fit,x_test) |
|
||||
|
|
||||
#Dimensionality Reduction Algorithms |
|
||||
|
|
||||
library(stats) |
|
||||
pca <- princomp(train, cor = TRUE) |
|
||||
train_reduced <- predict(pca,train) |
|
||||
test_reduced <- predict(pca,test) |
|
@ -1,108 +0,0 @@ |
|||||
''' |
|
||||
Created on Apr 25, 2016 |
|
||||
test code |
|
||||
@author: Wenqiang Feng |
|
||||
''' |
|
||||
import pandas as pd |
|
||||
#import numpy as np |
|
||||
import matplotlib.pyplot as plt |
|
||||
from pandas.tools.plotting import scatter_matrix |
|
||||
from docutils.parsers.rst.directives import path |
|
||||
|
|
||||
if __name__ == '__main__': |
|
||||
path ='~/Dropbox/MachineLearningAlgorithms/python_code/data/Heart.csv' |
|
||||
rawdata = pd.read_csv(path) |
|
||||
|
|
||||
print "data summary" |
|
||||
print rawdata.describe() |
|
||||
|
|
||||
# summary plot of the data |
|
||||
scatter_matrix(rawdata,figsize=[15,15]) |
|
||||
plt.show() |
|
||||
|
|
||||
# Histogram |
|
||||
rawdata.hist() |
|
||||
plt.show() |
|
||||
|
|
||||
# boxplot |
|
||||
pd.DataFrame.boxplot(rawdata) |
|
||||
plt.show() |
|
||||
|
|
||||
|
|
||||
print "Raw data size" |
|
||||
nrow, ncol = rawdata.shape |
|
||||
print nrow, ncol |
|
||||
|
|
||||
path = ('/home/feng/Dropbox/MachineLearningAlgorithms/python_code/data/' |
|
||||
'energy_efficiency.xlsx') |
|
||||
path |
|
||||
|
|
||||
rawdataEnergy= pd.read_excel(path,sheetname=0) |
|
||||
|
|
||||
nrow=rawdata.shape[0] #gives number of row count |
|
||||
ncol=rawdata.shape[1] #gives number of col count |
|
||||
print nrow, ncol |
|
||||
col_names = rawdata.columns.tolist() |
|
||||
print "Column names:" |
|
||||
print col_names |
|
||||
print "Data Format:" |
|
||||
print rawdata.dtypes |
|
||||
|
|
||||
print "\nSample data:" |
|
||||
print(rawdata.head(6)) |
|
||||
|
|
||||
|
|
||||
print "\n correlation Matrix" |
|
||||
print rawdata.corr() |
|
||||
|
|
||||
# cocorrelation Matrix plot |
|
||||
pd.DataFrame.corr(rawdata) |
|
||||
plt.show() |
|
||||
|
|
||||
print "\n covariance Matrix" |
|
||||
print rawdata.cov() |
|
||||
|
|
||||
print rawdata[['Age','Ca']].corr() |
|
||||
pd.DataFrame.corr(rawdata) |
|
||||
plt.show() |
|
||||
|
|
||||
|
|
||||
|
|
||||
# define colors list, to be used to plot survived either red (=0) or green (=1) |
|
||||
colors=['red','green'] |
|
||||
|
|
||||
# make a scatter plot |
|
||||
|
|
||||
# rawdata.info() |
|
||||
|
|
||||
from scipy import stats |
|
||||
import seaborn as sns # just a conventional alias, don't know why |
|
||||
sns.corrplot(rawdata) # compute and plot the pair-wise correlations |
|
||||
# save to file, remove the big white borders |
|
||||
#plt.savefig('attribute_correlations.png', tight_layout=True) |
|
||||
plt.show() |
|
||||
|
|
||||
|
|
||||
attr = rawdata['Age'] |
|
||||
sns.distplot(attr) |
|
||||
plt.show() |
|
||||
|
|
||||
sns.distplot(attr, kde=False, fit=stats.gamma); |
|
||||
plt.show() |
|
||||
|
|
||||
# Two subplots, the axes array is 1-d |
|
||||
plt.figure(1) |
|
||||
plt.title('Histogram of Age') |
|
||||
plt.subplot(211) # 21,1 means first one of 2 rows, 1 col |
|
||||
sns.distplot(attr) |
|
||||
|
|
||||
plt.subplot(212) # 21,2 means second one of 2 rows, 1 col |
|
||||
sns.distplot(attr, kde=False, fit=stats.gamma); |
|
||||
|
|
||||
plt.show() |
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
@ -1,83 +0,0 @@ |
|||||
rm(list = ls()) |
|
||||
# set the enverionment |
|
||||
path ='~/Dropbox/MachineLearningAlgorithms/python_code/data/Heart.csv' |
|
||||
rawdata = read.csv(path) |
|
||||
|
|
||||
# summary of the data |
|
||||
summary(rawdata) |
|
||||
# plot of the summary |
|
||||
plot(rawdata) |
|
||||
|
|
||||
dim(rawdata) |
|
||||
head(rawdata) |
|
||||
tail(rawdata) |
|
||||
|
|
||||
colnames(rawdata) |
|
||||
attach(rawdata) |
|
||||
|
|
||||
# get numerical data and remove NAN |
|
||||
numdata=na.omit(rawdata[,c(1:2,4:12)]) |
|
||||
|
|
||||
cor(numdata) |
|
||||
cov(numdata) |
|
||||
|
|
||||
dev.off() |
|
||||
# laod cocorrelation Matrix plot lib |
|
||||
library(corrplot) |
|
||||
M <- cor(numdata) |
|
||||
#par(mfrow =c (1,2)) |
|
||||
#corrplot(M, method = "square") |
|
||||
corrplot.mixed(M) |
|
||||
|
|
||||
|
|
||||
nrow=nrow(rawdata) |
|
||||
ncol=ncol(rawdata) |
|
||||
c(nrow, ncol) |
|
||||
|
|
||||
|
|
||||
|
|
||||
Nvars=ncol(numdata) |
|
||||
# checking data format |
|
||||
typeof(rawdata) |
|
||||
install.packages("mlbench") |
|
||||
library(mlbench) |
|
||||
sapply(rawdata, class) |
|
||||
|
|
||||
dev.off() |
|
||||
name=colnames(numdata) |
|
||||
Nvars=ncol(numdata) |
|
||||
# boxplot |
|
||||
par(mfrow =c (4,3)) |
|
||||
for (i in 1:Nvars) |
|
||||
{ |
|
||||
#boxplot(numdata[,i]~numdata[,Nvars],data=data,main=name[i]) |
|
||||
boxplot(numdata[,i],data=numdata,main=name[i]) |
|
||||
} |
|
||||
|
|
||||
# Histogram with normal curve plot |
|
||||
dev.off() |
|
||||
Nvars=ncol(numdata) |
|
||||
name=colnames(numdata) |
|
||||
par(mfrow =c (3,5)) |
|
||||
for (i in 1:Nvars) |
|
||||
{ |
|
||||
x<- numdata[,i] |
|
||||
h<-hist(x, breaks=10, freq=TRUE, col="blue", xlab=name[i],main=" ", |
|
||||
font.lab=1) |
|
||||
axis(1, tck=1, col.ticks="light gray") |
|
||||
axis(1, tck=-0.015, col.ticks="black") |
|
||||
axis(2, tck=1, col.ticks="light gray", lwd.ticks="1") |
|
||||
axis(2, tck=-0.015) |
|
||||
xfit<-seq(min(x),max(x),length=40) |
|
||||
yfit<-dnorm(xfit,mean=mean(x),sd=sd(x)) |
|
||||
yfit <- yfit*diff(h$mids[1:2])*length(x) |
|
||||
lines(xfit, yfit, col="blue", lwd=2) |
|
||||
} |
|
||||
|
|
||||
|
|
||||
library(reshape2) |
|
||||
library(ggplot2) |
|
||||
d <- melt(diamonds[,-c(2:4)]) |
|
||||
ggplot(d,aes(x = value)) + |
|
||||
facet_wrap(~variable,scales = "free_x") + |
|
||||
geom_histogram() |
|
@ -1,20 +0,0 @@ |
|||||
#LinearRegression] |
|
||||
|
|
||||
#Import Library |
|
||||
#Import other necessary libraries like pandas, numpy... |
|
||||
from sklearn import linear_model |
|
||||
#Load Train and Test datasets |
|
||||
#Identify feature and response variable(s) and values must be numeric and numpy arrays |
|
||||
x_train=input_variables_values_training_datasets |
|
||||
y_train=target_variables_values_training_datasets |
|
||||
x_test=input_variables_values_test_datasets |
|
||||
# Create linear regression object |
|
||||
linear = linear_model.LinearRegression() |
|
||||
# Train the model using the training sets and check score |
|
||||
linear.fit(x_train, y_train) |
|
||||
linear.score(x_train, y_train) |
|
||||
#Equation coefficient and Intercept |
|
||||
print('Coefficient: \n', linear.coef_) |
|
||||
print('Intercept: \n', linear.intercept_) |
|
||||
#Predict Output |
|
||||
predicted= linear.predict(x_test) |
|
Before Width: | Height: | Size: 26 KiB |
@ -1,25 +0,0 @@ |
|||||
\begin{thebibliography}{1} |
|
||||
|
|
||||
\bibitem{robust} |
|
||||
|
|
||||
|
|
||||
\bibitem{mirex} |
|
||||
|
|
||||
|
|
||||
\bibitem{hybrid} |
|
||||
|
|
||||
|
|
||||
\bibitem{cuckoo} |
|
||||
Wenlei Shi and Xinhai Fan. |
|
||||
\newblock Speech classification based on cuckoo algorithm and support vector |
|
||||
machines. |
|
||||
\newblock {\em 2nd IEEE International Conference on Computational Intelligence |
|
||||
and Applications}, 2017. |
|
||||
|
|
||||
\bibitem{radio} |
|
||||
Błażej~Chwiećko Stanisław~Kacprzak and Bartosz Ziółko. |
|
||||
\newblock Speech/music discrimination for analysis of radio stations. |
|
||||
\newblock {\em 2017 International Conference on Systems, Signals and Image |
|
||||
Processing (IWSSIP)}, 2017. |
|
||||
|
|
||||
\end{thebibliography} |
|
@ -1,82 +0,0 @@ |
|||||
This is BibTeX, Version 0.99d (TeX Live 2017/Debian) |
|
||||
Capacity: max_strings=100000, hash_size=100000, hash_prime=85009 |
|
||||
The top-level auxiliary file: main.aux |
|
||||
The style file: plain.bst |
|
||||
Database file #1: cites.bib |
|
||||
I was expecting a `,' or a `}'---line 22 of file cites.bib |
|
||||
: |
|
||||
: ) |
|
||||
(Error may have been on previous line) |
|
||||
I'm skipping whatever remains of this entry |
|
||||
I was expecting a `,' or a `}'---line 25 of file cites.bib |
|
||||
: |
|
||||
: title = "ROBUST SPEECH / MUSIC CLASSIFICATION IN AUDIO DOCUMENTS" |
|
||||
(Error may have been on previous line) |
|
||||
I'm skipping whatever remains of this entry |
|
||||
I was expecting a `,' or a `}'---line 32 of file cites.bib |
|
||||
: |
|
||||
: title = "METHODS FOR SPEECH / MUSIC DETECTION AND CLASSIFICATION" |
|
||||
(Error may have been on previous line) |
|
||||
I'm skipping whatever remains of this entry |
|
||||
I was expecting a `,' or a `}'---line 39 of file cites.bib |
|
||||
: |
|
||||
: title = "Speech/Music Discrimination using Hybrid-Based Feature Extraction for Audio Data Indexing" |
|
||||
(Error may have been on previous line) |
|
||||
I'm skipping whatever remains of this entry |
|
||||
Warning--to sort, need author or key in robust |
|
||||
Warning--to sort, need author or key in mirex |
|
||||
Warning--to sort, need author or key in hybrid |
|
||||
Warning--empty author in robust |
|
||||
Warning--empty title in robust |
|
||||
Warning--empty journal in robust |
|
||||
Warning--empty year in robust |
|
||||
Warning--empty author in mirex |
|
||||
Warning--empty title in mirex |
|
||||
Warning--empty journal in mirex |
|
||||
Warning--empty year in mirex |
|
||||
Warning--empty author in hybrid |
|
||||
Warning--empty title in hybrid |
|
||||
Warning--empty journal in hybrid |
|
||||
Warning--empty year in hybrid |
|
||||
You've used 5 entries, |
|
||||
2118 wiz_defined-function locations, |
|
||||
509 strings with 4398 characters, |
|
||||
and the built_in function-call counts, 965 in all, are: |
|
||||
= -- 76 |
|
||||
> -- 29 |
|
||||
< -- 0 |
|
||||
+ -- 13 |
|
||||
- -- 8 |
|
||||
* -- 77 |
|
||||
:= -- 144 |
|
||||
add.period$ -- 9 |
|
||||
call.type$ -- 5 |
|
||||
change.case$ -- 16 |
|
||||
chr.to.int$ -- 0 |
|
||||
cite$ -- 20 |
|
||||
duplicate$ -- 50 |
|
||||
empty$ -- 89 |
|
||||
format.name$ -- 8 |
|
||||
if$ -- 187 |
|
||||
int.to.chr$ -- 0 |
|
||||
int.to.str$ -- 5 |
|
||||
missing$ -- 5 |
|
||||
newline$ -- 22 |
|
||||
num.names$ -- 4 |
|
||||
pop$ -- 40 |
|
||||
preamble$ -- 1 |
|
||||
purify$ -- 14 |
|
||||
quote$ -- 0 |
|
||||
skip$ -- 37 |
|
||||
stack$ -- 0 |
|
||||
substring$ -- 25 |
|
||||
swap$ -- 2 |
|
||||
text.length$ -- 0 |
|
||||
text.prefix$ -- 0 |
|
||||
top$ -- 0 |
|
||||
type$ -- 20 |
|
||||
warning$ -- 15 |
|
||||
while$ -- 4 |
|
||||
width$ -- 6 |
|
||||
write$ -- 34 |
|
||||
(There were 4 error messages) |
|
@ -1,60 +0,0 @@ |
|||||
% !TeX spellcheck = el_GR-en_US |
|
||||
\documentclass[11pt]{article} |
|
||||
\usepackage{geometry} |
|
||||
\geometry{a4paper, top=2.5cm, bottom=2.5cm, left=2.2cm, |
|
||||
right=2.2cm} |
|
||||
\usepackage{fontspec} |
|
||||
\usepackage{titlesec} |
|
||||
\usepackage{titling} |
|
||||
\usepackage{float} |
|
||||
\usepackage{subcaption} |
|
||||
\usepackage[nonumeralsign]{xgreek} |
|
||||
\usepackage{fancyhdr} |
|
||||
\usepackage{hyperref} |
|
||||
\usepackage{enumitem} |
|
||||
\usepackage{cite} |
|
||||
\usepackage{multirow} |
|
||||
\usepackage{graphicx} |
|
||||
\usepackage[normalem]{ulem} |
|
||||
\usepackage{float} |
|
||||
\restylefloat{table} |
|
||||
\useunder{\uline}{\ul}{} |
|
||||
\usepackage{amsmath} |
|
||||
|
|
||||
\setmainfont{Lato} |
|
||||
\setmonofont{Consolas} |
|
||||
|
|
||||
\title{Τεχνολογία Ήχου και Εικόνας 2018\\ |
|
||||
Εργασία 2018-2019} |
|
||||
\author{Χριστίνα Θεοδωρίδου - 8055\\ |
|
||||
Φρανκ Μπλάννινγκ - 6698\\ |
|
||||
Αποστόλης Φανάκης - 8261} |
|
||||
\date{\today} |
|
||||
|
|
||||
\pagestyle{fancy} |
|
||||
\lhead{Τεχνολογία Ήχου και Εικόνας 2018} |
|
||||
\rhead{~σ} |
|
||||
\renewcommand{\headrulewidth}{0.4pt} |
|
||||
\renewcommand{\footrulewidth}{0.4pt} |
|
||||
\setlength{\headheight}{14pt} |
|
||||
|
|
||||
\hypersetup{colorlinks=true, linkcolor=black, urlcolor=blue, citecolor=blue} |
|
||||
\urlstyle{same} |
|
||||
|
|
||||
\begin{document} |
|
||||
|
|
||||
\maketitle |
|
||||
\tableofcontents |
|
||||
|
|
||||
\newpage |
|
||||
|
|
||||
\input{intro.tex} |
|
||||
\input{2.past_implementations.tex} |
|
||||
% \input{3.our_implementation.tex} |
|
||||
\input{features_and_preprocessing.tex} |
|
||||
\input{models.tex} |
|
||||
|
|
||||
\bibliographystyle{ieeetr} |
|
||||
\bibliography{cites}{} |
|
||||
|
|
||||
\end{document} |
|
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 326 KiB |
Before Width: | Height: | Size: 423 KiB |
Before Width: | Height: | Size: 356 KiB |
Before Width: | Height: | Size: 380 KiB |
Before Width: | Height: | Size: 352 KiB |
Before Width: | Height: | Size: 348 KiB |
Before Width: | Height: | Size: 487 KiB |
Before Width: | Height: | Size: 320 KiB |
Before Width: | Height: | Size: 339 KiB |
Before Width: | Height: | Size: 314 KiB |
Before Width: | Height: | Size: 334 KiB |
Before Width: | Height: | Size: 296 KiB |
Before Width: | Height: | Size: 434 KiB |
Before Width: | Height: | Size: 462 KiB |
Before Width: | Height: | Size: 430 KiB |
@ -1,154 +0,0 @@ |
|||||
\subsection{Στόχος του εγγράφου} |
|
||||
|
|
||||
Ακολουθώντας τα στάδια ανάπτυξης λογισμικού, στα προηγούμενα έγγραφα, |
|
||||
το “Έγγραφο Απαιτήσεων Χρηστών” και το “Έγγραφο Απαιτήσεων |
|
||||
Λογισμικού”, καθορίστηκαν όσο το δυνατόν πιο εύστοχα οι απαιτήσεις |
|
||||
χρηστών και λογισμικού, αντίστοιχα. Στο παρόν έγγραφο σειρά έχει ο |
|
||||
αρχιτεκτονικός σχεδιασμός του συστήματος. |
|
||||
|
|
||||
Αρχικά σημαντική προϋπόθεση για την σχεδίαση του συστήματος είναι η |
|
||||
δυναμική μοντελοποίηση του συστήματος Robobar με τον πλέον λεπτομερή |
|
||||
τρόπο. Αυτός είναι η παρουσίαση των ροών που περιγράφουν το πώς οι |
|
||||
κλάσεις που αναπτυχτήκαν κατά τη στατική μοντελοποίηση των κλάσεων |
|
||||
ικανοποιούν τα σενάρια χρήσης που δημιουργήθηκαν στο έγγραφο |
|
||||
απαιτήσεων χρηστών. Η δημιουργία δηλαδή των διαγραμμάτων ροών για την |
|
||||
εκτενή περιγραφή της συμπεριφοράς του συστήματος κατά την εκτέλεση των |
|
||||
λειτουργιών του αλλά και κατά την αλληλεπίδραση με τους χρήστες και τα |
|
||||
εξωτερικά συστήματα. |
|
||||
|
|
||||
Επιπλέον η αποδόμηση του συστήματος σε υποσυστήματα αποτελεί πάγια |
|
||||
τακτική για την ανάπτυξη ενός λογισμικού και επιτυγχάνεται με την εξής |
|
||||
διαδικασία: το υπάρχον σύστημα διαιρείται σε υποσυστήματα, τα οποία |
|
||||
αλληλεπιδρούν. Στη συνέχεια επιλέγεται η κατάλληλη αρχιτεκτονική ώστε |
|
||||
να έχουμε το καλύτερο δυνατό αποτέλεσμα ως προς την επικοινωνία μεταξύ |
|
||||
των υποσυστημάτων αλλά και τη λειτουργικότητα συστήματος. |
|
||||
|
|
||||
Τέλος στο παρόν έγγραφο γίνεται μία λεπτομερής ανάλυση της |
|
||||
αρχιτεκτονικής του συστήματος Robobar, με γνώμονα τις απαιτήσεις |
|
||||
χρηστών και λογισμικού που περιγράφτηκαν στα δύο προηγούμενα |
|
||||
έγγραφα. Τα δομικά στοιχεία του συστήματος, ο τρόπος που επικοινωνούν |
|
||||
μεταξύ τους και τυχόν περιορισμοί που πρέπει να ληφθούν υπόψιν, |
|
||||
αποτελούν μέρη της ανάλυσης αυτής. |
|
||||
|
|
||||
|
|
||||
\subsection{Αντικείμενο του Λογισμικού} |
|
||||
|
|
||||
Το λογισμικό Robobar έχει ως αντικείμενο το σύνολο των δραστηριοτήτων |
|
||||
που χρειάζονται ώστε να λειτουργήσει ένα μπαρ. Αναλυτικότερα, το |
|
||||
λογισμικό RoboBar έχει ως στόχο την γρήγορη και εύκολη εξυπηρέτηση των |
|
||||
πελατών ενός μπαρ. |
|
||||
|
|
||||
Το σύστημα αλληλεπιδρά με δυο είδη χρηστών τους απλούς |
|
||||
χρήστες-εργαζόμενους του μπαρ και των διαχειριστών. Ο χρήστης μπορεί |
|
||||
να δεχτεί μια παραγγελία από τους πελάτες του μπαρ από το υπάρχον |
|
||||
μενού ,όπως επίσης έχει την δυνατότητα να ενημερωθεί ή να επιλέξει την |
|
||||
ακύρωση μιας εκκρεμής παραγγελίας ανάλογα με το τι θα ζητηθεί από τους |
|
||||
πελάτες. Ο διαχειριστής του συστήματος έχει όλες τις παραπάνω |
|
||||
δυνατότητες και επιπλέον μπορεί να επεξεργαστεί το μενού του |
|
||||
καταστήματος δηλαδή να προσθέσει η να αναιρέσει συνταγές και υλικά. |
|
||||
|
|
||||
Οι παραπάνω λειτουργίες του συστήματος RoboBar εξυπηρετούνται με χρήση |
|
||||
μια βάσης δεδομένων που περιέχει όλα τα απαραίτητα δεδομένα, καθώς και |
|
||||
ενός ρομπότ ΝΑΟ το οποίο εκτελεί τις παραγγελίες των πελατών. |
|
||||
|
|
||||
|
|
||||
|
|
||||
\subsection{Ορισμοί, Ακρωνύμια, Συντομεύσεις} |
|
||||
|
|
||||
\begin{itemize}[noitemsep,nolistsep] |
|
||||
\item ΟΑ: Ομάδα Ανάπτυξης |
|
||||
\item GUI: Graphical User Interface (Γραφική Διεπαφή Χρήστη) |
|
||||
\item SQL: Structured Query Language |
|
||||
\item MySQL: Σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων |
|
||||
\item Client: Πελάτης |
|
||||
\item Server: Εξυπηρετητής |
|
||||
\item Client-‐Server: Πελάτης-‐Εξυπηρετητής |
|
||||
\item DB: Βάση Δεδομένων |
|
||||
\item UI: User Interface |
|
||||
\item UML: Unified Modeling Language |
|
||||
\item API: Application Programming Interface |
|
||||
\end{itemize} |
|
||||
|
|
||||
|
|
||||
\subsection{Τυπογραφικές παραδοχές του εγγράφου} |
|
||||
|
|
||||
|
|
||||
Το κείμενο του παρόντος εγγράφου είναι γραμμένο με γραμματοσειρά |
|
||||
Baskerville, μεγέθους 11pt και διάστιχο 1.15. Οι επικεφαλίδες του |
|
||||
εγγράφου έχουν μέγεθος 14pt και o τίτλος κάθε κεφαλαίο 13pt σε |
|
||||
γραμματοσειρά Naxos. Οι απαιτήσεις στο κεφάλαιο 2 ονομάζονται και |
|
||||
αριθμούνται κατάλληλα και, επίσης, συντάσσονται με την αρμόζουσα |
|
||||
μορφή. |
|
||||
|
|
||||
|
|
||||
\subsection{Στόχοι Σχεδίασης} |
|
||||
|
|
||||
Στόχος της σχεδίασης του συστήματος είναι η ικανοποίηση των τριών |
|
||||
διαφορετικών ομάδων φυσικών προσώπων που σχετίζονται με αυτό: του |
|
||||
πελάτη, του τελικού χρήστη και του προγραμματιστή |
|
||||
|
|
||||
Πελάτης του συστήματος μπορεί να θεωρηθεί ο ιδιοκτήτης μιας εταιρείας |
|
||||
ανάπτυξης, διαχείρισης και πώλησης εφαρμογών ή και κάποιο γραφείο |
|
||||
ευρέσεως εργασίας. Όπως είναι λογικό, ο πελάτης, επιθυμεί το προϊόν να |
|
||||
έχει χαμηλό κόστος, συμβατότητα, , να παρακολουθεί τις λειτουργικές |
|
||||
και μη απαιτήσεις που έχουν τεθεί και η ανάπτυξη του να είναι όσο το |
|
||||
δυνατόν πιο γρήγορη. |
|
||||
|
|
||||
Ο τελικός χρήστης επιθυμεί το σύστημα να είναι χρηστικό, φιλικό προς |
|
||||
αυτόν και η διαδικασία εκμάθησής του να είναι απλή, εύκολη και |
|
||||
γρήγορη. Ακόμα, θέλει η λειτουργία του συστήματος να είναι ευσταθής, |
|
||||
να ανέχεται σφάλματα και συνεπώς να είναι αποδοτική. |
|
||||
|
|
||||
Επίσης, ο προγραμματιστής του συστήματος, (ή ο συντηρητής) έχει την |
|
||||
απαίτηση, να μην παρουσιάζονται σφάλματα στο σύστημα, να προσαρμόζεται |
|
||||
εύκολα και γρήγορα σε μεταβολές, τροποποιήσεις και αναβαθμίσεις |
|
||||
λογισμικού και ακόμα ο διαχωρισμός των υποσυστημάτων να είναι σωστός |
|
||||
και ορισμένος με σαφήνεια. |
|
||||
|
|
||||
|
|
||||
\subsection{Αναγνωστικό κοινό και τρόπος ανάγνωσης} |
|
||||
|
|
||||
Το έγγραφο αυτό γράφτηκε για συγκεκριμένες ομάδες ανθρώπων προκειμένου |
|
||||
να μελετηθούν και να σχεδιαστούν τα χαρακτηριστικά του συστήματος και |
|
||||
στη συνέχεια να γίνει ο προγραμματισμός και η υλοποίηση της |
|
||||
εφαρμογής. Οι βασικοί αναγνώστες του συγκεκριμένου εγγράφου θα είναι: |
|
||||
\begin{itemize} |
|
||||
\item Προϊστάμενοι καθώς και ορισμένοι αρμόδιοι μηχανικοί |
|
||||
λογισμικού των εταιριών ανάπτυξης ανάλογων εφαρμογών |
|
||||
\item Προγραμματιστές που θα αναλάβουν τη συγγραφή του κώδικα |
|
||||
ο οποίος θα υλοποιεί το σύστημα |
|
||||
\item Μηχανικοί λογισμικού που θα αναλάβουν τη συντήρηση του |
|
||||
συστήματος. |
|
||||
\item Μηχανικοί υλικού που θα αναλάβουν το σχεδιασμό και την |
|
||||
εγκατάσταση των συστημάτων που ικανοποιούν τις τεχνολογικές απαιτήσεις |
|
||||
του έργου |
|
||||
\end{itemize} |
|
||||
|
|
||||
Αρχικά, είναι σημαντικό να αναφερθεί ότι για την ευκολότερη κατανόηση |
|
||||
και αποτελεσματική ανάγνωση του έγγραφου αποτελεί σημαντική προϋπόθεση |
|
||||
να έχει προηγηθεί η ανάγνωση των δύο προηγουμένων εγγράφων, αυτού των |
|
||||
απαιτήσεων χρηστών και αυτού των απαιτήσεων λογισμικού. |
|
||||
|
|
||||
Επιπροσθέτως, η ανάγνωση των κεφαλαίων θα πρέπει να γίνει με τη σειρά |
|
||||
που υπάρχουν στο έγγραφο για να μη δημιουργηθούν προβλήματα στην |
|
||||
κατανόηση του. |
|
||||
|
|
||||
\subsection{Επισκόπηση Εγγράφου} |
|
||||
|
|
||||
\begin{itemize}[noitemsep,nolistsep] |
|
||||
\item \textbf{ΚΕΦΑΛΑΙΟ 1}: Το κεφάλαιο αυτό αποτελεί μια |
|
||||
εισαγωγή που περιλαμβάνει γενικές πληροφορίες για το περιεχόμενο του |
|
||||
εγγράφου καθώς και για τα κεφάλαια που ακολουθούν. |
|
||||
\item \textbf{ΚΕΦΑΛΑΙΟ 2}:Στο κεφάλαιο αυτό παρουσιάζεται η |
|
||||
δυναμική μοντελοποίηση του συστήματος Robobar |
|
||||
\item \textbf{ΚΕΦΑΛΑΙΟ 3}: Στο κεφάλαιο αυτό γίνεται αναλυτική |
|
||||
περιγραφή και παρουσίαση της αρχιτεκτονικής του συστήματος . |
|
||||
\item \textbf{ΚΕΦΑΛΑΙΟ 4}:Στο τέταρτο κεφάλαιο γίνεται η |
|
||||
αποδόμηση του συστήματος σε υποσυστήματα, σύμφωνα με την αρχιτεκτονική |
|
||||
που επιλέχθηκε και περιγράφηκε στο τρίτο κεφάλαιο. Επιπλέον |
|
||||
περιλαμβάνει λεπτομερή διαγράμματα της διασύνδεσης μεταξύ των |
|
||||
υποσυστημάτων, ώστε να δοθεί στον αναγνώστη μια πλήρη και παραστατική |
|
||||
εικόνα για την αρχιτεκτονική του συστήματος. Τέλος αναλύονται θέματα |
|
||||
γενικού ελέγχου, ασφάλειας, πρόσβασης και οριακών συνθηκών στα οποία |
|
||||
πρέπει να δοθεί ιδιαίτερη προσοχή. |
|
||||
\end{itemize} |
|
@ -1,12 +0,0 @@ |
|||||
.PHONY: main.pdf all clean |
|
||||
|
|
||||
all: main.pdf |
|
||||
|
|
||||
FLAGS = -pdf -pdflatex="xelatex" -use-make \
|
|
||||
-quiet -synctex=1 |
|
||||
|
|
||||
main.pdf: main.tex |
|
||||
latexmk $(FLAGS) main.tex #; skimview $@ |
|
||||
|
|
||||
clean: |
|
||||
latexmk -CA |
|
@ -1,105 +0,0 @@ |
|||||
{% !TeX spellcheck = el_GR-en_US |
|
||||
\documentclass[11pt]{article} |
|
||||
\usepackage{geometry} |
|
||||
\geometry{a4paper, top=2.5cm, bottom=2.5cm, left=2.2cm, |
|
||||
right=2.2cm} |
|
||||
\usepackage{fontspec} |
|
||||
\usepackage{graphicx} |
|
||||
\usepackage{titlesec} |
|
||||
\usepackage{titling} |
|
||||
\usepackage{float} |
|
||||
\usepackage{caption} |
|
||||
\usepackage{subcaption} |
|
||||
\usepackage[nonumeralsign]{xgreek} |
|
||||
\usepackage{siunitx} |
|
||||
\usepackage{fancyhdr} |
|
||||
\usepackage{hhline} |
|
||||
\usepackage{hyperref} |
|
||||
\usepackage[export]{adjustbox} |
|
||||
\usepackage{enumitem} |
|
||||
\usepackage{amsmath} |
|
||||
\usepackage{amsfonts} |
|
||||
\usepackage{amssymb} |
|
||||
\usepackage{array} |
|
||||
|
|
||||
\setmainfont{Baskerville} |
|
||||
\setmonofont{Consolas} |
|
||||
\newfontfamily\titlefont{Helvetica} |
|
||||
\newfontfamily\headingfont{Helvetica Bold} |
|
||||
|
|
||||
\titleformat*{\section}{\large\headingfont} |
|
||||
\titleformat*{\subsection}{\small\headingfont} |
|
||||
|
|
||||
\graphicspath{ {./Images/} } |
|
||||
|
|
||||
\date{\today} |
|
||||
|
|
||||
\pagestyle{fancy} |
|
||||
\lhead{Robobar} |
|
||||
\rhead{Team 13} |
|
||||
\renewcommand{\headrulewidth}{0.4pt} |
|
||||
\renewcommand{\footrulewidth}{0.4pt} |
|
||||
\setlength{\headheight}{14pt} |
|
||||
|
|
||||
\fancypagestyle{firstpage}{% |
|
||||
\lhead{ |
|
||||
\titlefont \scriptsize |
|
||||
% \includegraphics[width=.14\linewidth, valign=c ]{LogoAUTH.ai} |
|
||||
\begin{tabular}{l} |
|
||||
\textbf{Τεχνολογία Λογισμικού}\\Τομέας Ηλεκτρονικής και |
|
||||
Υπολογιστών\\Τμήμα Ηλεκτρολόγων Μηχανικών και\\Μηχανικών |
|
||||
Υπολογιστών Α.Π.Θ |
|
||||
\end{tabular} |
|
||||
} |
|
||||
\rhead{\titlefont \scriptsize 8ο Εξάμηνο - Άνοιξη 2018} |
|
||||
\setlength{\headheight}{100pt} |
|
||||
} |
|
||||
|
|
||||
\hypersetup{colorlinks=true, linkcolor=black ,urlcolor=blue} |
|
||||
\urlstyle{same} |
|
||||
|
|
||||
\begin{document} |
|
||||
\thispagestyle{firstpage} |
|
||||
|
|
||||
% \begin{figure}[H] |
|
||||
% \centering |
|
||||
% \includegraphics[]{logo.png} |
|
||||
% \end{figure} |
|
||||
|
|
||||
\begin{center} |
|
||||
\Large Robot Bartender for the human customer |
|
||||
\vspace{1cm} |
|
||||
|
|
||||
{\titlefont \Huge Σχεδίαση Συστήματος} |
|
||||
\end{center} |
|
||||
|
|
||||
\vspace{5cm} |
|
||||
\vfill |
|
||||
|
|
||||
\begin{flushright} |
|
||||
\titlefont \footnotesize |
|
||||
\begin{tabular}{r l} |
|
||||
Θεοδωρίδου Χριστίνα&christtk@auth.gr\\ |
|
||||
Μπλάννινγκ Φρανκ&frankgou@ece.auth.gr\\ |
|
||||
Παρασκευαΐδης Κωνσταντίνος&konstapf@ece.auth.gr\\ |
|
||||
Πάρναλης-Παλαντζίδης Γιώργος&parnalis@ece.auth.gr\\ |
|
||||
\end{tabular} |
|
||||
|
|
||||
\large |
|
||||
\vspace{1.5cm} |
|
||||
\textbf{\today} |
|
||||
\vspace{.5cm} |
|
||||
\end{flushright} |
|
||||
\hrulefill |
|
||||
\vspace{2.5cm} |
|
||||
|
|
||||
\newpage |
|
||||
|
|
||||
\tableofcontents |
|
||||
% \listoffigures |
|
||||
|
|
||||
\newpage |
|
||||
\section{Εισαγωγή} |
|
||||
\input{1_Intro} |
|
||||
|
|
||||
\end{document} |
|
@ -0,0 +1,56 @@ |
|||||
|
% !TeX spellcheck = el_GR-en_US |
||||
|
\documentclass[11pt]{article} |
||||
|
\usepackage{geometry} |
||||
|
\geometry{a4paper, top=2cm, bottom=2cm, left=2cm, right=2cm} |
||||
|
\usepackage{fontspec} |
||||
|
\usepackage{titlesec} |
||||
|
\usepackage{titling} |
||||
|
\usepackage{float} |
||||
|
\usepackage{subcaption} |
||||
|
\usepackage[nonumeralsign]{xgreek} |
||||
|
\usepackage{fancyhdr} |
||||
|
\usepackage{hyperref} |
||||
|
\usepackage{enumitem} |
||||
|
\usepackage{cite} |
||||
|
\usepackage{multirow} |
||||
|
\usepackage{graphicx} |
||||
|
\usepackage[normalem]{ulem} |
||||
|
\usepackage{float} |
||||
|
\restylefloat{table} |
||||
|
\useunder{\uline}{\ul}{} |
||||
|
\usepackage{amsmath} |
||||
|
|
||||
|
\setmainfont{Lato} |
||||
|
\setmonofont{Consolas} |
||||
|
|
||||
|
\title{Τεχνολογία Ήχου και Εικόνας 2018\\ |
||||
|
Εργασία 2018-2019} |
||||
|
\author{Χριστίνα Θεοδωρίδου - 8055\\ |
||||
|
Φρανκ Μπλάννινγκ - 6698\\ |
||||
|
Αποστόλης Φανάκης - 8261} |
||||
|
\date{\today} |
||||
|
|
||||
|
\pagestyle{fancy} |
||||
|
\lhead{Τεχνολογία Ήχου και Εικόνας 2018} |
||||
|
\rhead{~σ} |
||||
|
\renewcommand{\headrulewidth}{0.4pt} |
||||
|
\renewcommand{\footrulewidth}{0.4pt} |
||||
|
\setlength{\headheight}{14pt} |
||||
|
|
||||
|
\hypersetup{colorlinks=true, linkcolor=black, urlcolor=blue, citecolor=blue} |
||||
|
\urlstyle{same} |
||||
|
|
||||
|
\begin{document} |
||||
|
\maketitle |
||||
|
\tableofcontents |
||||
|
\newpage |
||||
|
|
||||
|
\input{1.intro.tex} |
||||
|
\input{2.past_implementations.tex} |
||||
|
% \input{3.our_implementation.tex} |
||||
|
\input{3.features_and_preprocessing.tex} |
||||
|
\input{4.models.tex} |
||||
|
|
||||
|
\bibliographystyle{ieeetr} |
||||
|
\bibliography{cites}{} |
||||
|
\end{document} |
Before Width: | Height: | Size: 326 KiB After Width: | Height: | Size: 326 KiB |
Before Width: | Height: | Size: 320 KiB After Width: | Height: | Size: 320 KiB |