-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Estes scripts foram escritos por mim ao estudar o livro
- Loading branch information
1 parent
f66eca9
commit 93db4da
Showing
24 changed files
with
555 additions
and
0 deletions.
There are no files selected for viewing
20 changes: 20 additions & 0 deletions
20
... Preditiva/Avaliacao de modelos preditivios/Avaliacao de modelos preditivos em R (cont).R
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
#Avaliacao de modelos preditivos em R | ||
|
||
#PAcotes que serao utilizados: | ||
library(cvTools) #PAra gerar metodologia de validacao cruzada sob variacao leave-one-out ou k-fold | ||
|
||
#COnjutno de dados que sera utilizado: | ||
satisfacao = read.csv(choose.files(), sep=";", header= T) | ||
|
||
#COnstruindo os conjuntos (folds) para validacao cruzada | ||
|
||
N= 12 | ||
K=4 | ||
tipo = "random" | ||
|
||
|
||
folds = cvFolds(N, #numero de exemplares disponiveis no conjunto de dados | ||
4, #Quantidade de subconjuntos (folds) que se deseja gerar | ||
type="random" #Eh o metodo que pode ser usado para executar a distribuicao dos exemplares nos subconjuntos : consecutive, random (default) e interleaved | ||
) | ||
folds |
13 changes: 13 additions & 0 deletions
13
Analise Preditiva/Avaliacao de modelos preditivios/satisfacao.csv
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
;tempo;preco;classe | ||
1;0.7;0.4;sat | ||
2;0.4;0.5;sat | ||
3;0.61;0.4;sat | ||
4;0.9;0.7;sat | ||
5;0.8;0.3;sat | ||
6;0.6;1;sat | ||
7;0.2;0.6;ins | ||
8;0.4;0.3;ins | ||
9;0.61;0.2;ins | ||
10;0.6;0.43;ins | ||
11;0.5;0.1;ins | ||
12;1;0.2;ins |
32 changes: 32 additions & 0 deletions
32
Analise Preditiva/Classificacao/Arvore de Decisao/Arvore de Decisao.R
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
#Arvores de Decisao | ||
|
||
#PAcotes que sera utilizados: | ||
library(rpart) | ||
library(rpart.plot) | ||
|
||
#Importando os dados que serao utilizados no exemplo: | ||
dados=read.csv(choose.files(), header=T,sep=";" ) #abrirconjunto de dados chamado "qualidade" | ||
fix(dados) | ||
str(dados) | ||
|
||
#Construindo uma arvore de decisao: | ||
|
||
modelo_ad=rpart(R ~EP + QR + LE, #Formula que define qual eh o argumento classe e quais sao os atributos | ||
data=dados, #Eh o conjunto de dados armazenado em um data.frame | ||
method="class", #Eh o parametro que define se a arvore sera usada como classificacao ("class") ou regressao ("anova") | ||
control=rpart.control(minsplit=1), #Eh a variavel na qual sao armazenados os parametros que controlam o crescimento da arvore | ||
parms=list(split="Information") #Eh a variavel na qual eh definido o criterio de selecao de atributos | ||
) | ||
|
||
#Usando uma arvore de decisao: | ||
|
||
y_estimado=predict(modelo_ad, #Eh o resultado da construcao da arvore de decisao | ||
dados[2,1:3], #Eh a variavel que contem os atributos descritivos dos exemplares de teste, considerando os mesmos atributos descritivos usados na geracao de modelo_ad | ||
"class") #Especifica como sera apresentado o resultado da predicao: um vetor para valores numericos ("vector"), classe para valores categoricos ("class"), ou a probabilidade de cada classe ("prob") | ||
y_estimado | ||
|
||
#Visualizando uma arvore de decisao: | ||
|
||
plot=rpart.plot(modelo_ad, #Eh o resultado da contrucao da arvore de decisao | ||
2, #Eh a quantidade de casas decimais | ||
2) #Especifica como sera apresentado o resultado da visualizacao, pode assumiar valores de 0 a 4 |
9 changes: 9 additions & 0 deletions
9
Analise Preditiva/Classificacao/Arvore de Decisao/qualidade.csv
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
EP;QR;LE;R | ||
muita;boa;ruim;lucro | ||
muita;boa;boa;lucro | ||
pouca;boa;boa;lucro | ||
pouca;otima;ruim;prejuizo | ||
pouca;otima;boa;prejuizo | ||
muita;otima;boa;lucro | ||
muita;otima;ruim;prejuizo | ||
pouca;boa;ruim;prejuizo |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
#Naive Bayes | ||
|
||
#Pacotes utilizados: | ||
library(e1071) | ||
|
||
#Importando o bando de dados que sera utilizado no exemplo: | ||
planejamento=read.csv(choose.files(), header=T, sep=";") | ||
planejamento | ||
|
||
#Contruindo o classificador: | ||
modelo_NB = naiveBayes(planejamento[,1:4], #Eh um data.frame ou matriz contendo os exemplares de treinamento | ||
planejamento[,5], #Eh o vetor com as classes para cada exemplar do conjunto de treinamento | ||
0 #Eh um numero real positivo que controla a suavezacao de Laplace. O default eh zero, desabilitando-a | ||
) | ||
|
||
#Criando um objetivo para teste: | ||
exemplar_teste=data.frame(previsao="sol", temperatura="frio", humidade="normal", vento="sim") | ||
|
||
#Fazendo uma predicao com o Naive Bayes: | ||
y_estimado = predict(modelo_NB, #Eh o modelo contruido pela funcao naiveBayes() | ||
exemplar_teste, #Eh o exemplo de teste | ||
type="class", #Eh o parametro com dois valores possiveis: "class" se o resultado eh apresentado apenas pela classe de maior probabilidade ou "raw" pela probabilidade de cada classe | ||
0) #Eh um numero real positivo que controla a suavezacao de Laplace. O default eh zero, desabilitando-a | ||
y_estimado | ||
|
||
#Se a opcao de classificacao fosse por apresentar a probabilidade (raw), o resultado seria: | ||
y_estimado = predict(modelo_NB, #Eh o modelo contruido pela funcao naiveBayes() | ||
exemplar_teste, #Eh o exemplo de teste | ||
type="raw", #Eh o parametro com dois valores possiveis: "class" se o resultado eh apresentado apenas pela classe de maior probabilidade ou "raw" pela probabilidade de cada classe | ||
0) #Eh um numero real positivo que controla a suavezacao de Laplace. O default eh zero, desabilitando-a | ||
y_estimado |
15 changes: 15 additions & 0 deletions
15
Analise Preditiva/Classificacao/Naive Bayes/planejamento.csv
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
previsao;temperatura;humidade;vento;vender | ||
chuva;frio;normal;sim;parmegiana | ||
chuva;moderado;alta;sim;parmegiana | ||
sol;quente;alta;n�o;parmegiana | ||
sol;quente;alta;sim;parmegiana | ||
sol;moderado;alta;n�o;parmegiana | ||
nublado;frio;normal;sim;feijoada | ||
nublado;quente;alta;n�o;feijoada | ||
nublado;quente;normal;n�o;feijoada | ||
nublado;moderado;alta;sim;feijoada | ||
chuva;frio;normal;n�o;feijoada | ||
chuva;moderado;alta;n�o;feijoada | ||
chuva;moderado;normal;n�o;feijoada | ||
sol;frio;normal;n�o;feijoada | ||
sol;moderado;normal;sim;feijoada |
55 changes: 55 additions & 0 deletions
55
Analise Preditiva/Classificacao/Rede Neural Artificial/Redes Neurais.R
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
#Redes Neurais: | ||
|
||
#Pacotes que serao utilizados: | ||
library("RSNNS") | ||
|
||
#Conjunto de dados que sera utilizado: | ||
d=read.csv(choose.files(), sep=";", header=T) | ||
d | ||
|
||
#Criando a variavel com exemplares do conjunto treinamento: | ||
X=d[,2:3] | ||
#Criando a variavel de rotulos dos exemplares do conjunto de dados: | ||
Y=decodeClassLabels(d[,4]) | ||
|
||
#Entao, conjuntos de treinamento e teste devem ser criados, | ||
#Para tanto, a funcao slitForTraininAndTest() recebe como parametros: | ||
d_separado=splitForTrainingAndTest(X, #A variavel com os exemplares, | ||
Y, #A variavel com os rotulos e | ||
ratio=0.1 #A proporcao do conjunto de dados que deve compor o conjunto de teste | ||
);d_separado | ||
|
||
#Comando para normalizar os dados: | ||
d_normalizado=normTrainingAndTestSet(d_separado, dontNormTargets = TRUE, type="0_1");d_normalizado | ||
|
||
str(d_normalizado) | ||
str(d_separado) | ||
#Como foi preciso normalizar os dados: | ||
d_separado=d_normalizado | ||
|
||
#Para criar o modelo: | ||
modelo_mlp = mlp(d_separado$inputsTrain, #Exemplares do conjunto Treinamento | ||
d_separado$targetsTrain, #Rotulos dos exemplares do conjunto de treinamento | ||
size=c(3), #Numero de neuronios na camada escondida. Pode ser vetor para o caso de mais de uma camada escondida.O valor numérico e escalar define o numero de neuronios na camada escondida | ||
maxit=5000, #Numero maximo de iteracoes (epocas) | ||
initFunc = "Randomize_Weights", #Define como os pesos devem ser inicializados(Opcoes: "Randomize_Weights" ou a definicao de um vetor de valores desejados para a inicializacao) | ||
learnFunc = "Std_Backpropagation", #Estabelece o algoritmo de aprendizado (Opcoes: "Std_Backpropagation"; "BackpropBatch"; "Quickprop") | ||
learnFuncParams = c(0.1), #Valor para a taxa de aprendizado | ||
hiddenActFunc = "Act_Logistic", #Define o tipo de funcao de ativacao do neuronios da camada escondida (Act_Logistic) | ||
shufflePatterns = TRUE, #PArametro para definir se os exemplares do conjunto de treinamento devem ou nao ser embaralhados para cada epoca | ||
linOut=TRUE, #Define qual deve ser a funcao de ativacao para os neuronios da camada de saida, linear ou logistica (Opcoes: TRUE para linear ou FALSE para logistica) | ||
inputsTest = d_separado$inputsTest, #Refere-se aos padroes separados para teste da rede | ||
targetsTest = d_separado$targetsTest #Refere-se as saidas desejadas dos padroes de teste, usados apenas para aferir o desempenho da predicao | ||
);modelo_mlp | ||
|
||
#Para plotar a curva de aprendizado, precisamos do erro medio quadrado de cada iteracao para o conjunto treinamento e para o conjunto teste, IterativeFitError e IterativeTestError respectivamente: | ||
plot(modelo_mlp$IterativeFitError, | ||
type="n", | ||
main="Curva de Aprendizagem", | ||
xlab="Iteracao", | ||
ylab="Erro medio quadrado", | ||
cex.lab=1.5, | ||
ylim=c(0,10) | ||
) | ||
lines(modelo_mlp$IterativeFitError, col="1", lwd=3, cex=2) | ||
lines(modelo_mlp$IterativeTestError, col="2", lwd=3) |
13 changes: 13 additions & 0 deletions
13
Analise Preditiva/Classificacao/Rede Neural Artificial/satisfacao.csv
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
;tempo;preco;classe | ||
1;0.7;0.4;sat | ||
2;0.4;0.5;sat | ||
3;0.61;0.4;sat | ||
4;0.9;0.7;sat | ||
5;0.8;0.3;sat | ||
6;0.6;1;sat | ||
7;0.2;0.6;ins | ||
8;0.4;0.3;ins | ||
9;0.61;0.2;ins | ||
10;0.6;0.43;ins | ||
11;0.5;0.1;ins | ||
12;1;0.2;ins |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
#k-vizinhos mais proximos ou k-NN | ||
# | ||
|
||
#Exemplo pratico para k-NN : | ||
|
||
#Pacotes que serao utilizados: | ||
library(class) | ||
|
||
#Conjunto de dados que sera utilizado: | ||
head(iris) | ||
str(iris) | ||
|
||
#Contem dados numericos com atributos descritivos usados como conjunto de treinamento | ||
treinamento=iris[2:150, 1:4] | ||
#Contem dados numericos com atributos descritivos para a realizacao do teste | ||
rotulos=iris[2:150,5] | ||
#Utilizado para testar nosso modelo: | ||
teste=iris[1,1:4] | ||
#O numero de vizinhos mais proximos a serem consultados | ||
k=3 | ||
|
||
#Finalmente, o uso da funcao knn(): | ||
y_estimado =knn(treinamento, teste, rotulos, k);y_estimado | ||
|
||
|
||
#Outra maneira, dessa vez selecionando uma amostra: | ||
|
||
|
||
#Contem dados numericos com atributos descritivos usados como conjunto de treinamento | ||
treinamento=iris[seq(1,150,2), 1:4] | ||
#Contem dados numericos com atributos descritivos para a realizacao do teste | ||
rotulos=iris[seq(1,150,2),5] | ||
#Utilizado para testar nosso modelo: | ||
teste=iris[seq(2,150,2),1:4] | ||
#O numero de vizinhos mais proximos a serem consultados | ||
k=3 | ||
|
||
#Finalmente, o uso da funcao knn(): | ||
y_estimado =knn(treinamento, teste, rotulos, k);y_estimado | ||
|
||
#Taxa de acerto: | ||
|
||
tx=sum(y_estimado==iris[seq(2,150,2),5])/length(seq(2,150,2));tx | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
;tempo;preco;classe | ||
1;0.7;0.4;sat | ||
2;0.4;0.5;sat | ||
3;0.61;0.4;sat | ||
4;0.9;0.7;sat | ||
5;0.8;0.3;sat | ||
6;0.6;1;sat | ||
7;0.2;0.6;ins | ||
8;0.4;0.3;ins | ||
9;0.61;0.2;ins | ||
10;0.6;0.43;ins | ||
11;0.5;0.1;ins | ||
12;1;0.2;ins |
101 changes: 101 additions & 0 deletions
101
...de modelos para analise de agrupamento/Avaliacao de modelos para analise de agrupamento.R
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
#Avaliacao de modelos para analise de agrupamento | ||
|
||
#Pacotes que serao utilizados nos exemplos: | ||
library(stats) | ||
library(fpc) | ||
library(clv) | ||
|
||
#Primeiramente, o conjunto de dados que sera utilizado para a analise: | ||
|
||
#Alta compacidade e alta separabilidade | ||
x1 = rbind(matrix(rnorm(300,2,0.2),ncol=2),matrix(rnorm(300, 0.5, 0.2), ncol=2));x1 | ||
|
||
#Vejamos: | ||
plot(x1, type="n", xlab="x_i1", ylab="x_i2", cex.lab=1.5, cex.axis=2.5) | ||
points(x1[1:150,1],x1[1:150,2],col="4", lwd=3.5,cex=3.5,pch=22) | ||
points(x1[151:300,1],x1[151:300,2],col="2", lwd=3.5,cex=3.5,pch=21) | ||
label=as.integer(c(rep(1,150), rep(2,150))) | ||
|
||
#Baixa compacidade: | ||
#Conjunto de dados disponivel em http://cs.joensuu.fi/sipu/datasets/ | ||
x2=read.csv(choose.files(), sep="\t", header=F) | ||
x2=as.matrix(x2) | ||
x2=cbind(x1[,1], x2[,2]) | ||
|
||
#Vejamos: | ||
plot(x2, type="n", xlab="x_i1", ylab="x_i2", cex.lab=1.5, cex.axis=2.5) | ||
points(x2[1:97,1],x2[1:97,2],col="2", lwd=3.5,cex=3.5,pch=21) | ||
points(x2[98:373,1],x2[98:373,2],col="2", lwd=3.5,cex=3.5,pch=22) | ||
|
||
#Alta compacidade e baixa separabilidade | ||
x3 = rbind(matrix(rnorm(300,0,sd=0.4),ncol=2),matrix(rnorm(300, 1, 0.4), ncol=2));x3 | ||
|
||
#Vejamos: | ||
plot(x3, type="n", xlab="x_i1", ylab="x_i2", cex.lab=1.5, cex.axis=2.5) | ||
points(x1[1:150,1],x1[1:150,2],col="2", lwd=3.5,cex=3.5,pch=21) | ||
points(x1[151:300,1],x1[151:300,2],col="4", lwd=3.5,cex=3.5,pch=22) | ||
label=as.integer(c(rep(1,150), rep(2,150))) | ||
|
||
#Agora os conjuntos de dados sera submetidos a um processo de agrupamento de dados pelo k-medias, | ||
#como ja se sabe previamente o numero de grupos, o parametro k foi definido como 2: | ||
grupos=kmeans(x1,2) | ||
plot(x1, type="n", xlab="x_i1", ylab="x_i2", cex.lab=1.5, cex.axis=2.5) | ||
#Vejamos a distribuicao dos dados de forma grafica: | ||
G1=x1[(grupos$cluster==1), 1:2] | ||
points(G1[,1], G1[,2], col="4", lwd=3.5, cex=3.5, pch=22) | ||
G2=x1[(grupos$cluster==2), 1:2] | ||
points(G2[,1], G2[,2], col="2", lwd=3.5, cex=3.5, pch=21) | ||
#Vejamos o comportamento de seus centroides | ||
C1=grupos$centers[1,] | ||
points(C1[1], C1[2], col="1", lwd=4, cex=4, pch=15) | ||
C2=grupos$centers[2,] | ||
points(C2[1], C2[2], col="1", lwd=4, cex=4, pch=16) | ||
|
||
|
||
|
||
|
||
# calculo dos indices ----------------------------------------------------- | ||
|
||
#Aplicando a funcao que calcula os indices externos: | ||
|
||
#dados de exemplo: | ||
G = as.integer(c(1,1,1,1,2,2,2)) | ||
P = as.integer(c(1,1,1,2,1,2,2)) | ||
|
||
std=std.ext(P, #Eh o conjundo de rotulos dos dados, representando o particionamento conhecido | ||
G) #Eh o conjunto de rotulos associado aos dados por um algoritmo de agrupamento de dados | ||
std #funcao retorna um objeto com as variaveis Soma A, Soma B, Soma C, Soma D | ||
|
||
#Portanto, os indices de validacao externos podem ser obtidos da seguinte maneira: | ||
rand = clv.Rand(std);rand | ||
jaccard = clv.Jaccard(std);jaccard | ||
folk.mal = clv.Folkes.Mallows(std);folk.mal | ||
|
||
#Aplicacao da funcao que calcula os indices internos: | ||
|
||
#dados de exemplo: | ||
x= c(3,7,10,17,18,20) | ||
G=kmeans(x,3) | ||
grupos = as.integer(G$cluster) | ||
|
||
scatt = cls.scatt.data(as.matrix(x), #Eh o conjunto de dados submetido ao agrupamento | ||
grupos, #Eh o conjunto de rotulos associado aos dados por um algoritmo de agrupamento | ||
dist="euclidean") #Eh a metrica de distancia para o calculo de similaridade inter e intragrupos, por exemplo: euclidean, manhattan, correlation | ||
scatt #Funcao retorna um objeto com medidas inter e intragrupos | ||
|
||
#Apos calculadas as medidas inter e intragupos, eh possivel calcular os indices a partir dos seguintes comados: | ||
devier = clv.Davies.Bouldin(scatt, "complete", "single");devier | ||
dunn = clv.Dunn(scatt, "complete", "single"); dunn | ||
|
||
#Note que ha dois tipos de parametros que devem ser previamente definidos: intercluster e intracluster. | ||
#Para intercluster: principais discutidas no agrupamento hierarquico: single, complete, average e centroid | ||
#PAra intracluster: opcoes sao : complete, average, controid | ||
#Nos exemplos acima foi utilizado a opcao centroide para os dois casos | ||
|
||
|
||
#O indice Silhouette: | ||
indices = cluster.stats(dist(x), #Eh a matriz de distancia entre os dados | ||
grupos) #Eh o conjunto de rotulos associado aos dados por um algoritmo de agrupamento de dados. | ||
indices #Retorna um objeto com varios valores de indices, entre eles o valor do Indice de Silhouette | ||
#e finalmente; | ||
silhouette = indices$avg.silwidth ; silhouette |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
#Analise de Agrupamento | ||
|
||
#Agrupamento por densidade | ||
|
||
#DBSCAN: | ||
|
||
#PAcotes necessarios para o exemplo: | ||
library(fpc) | ||
|
||
#Carregando dados que serao utilizados no exemplo: | ||
vendas = read.csv(choose.files(), header=T, sep=";");vendas | ||
|
||
vendasnorm = read.csv(choose.files(), header=T, sep=";");vendasnorm | ||
|
||
#Implementando o algoritmo DBSCAN: | ||
dbs = dbscan(vendasnorm, #o conjundo de dados agrupados, disponivel como um data.frame | ||
eps=1, #eh o parametro que determina a vizinhanca acessivel de um exemplar - nomeado como eps | ||
MinPts=2) #eh o parametro exigido na verificacao da densidade de vizinhanca de um exemplar | ||
dbs #retorna um objeto com os grupos descobertos e tambem indicacao de exemplares classificados como ruido | ||
|
||
#Para ver os indicadores de grupos para cada exemplar do conjunto de dados, sendo 0 significa que o exemplar foi considerado ruído | ||
dbs$cluster | ||
|
||
#Para visualizar os resultados, eh possivel gerar uma plotagem: | ||
plot(dbs, vendasnorm) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
valor gasto;n de pessoas | ||
432;7 | ||
287;3 | ||
146;3 | ||
201;3 | ||
227;3 | ||
40.5;1 | ||
118;2 | ||
97;2 | ||
126;2 | ||
43;1 | ||
161;3 | ||
83;2 |
Binary file not shown.
Oops, something went wrong.