I am working on the file "Cap08/DesafioDSA_Solucao/Missao5/missao5_solucao.ipynb".
The first task is:
Análise de Compra Por Gênero
Can you write Python code for it?

# Agrupamentos
gender_total_item_price = purchase_file.groupby(["Sexo"]).sum()["Valor"].rename("Total de Vendas")
gender_average_item_price = purchase_file.groupby(["Sexo"]).mean()["Valor"].rename("Average Price")
purchase_count = purchase_file.groupby(["Sexo"]).count()["Valor"].rename("Número de Compras")
normalized_total = gender_total_item_price / gender_demographics["Sexo"]

# Armazenando o resultado em um Dataframe
gender_purchasing_analysis = pd.DataFrame({"Número de Compras" : purchase_count,
                                           "Valor Médio Por Item" : gender_average_item_price,
                                           "Total de Vendas" : gender_total_item_price,
                                           "Total Normalizado" : normalized_total})

# Data Munging
gender_purchasing_analysis = gender_purchasing_analysis.round(2)
gender_purchasing_analysis ["Valor Médio Por Item"] = gender_purchasing_analysis["Valor Médio Por Item"].map("${:,.2f}".format)
gender_purchasing_analysis ["Total de Vendas"] = gender_purchasing_analysis["Total de Vendas"].map("${:,.2f}".format)
gender_purchasing_analysis ["Total Normalizado"] = gender_purchasing_analysis["Total Normalizado"].map("${:,.2f}".format)

# Resultado
gender_total_item_price

# Resultado
gender_average_item_price

# Resultado
gender_purchasing_analysis

# Resultado
normalized_total


I am working on the file "Cap08/DesafioDSA_Solucao/Missao5/missao5_solucao.ipynb".
The first task is:
Informações Demográficas
Can you write Python code for it?

# Cálculos básicos
gender_count = player_demographics["Sexo"].value_counts()
gender_percent = (gender_count / player_count) * 100

# Dataframe para os resultados
gender_demographics = pd.DataFrame({"Sexo" : gender_count,
                                    "%" : gender_percent})

# Data Munging
gender_demographics = gender_demographics.round(2)
gender_demographics ["%"] = gender_demographics["%"].map("{:,.1f}%".format)

# Output Test
gender_count

# Output Test
gender_percent

# Output Test
gender_demographics


I am working on the file "Cap08/DesafioDSA_Solucao/Missao5/missao5_solucao.ipynb".
The first task is:
Informações Sobre os Compradores
Can you write Python code for it?

player_demographics = purchase_file.loc[:, ["Sexo", "Login", "Idade"]]
player_demographics.head()

# Limpeza dos dados e remoção de duplicatas
player_demographics = player_demographics.drop_duplicates()
player_count = player_demographics.count()[0]
player_count

# Converter saída para DF para uso posterior em análise
pd.DataFrame({"Total de Jogadores" : [player_count]})


I am working on the file "Cap08/DesafioDSA_Solucao/Missao5/missao5_solucao.ipynb".
The first task is:
Itens Mais Populares
Can you write Python code for it?

# Cálculos básicos
user_total = purchase_file.groupby(["Nome do Item"]).sum()["Valor"].rename("Valor Total de Compra")
user_average = purchase_file.groupby(["Nome do Item"]).mean()["Valor"].rename("Valor Médio de Compra")
user_count = purchase_file.groupby(["Nome do Item"]).count()["Valor"].rename("Número de Compras")

# Dataframe para os resultados
user_data = pd.DataFrame({"Valor Total de Compra": user_total, "Valor Médio de Compra": user_average, "Número de Compras": user_count})

# Data Munging
user_data ["Valor Total de Compra"] = user_data["Valor Total de Compra"].map("${:,.2f}".format)
user_data ["Valor Médio de Compra"] = user_data["Valor Médio de Compra"].map("${:,.2f}".format)
user_data.sort_values("Número de Compras", ascending=False).head(5)


I am working on the file "Cap08/DesafioDSA_Solucao/Missao5/missao5_solucao.ipynb".
The first task is:
Missão: Analisar o Comportamento de Compra de Consumidores.
Nível de Dificuldade: Alto
Você recebeu a tarefa de analisar os dados de compras de um web site! Os dados estão no formato JSON e disponíveis junto com este notebook.
No site, cada usuário efetua login usando sua conta pessoal e pode adquirir produtos à medida que navega pela lista de produtos oferecidos. Cada produto possui um valor de venda. Dados de idade e sexo de cada usuário foram coletados e estão fornecidos no arquivo JSON.
Seu trabalho é entregar uma análise de comportamento de compra dos consumidores. Esse é um tipo de atividade comum realizado por Cientistas de Dados e o resultado deste trabalho pode ser usado, por exemplo, para alimentar um modelo de Machine Learning e fazer previsões sobre comportamentos futuros.
Mas nesta missão você vai analisar o comportamento de compra dos consumidores usando o pacote Pandas da linguagem Python e seu relatório final deve incluir cada um dos seguintes itens:
 Contagem de Compradores

Número total de compradores

 Análise Geral de Compras

Número de itens exclusivos
Preço médio de compra
Número total de compras
Rendimento total

 Informações Demográficas Por Gênero

Porcentagem e contagem de compradores masculinos
Porcentagem e contagem de compradores do sexo feminino
Porcentagem e contagem de outros / não divulgados

 Análise de Compras Por Gênero

Número de compras
Preço médio de compra
Valor Total de Compra
Compras for faixa etária

 Identifique os 5 principais compradores pelo valor total de compra e, em seguida, liste (em uma tabela):

Login
Número de compras
Preço médio de compra
Valor Total de Compra
Itens mais populares

 Identifique os 5 itens mais populares por contagem de compras e, em seguida, liste (em uma tabela):

ID do item
Nome do item
Número de compras
Preço do item
Valor Total de Compra
Itens mais lucrativos

 Identifique os 5 itens mais lucrativos pelo valor total de compra e, em seguida, liste (em uma tabela):

ID do item
Nome do item
Número de compras
Preço do item
Valor...
Can you write Python code for it?

# Imports
import pandas as pd
import numpy as np

pd.__version__

np.__version__

# Carrega o arquivo
load_file = "dados_compras.json"
purchase_file = pd.read_json(load_file, orient = "records")
purchase_file.head()


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-01-NumPy.ipynb".
The first task is:
Criando Arrays
Can you write Python code for it?

# Help
help(np.array)

# Array criado a partir de uma lista:
vetor1 = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8])

print(vetor1)

# Um objeto do tipo ndarray é um recipiente multidimensional de itens do mesmo tipo e tamanho.
type(vetor1)

# Usando métodos do array NumPy
vetor1.cumsum()

# Criando uma lista. Perceba como listas e arrays são objetos diferentes, com diferentes propriedades
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8]

lst

type(lst)

# Imprimindo na tela um elemento específico no array
vetor1[0]

# Alterando um elemento do array
vetor1[0] = 100

print(vetor1)

# Não é possível incluir elemento de outro tipo
vetor1[0] = 'Novo elemento'

# Verificando o formato do array
print(vetor1.shape)


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-01-NumPy.ipynb".
The first task is:
Criando Matrizes
Can you write Python code for it?

# Criando uma matriz
matriz = np.array([[1,2,3],[4,5,6]])

print(matriz)

print(matriz.shape)

# Criando uma matriz 2x3 apenas com números "1"
matriz1 = np.ones((2,3))

print(matriz1)

# Criando uma matriz a partir de uma lista de listas
lista = [[13,81,22], [0, 34, 59], [21, 48, 94]]

# A função matrix cria uma matria a partir de uma sequência
matriz2 = np.matrix(lista)

matriz2

type(matriz2)

# Formato da matriz
np.shape(matriz2)

matriz2.size

print(matriz2.dtype)

matriz2.itemsize

matriz2.nbytes

print(matriz2[2,1])

# Alterando um elemento da matriz
matriz2[1,0] = 100

matriz2

x = np.array([1, 2])  # NumPy decide o tipo dos dados
y = np.array([1.0, 2.0])  # NumPy decide o tipo dos dados
z = np.array([1, 2], dtype=np.float64)  # Forçamos um tipo de dado em particular

print (x.dtype, y.dtype, z.dtype)

matriz3 = np.array([[24, 76], [35, 89]], dtype=float)

matriz3

matriz3.itemsize

matriz3.nbytes

matriz3.ndim

matriz3[1,1]

matriz3[1,1] = 100

matriz3


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-01-NumPy.ipynb".
The first task is:
Estatística
Can you write Python code for it?

# Criando um array
A = np.array([15, 23, 63, 94, 75])

# Em estatística a média é o valor que aponta para onde mais se concentram os dados de uma distribuição.
np.mean(A)

# O desvio padrão mostra o quanto de variação ou "dispersão" existe em
# relação à média (ou valor esperado).
# Um baixo desvio padrão indica que os dados tendem a estar próximos da média.
# Um desvio padrão alto indica que os dados estão espalhados por uma gama de valores.
np.std(A)

# Variância de uma variável aleatória é uma medida da sua dispersão
# estatística, indicando "o quão longe" em geral os seus valores se
# encontram do valor esperado
np.var(A)

d = np.arange(1, 10)

d

np.sum(d)

# Retorna o produto dos elementos
np.prod(d)

# Soma acumulada dos elementos
np.cumsum(d)

a = np.random.randn(400,2)
m = a.mean(0)
print (m, m.shape)

plt.plot(a[:,0], a[:,1], 'o', markersize=5, alpha=0.50)
plt.plot(m[0], m[1], 'ro', markersize=10)
plt.show()


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-01-NumPy.ipynb".
The first task is:
Funções NumPy
Can you write Python code for it?

# A função arange cria um vetor contendo uma progressão aritmética a partir de um intervalo - start, stop, step
vetor2 = np.arange(0., 4.5, .5)

print(vetor2)

# Verificando o tipo do objeto
type(vetor2)

# Formato do array
np.shape(vetor2)

print (vetor2.dtype)

x = np.arange(1, 10, 0.25)
print(x)

print(np.zeros(10))

# Retorna 1 nas posições em diagonal e 0 no restante
z = np.eye(3)

z

# Os valores passados como parâmetro, formam uma diagonal
d = np.diag(np.array([1, 2, 3, 4]))

d

# Array de números complexos
c = np.array([1+2j, 3+4j, 5+6*1j])

c

# Array de valores booleanos
b = np.array([True, False, False, True])

b

# Array de strings
s = np.array(['Python', 'R', 'Julia'])

s

# O método linspace (linearly spaced vector) retorna um número de
# valores igualmente distribuídos no intervalo especificado
np.linspace(0, 10)

print(np.linspace(0, 10, 15))

print(np.logspace(0, 5, 10))


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-01-NumPy.ipynb".
The first task is:
NumPy
Para importar numpy, utilize:
import numpy as np
Você também pode utilizar:
from numpy import *  . Isso evitará a utilização de np., mas este comando importará todos os módulos do NumPy.
Para atualizar o NumPy, abra o prompt de comando e digite: pip install numpy -U
Can you write Python code for it?

# Importando o NumPy
import numpy as np

np.__version__


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-03-Matplotlib-Plots-e-Graficos.ipynb".
The first task is:
Gráficos 3D
Can you write Python code for it?

from mpl_toolkits.mplot3d.axes3d import Axes3D

fig = plt.figure(figsize=(14,6))

ax = fig.add_subplot(1, 2, 1, projection='3d')
p = ax.plot_surface(X, Y, Z, rstride=4, cstride=4, linewidth=0)

ax = fig.add_subplot(1, 2, 2, projection='3d')
p = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False)
cb = fig.colorbar(p, shrink=0.5)

# Wire frame
fig = plt.figure(figsize=(8,6))

ax = fig.add_subplot(1, 1, 1, projection = '3d')

p = ax.plot_wireframe(X, Y, Z, rstride=4, cstride=4)

# Countour Plot com projeção
fig = plt.figure(figsize=(8,6))

ax = fig.add_subplot(1,1,1, projection='3d')

ax.plot_surface(X, Y, Z, rstride=4, cstride=4, alpha=0.25)
cset = ax.contour(X, Y, Z, zdir='z', offset=-pi, cmap=cm.coolwarm)
cset = ax.contour(X, Y, Z, zdir='x', offset=-pi, cmap=cm.coolwarm)
cset = ax.contour(X, Y, Z, zdir='y', offset=3*pi, cmap=cm.coolwarm)

ax.set_xlim3d(-pi, 2*pi);
ax.set_ylim3d(0, 3*pi);
ax.set_zlim3d(-pi, 2*pi);


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-03-Matplotlib-Plots-e-Graficos.ipynb".
The first task is:
Gráficos a partir do NumPy
Can you write Python code for it?

import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline

plt.scatter(np.arange(50), np.random.randn(50))
plt.show()

# Plot e Scatter
fig = plt.figure()

ax1 = fig.add_subplot(1,2,1)
ax1.plot(np.random.randn(50), color='red')

ax2 = fig.add_subplot(1,2,2)
ax2.scatter(np.arange(50), np.random.randn(50))
plt.show()

# Plots diversos
_, ax = plt.subplots(2,3)

ax[0,1].plot(np.random.randn(50), color = 'green', linestyle = '-')
ax[1,0].hist(np.random.randn(50))
ax[1,2].scatter(np.arange(50), np.random.randn(50), color = 'red')
plt.show()

# Controle dos eixos
fig, axes = plt.subplots(1, 3, figsize = (12, 4))

axes[0].plot(x, x**2, x, x**3)
axes[0].set_title("Eixos com range padrão")

axes[1].plot(x, x**2, x, x**3)
axes[1].axis('tight')
axes[1].set_title("Eixos menores")

axes[2].plot(x, x**2, x, x**3)
axes[2].set_ylim([0, 60])
axes[2].set_xlim([2, 5])
axes[2].set_title("Eixos customizados");

# Escala
fig, axes = plt.subplots(1, 2, figsize=(10,4))

axes[0].plot(x, x**2, x, exp(x))
axes[0].set_title("Escala Padrão")

axes[1].plot(x, x**2, x, exp(x))
axes[1].set_yscale("log")
axes[1].set_title("Escala Logaritmica (y)");

# Grid
fig, axes = plt.subplots(1, 2, figsize=(10,3))

# Grid padrão
axes[0].plot(x, x**2, x, x**3, lw = 2)
axes[0].grid(True)

# Grid customizado
axes[1].plot(x, x**2, x, x**3, lw = 2)
axes[1].grid(color = 'b', alpha = 0.5, linestyle = 'dashed', linewidth = 0.5)

# Gráfico de Linhas Gêmeas
fig, ax1 = plt.subplots()

ax1.plot(x, x**2, lw=2, color="blue")
ax1.set_ylabel("Area", fontsize=18, color="blue")
for label in ax1.get_yticklabels():
    label.set_color("blue")

ax2 = ax1.twinx()
ax2.plot(x, x**3, lw=2, color="red")
ax2.set_ylabel("Volume", fontsize=18, color="red")
for label in ax2.get_yticklabels():
    label.set_color("red")

# Diferentes estilos de Plots
xx = np.linspace(-0.75, 1., 100)
n = np.array([0,1,2,3,4,5])

fig, axes = plt.subplots(1, 4, figsize=(12,3))

axes[0].scatter(xx, xx + 0.25*randn(len(xx)))
axes[0].set_title("scatter")

axes[1].step(n, n**2,...


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-03-Matplotlib-Plots-e-Graficos.ipynb".
The first task is:
Gráficos de Barras
Can you write Python code for it?


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-03-Matplotlib-Plots-e-Graficos.ipynb".
The first task is:
Matplotlib
Para atualizar o Matplotlib abra o prompt de comando ou terminal e digite: pip install matplotlib -U
Construindo Plots
Can you write Python code for it?

import matplotlib as mpl
mpl.__version__

# O matplotlib.pyplot é uma coleção de funções e estilos que fazem com que o Matplotlib funcione como o Matlab.
import matplotlib.pyplot as plt
%matplotlib inline

# O método plot() define os eixos do gráfico
plt.plot([1, 3, 5], [2, 5, 7])
plt.show()

x = [1, 4, 5]

y = [3, 7, 2]

plt.plot(x, y)
plt.xlabel('Variável 1')
plt.ylabel('Variável 2')
plt.title('Teste Plot')
plt.show()

x2 = [1, 2, 3]
y2 = [11, 12, 15]

plt.plot(x2, y2, label = 'Primeira Linha')
plt.legend()
plt.show()


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-03-Matplotlib-Plots-e-Graficos.ipynb".
The first task is:
Pie Chart
Can you write Python code for it?

fatias = [7, 2, 2, 13]
atividades = ['dormir','comer','trabalhar','passear']
colunas = ['c','m','r','k']

plt.pie(fatias, labels = atividades, colors = colunas, startangle = 90, shadow = True, explode = (0,0.1,0,0))
plt.show()


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-03-Matplotlib-Plots-e-Graficos.ipynb".
The first task is:
Pylab
Can you write Python code for it?

# Visualizando os gráfico dentro do Jupyter Notebook
# O Pylab combina funcionalidades do pyplot com funcionalidades do Numpy
from pylab import *
%matplotlib inline

x = linspace(0, 5, 10)
y = x ** 2

fig = plt.figure()

# Definindo os eixos
axes = fig.add_axes([0.1, 0.1, 0.8, 0.8])

axes.plot(x, y, 'r')

axes.set_xlabel('x')
axes.set_ylabel('y')
axes.set_title('Gráfico de Linha');

# Gráficos com 2 figuras
x = linspace(0, 5, 10)
y = x ** 2

fig = plt.figure()

axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # eixos da figura principal
axes2 = fig.add_axes([0.2, 0.5, 0.4, 0.3]) # eixos da figura secundária

# Figura principal
axes1.plot(x, y, 'r')
axes1.set_xlabel('x')
axes1.set_ylabel('y')
axes1.set_title('Figura Principal')

# Figura secundária
axes2.plot(y, x, 'g')
axes2.set_xlabel('y')
axes2.set_ylabel('x')
axes2.set_title('Figura Secundária');

# Gráficos em Paralelo
fig, axes = plt.subplots(nrows = 1, ncols = 2)

for ax in axes:
    ax.plot(x, y, 'r')
    ax.set_xlabel('x')
    ax.set_ylabel('y')
    ax.set_title('Título')

fig.tight_layout()


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-03-Matplotlib-Plots-e-Graficos.ipynb".
The first task is:
Scatterplot
Can you write Python code for it?


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-03-Matplotlib-Plots-e-Graficos.ipynb".
The first task is:
Stack Plots
Can you write Python code for it?

dias = [1,2,3,4,5]
dormir = [7,8,6,77,7]
comer = [2,3,4,5,3]
trabalhar = [7,8,7,2,2]
passear = [8,5,7,8,13]

plt.stackplot(dias, dormir, comer, trabalhar, passear, colors = ['m','c','r','k','b'])
plt.show()


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-04-SciPy.ipynb".
The first task is:
Otimização
Can you write Python code for it?

from scipy import optimize

def f(x):
    return 4*x**3 + (x-2)**2 + x**4

fig, ax  = subplots()
x = linspace(-5, 3, 100)
ax.plot(x, f(x));

x_min = optimize.fmin_bfgs(f, -0.5)
x_min


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-04-SciPy.ipynb".
The first task is:
SciPy
Para compreender o SciPy é necessário compreender conceitos avançados de Matemática e Estatística, o que está fora do escopo deste treinamento. Caso queira aprender aplicações práticas do pacote em Machine Learning e IA, consulte estes dois cursos aqui na DSA:
Machine Learning
Programação Paralela em GPU
O SciPy possui um conjunto de pacotes para operações matemáticas e científicas

            Pacote
            Descrição

            cluster
            Clustering algorithms

            constants
            Mathematical and physical constants

            fftpack
            Fourier transforms

            integrate
            Numerical integration

            interpolate
            Interpolation

            io
            Input and output

            linalg
            Linear algebra

            maxentropy
            Maximum entropy models

            misc
            Miscellaneous

            ndimage
            Multi-dimensional image processing

            odr
            Orthogonal distance regression

            optimize
           ...
Can you write Python code for it?

import scipy
scipy.__version__

import matplotlib
matplotlib.__version__

# Função imread foi descontinuada no Scipy
# from scipy import misc
# misc.imread('Matplotlib-Mapa.png')

# Usamos agora a função do pacote imageio
from imageio import imread
imread('Matplotlib-Mapa.png')

# Matplotlib tem uma função similar
import matplotlib.pyplot as plt
plt.imread('Matplotlib-Mapa.png')


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-06-Bokeh.ipynb".
The first task is:
Bokeh
Caso o Bokeh não esteja instalado, executar no prompt ou terminal: pip install bokeh
Can you write Python code for it?

# Importando o módulo Bokeh
import bokeh
from bokeh.io import show, output_notebook
from bokeh.plotting import figure, output_file
from bokeh.models import ColumnDataSource
from bokeh.transform import factor_cmap
from bokeh.palettes import Spectral6

# Carregando o Bokeh
output_notebook()

# Arquivo gerado pela visualização
output_file("Bokeh-Grafico-Interativo.html")

p = figure()

type(p)

p.line([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], line_width = 2)

show(p)


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-06-Bokeh.ipynb".
The first task is:
Gráfico de Barras
Can you write Python code for it?

# Criando um novo gráfico
output_file("Bokeh-Grafico-Barras.html")

fruits = ['Maças', 'Peras', 'Tangerinas', 'Uvas', 'Melancias', 'Morangos']
counts = [5, 3, 4, 2, 4, 6]

source = ColumnDataSource(data=dict(fruits=fruits, counts=counts))

p = figure(x_range=fruits, plot_height=350, toolbar_location=None, title="Contagem de Frutas")

p.vbar(x='fruits',
       top='counts',
       width=0.9,
       source=source,
       legend_label="fruits",
       line_color='white',
       fill_color=factor_cmap('fruits', palette=Spectral6, factors=fruits))

p.xgrid.grid_line_color = None
p.y_range.start = 0
p.y_range.end = 9
p.legend.orientation = "horizontal"
p.legend.location = "top_center"

show(p)


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-06-Bokeh.ipynb".
The first task is:
Gráfico de Círculos
Can you write Python code for it?

from bokeh.plotting import figure, output_file, show

# Outuput
output_file("Bokeh-Grafico-Circulos.html")

p = figure(plot_width = 400, plot_height = 400)

# Adicionando círculos ao gráfico
p.circle([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], size = 20, color = "navy", alpha = 0.5)

# Mostrando o resultado
show(p)


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-06-Bokeh.ipynb".
The first task is:
ScatterPlot
Can you write Python code for it?

# Construindo um ScatterPlot
from bokeh.plotting import figure, show, output_file
from bokeh.sampledata.iris import flowers

colormap = {'setosa': 'red', 'versicolor': 'green', 'virginica': 'blue'}
colors = [colormap[x] for x in flowers['species']]

p = figure(title = "Iris Morphology")
p.xaxis.axis_label = 'Petal Length'
p.yaxis.axis_label = 'Petal Width'

p.circle(flowers["petal_length"], flowers["petal_width"], color=colors, fill_alpha=0.2, size=10)

output_file("Bokeh_grafico_Iris.html", title="iris.py example")

show(p)


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-07-StatsModels.ipynb".
The first task is:
Statsmodels
Linear Regression Models
Can you write Python code for it?

# Para visualização de gráficos
from pylab import *
%matplotlib inline

import numpy as np
import pandas as pd
import statsmodels as st
import sys
import warnings
if not sys.warnoptions:
    warnings.simplefilter("ignore")
warnings.simplefilter(action='ignore', category=FutureWarning)
warnings.filterwarnings("ignore", category=FutureWarning)
warnings.filterwarnings("ignore")
import statsmodels.api as sm
from statsmodels.sandbox.regression.predstd import wls_prediction_std
np.random.seed(9876789)

np.__version__

pd.__version__

st.__version__

# Criando dados artificiais
nsample = 100
x = np.linspace(0, 10, 100)
X = np.column_stack((x, x**2))
beta = np.array([1, 0.1, 10])
e = np.random.normal(size=nsample)

X = sm.add_constant(X)
y = np.dot(X, beta) + e

model = sm.OLS(y, X)
results = model.fit()
print(results.summary())

print('Parameters: ', results.params)
print('R2: ', results.rsquared)

nsample = 50
sig = 0.5
x = np.linspace(0, 20, nsample)
X = np.column_stack((x, np.sin(x), (x-5)**2, np.ones(nsample)))
beta = [0.5, 0.5, -0.02, 5.]

y_true = np.dot(X, beta)
y = y_true + sig * np.random.normal(size=nsample)

res = sm.OLS(y, X).fit()
print(res.summary())

print('Parameters: ', res.params)
print('Standard errors: ', res.bse)
print('Predicted values: ', res.predict())

prstd, iv_l, iv_u = wls_prediction_std(res)

fig, ax = plt.subplots(figsize=(8,6))

ax.plot(x, y, 'o', label="data")
ax.plot(x, y_true, 'b-', label="True")
ax.plot(x, res.fittedvalues, 'r--.', label="OLS")
ax.plot(x, iv_u, 'r--')
ax.plot(x, iv_l, 'r--')
ax.legend(loc='best')


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-07-StatsModels.ipynb".
The first task is:
Time-Series Analysis
Can you write Python code for it?

from statsmodels.tsa.arima_process import arma_generate_sample

# Gerando dados
np.random.seed(12345)
arparams = np.array([.75, -.25])
maparams = np.array([.65, .35])

# Parâmetros
arparams = np.r_[1, -arparams]
maparam = np.r_[1, maparams]
nobs = 250
y = arma_generate_sample(arparams, maparams, nobs)

dates = sm.tsa.datetools.dates_from_range('1980m1', length=nobs)
y = pd.Series(y, index=dates)
arma_mod = sm.tsa.ARMA(y, order=(2,2))
arma_res = arma_mod.fit(trend='nc', disp=-1)

print(arma_res.summary())


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-08-Seaborn.ipynb".
The first task is:
Outros Plots
Can you write Python code for it?

# Histogramas com subsets dos dados
sea.set(style = "darkgrid")

dados = sea.load_dataset("tips")
g = sea.FacetGrid(dados, row = "sex", col = "time", margin_titles = True)
bins = np.linspace(0, 60, 13)
g.map(plt.hist, "total_bill", color = "steelblue", bins = bins, lw = 0);

# Diversos plots simultâneos
sea.set(style = "white", palette = "muted")
f, axes = plt.subplots(2, 2, figsize = (7, 7), sharex = True)
sea.despine(left = True)

rs = np.random.RandomState(10)

b, g, r, p = sea.color_palette("muted", 4)

d = rs.normal(size = 100)

sea.distplot(d, kde = False, color = b, ax = axes[0, 0])
sea.distplot(d, hist = False, rug = True, color = r, ax = axes[0, 1])
sea.distplot(d, hist = False, color = g, kde_kws = {"shade": True}, ax = axes[1, 0])
sea.distplot(d, color = p, ax = axes[1, 1])

plt.setp(axes, yticks = [])
plt.tight_layout()

# Plot com distribuições marginais
from scipy.stats import kendalltau
sea.set(style="ticks")

rs = np.random.RandomState(11)
x = rs.gamma(2, size = 1000)
y = -.5 * x + rs.normal(size = 1000)
sea.jointplot(x, y, kind = "hex", color = "#4CB391")

# Regressão Logística
sea.set(style = "darkgrid")
df = sea.load_dataset("titanic")

pal = dict(male = "#6495ED", female = "#F08080")
g = sea.lmplot("age", "survived", col = "sex", hue = "sex", data = df, palette = pal, y_jitter = .02, logistic = True)
g.set(xlim=(0, 80), ylim = (-.05, 1.05))

# Regressão Linear com Distribuições Marginais
sea.set(style = "darkgrid")
tips = sea.load_dataset("tips")
color = sea.color_palette()[2]
g = sea.jointplot("total_bill",
                  "tip",
                  data = tips,
                  kind = "reg",
                  xlim = (0, 60),
                  ylim = (0, 12),
                  color = color,
                  size = 7)

# Pair Plots
sea.set(style = "darkgrid")
df = sea.load_dataset("iris")
sea.pairplot(df, hue = "species", size = 2.5)


I am working on the file "Cap08/Notebooks/DSA-Python-Cap08-08-Seaborn.ipynb".
The first task is:
Regressão linear é uma equação para se estimar a condicional (valor esperado) de uma variável y, dados os valores de algumas outras variáveis x.
Can you write Python code for it?

# O método joinplot cria plot de 2 variáveis com gráficos bivariados e univariados
sea.jointplot("total_bill", "tip", dados, kind = 'reg')

# O método lmplot() cria plot com dados e modelos de regressão.
sea.lmplot("total_bill", "tip", dados, col = "smoker")

# Construindo um dataframe com Pandas
df = pd.DataFrame()

# Alimentando o Dataframe com valores aleatórios
df['a'] = random.sample(range(1, 100), 25)
df['b'] = random.sample(range(1, 100), 25)

df.head()

# Scatter Plot
sea.lmplot('a', 'b', data = df, fit_reg = True)

# Density Plot
sea.kdeplot(df.b)

sea.kdeplot(df.b, df.a)

sea.distplot(df.a)

# Histograma
plt.hist(df.a, alpha = .3)
sea.rugplot(df.a)

# Box Plot
sea.boxplot(df.a)

# Box Plot
sea.boxplot(df.b)

# Violin Plot
sea.violinplot(df.a)

# Violin Plot
sea.violinplot(df.b)

# Heatmap
sea.heatmap([df.b, df.a], annot = True, fmt = "d")

# Clustermap
sea.clustermap(df)


I am working on the file "Cap09/Mini-Projeto2/Mini-Projeto2 - Analise1.ipynb".
The first task is:
Contagem total de veículos à venda conforme o tipo de veículo
Can you write Python code for it?

# Crie um Count Plot que mostre o número de veículos pertencentes a cada categoria

# Salvando o plot
g.savefig("plots/Analise1/count-vehicleType.png")


I am working on the file "Cap09/Mini-Projeto2/Mini-Projeto2 - Analise1.ipynb".
The first task is:
Distribuição de Veículos com base no Ano de Registro
Can you write Python code for it?

# Crie um Plot com a Distribuição de Veículos com base no Ano de Registro

# Salvando o plot
fig.savefig("plots/Analise1/vehicle-distribution.png")


I am working on the file "Cap09/Mini-Projeto2/Mini-Projeto2 - Analise1.ipynb".
The first task is:
Variação da faixa de preço pelo tipo de veículo
Can you write Python code for it?

# Crie um Boxplot para avaliar os outliers

# Salvando o plot
fig.savefig("plots/Analise1/price-vehicleType-boxplot.png")


I am working on the file "Cap09/Mini-Projeto2/Mini-Projeto2 - Analise2.ipynb".
The first task is:
Número de veículos pertencentes a cada marca
Can you write Python code for it?

# Crie um Plot que mostre o número de veículos pertencentes a cada marca

# Salvando o plot
g.savefig(("plots/Analise2/brand-vehicleCount.png"))


I am working on the file "Cap09/Mini-Projeto2/Mini-Projeto2 - Analise2.ipynb".
The first task is:
Preço médio dos veículos com base no tipo de veículo, bem como no tipo de caixa de câmbio
Can you write Python code for it?

# Crie um Plot com o Preço médio dos veículos com base no tipo de veículo, bem como no tipo de caixa de câmbio

# Salvando o plot
fig.savefig("plots/Analise2/vehicletype-gearbox-price.png")


I am working on the file "Cap09/Mini-Projeto2/Mini-Projeto2 - Analise3.ipynb".
The first task is:
Potência média de um veículo por tipo de veículo e tipo de caixa de câmbio
Can you write Python code for it?

# Crie um Barplot com a Potência média de um veículo por tipo de veículo e tipo de caixa de câmbio

# Salvando o plot
fig.savefig("plots/Analise3/vehicletype-fueltype-power.png")


I am working on the file "Cap09/Mini-Projeto2/Mini-Projeto2 - Analise3.ipynb".
The first task is:
Preço médio do veículo por tipo de combustível e tipo de caixa de câmbio
Can you write Python code for it?

# Crie um Barplot com o Preço médio do veículo por tipo de combustível e tipo de caixa de câmbio

# Salvando o plot
fig.savefig("plots/Analise3/fueltype-vehicleType-price.png")


I am working on the file "Cap09/Notebooks/DSA-Python-Cap09-Analise-Exploratoria-de-Dados.ipynb".
The first task is:
Distribuição de Idade
Can you write Python code for it?

# Qual a distribuição de idade dos participantes da pesquisa?
# A maioria dos profissionais que trabalham como programadores de
# software estão na faixa de idade entre 20 e 30 anos, sendo 25 anos
# a idade mais frequente.

# Gerando um histograma
df.Age.hist(bins = 60)
plt.xlabel("Idade")
plt.ylabel("Número de Profissionais")
plt.title("Distribuição de Idade")
plt.show()


I am working on the file "Cap09/Notebooks/DSA-Python-Cap09-Analise-Exploratoria-de-Dados.ipynb".
The first task is:
Distribuição de Interesses
Can you write Python code for it?

# Quais sãos os principais interesses dos participantes da pesquisa?
# O principal interesse profissional dos programadores é o desenvolvimento web (Full-Stack, Front-End e Back-End),
# seguido pela área de Data Science.

# Definindo a quantidade
num = len(df.JobRoleInterest.value_counts().index)

# Criando a lista de cores
listaHSV = [(x*1.0/num, 0.5, 0.5) for x in range(num)]
listaRGB = list(map(lambda x: colorsys.hsv_to_rgb(*x), listaHSV))
labels = df.JobRoleInterest.value_counts().index
colors = ['OliveDrab', 'Orange', 'OrangeRed', 'DarkCyan', 'Salmon', 'Sienna', 'Maroon', 'LightSlateGrey', 'DimGray']

# Gráfico de Pizza
fatias, texto = plt.pie(df.JobRoleInterest.value_counts(), colors = listaRGB, startangle = 90)
#plt.axes().set_aspect('equal', 'datalim')
plt.legend(fatias, labels, bbox_to_anchor = (1.25, 1))
plt.title("Interesse Profissional")
plt.show()


I am working on the file "Cap09/Notebooks/DSA-Python-Cap09-Analise-Exploratoria-de-Dados.ipynb".
The first task is:
Idade x Horas de Aprendizagem
Can you write Python code for it?

# Qual a relação entre idade e horas de aprendizagem?
# A idade dos profissionais não afeta a quantidade de tempo gasto com capacitação e treinamento.

import warnings
warnings.filterwarnings('ignore')

# Criando subset dos dados
df9 = df.copy()
df9 = df9.dropna(subset=["HoursLearning"])
df9 = df9[df['Age'].isin(range(0,70))]

# Definindo os valores de x e y
x = df9.Age
y = df9.HoursLearning

# Computando os valores e gerando o gráfico
m, b = np.polyfit(x, y, 1)
plt.plot(x, y, '.')
plt.plot(x, m*x + b, '-', color = "red")
plt.xlabel("Idade")
plt.ylabel("Horas de Treinamento")
plt.title("Idade por Horas de Treinamento")
plt.show()


I am working on the file "Cap09/Notebooks/DSA-Python-Cap09-Analise-Exploratoria-de-Dados.ipynb".
The first task is:
Preferências de Trabalho por Idade
Can you write Python code for it?

# Quais são as preferências de trabalho por idade?
# Perceba que à medida que a idade aumenta, o interesse por trabalho
# freelance também aumenta, sendo o modelo preferido por profissionais
# acima de 60 anos. Profissionais mais jovens preferem trabalhar em
# Startups ou no seu próprio negócio. Profissionais entre 20 e 50 anos
# preferem trabalhar em empresas de tamanho médio.

# Agrupando os dados
df_ageranges = df.copy()
bins=[0, 20, 30, 40, 50, 60, 100]

df_ageranges['AgeRanges'] = pd.cut(df_ageranges['Age'],
                                   bins,
                                   labels=["< 20", "20-30", "30-40", "40-50", "50-60", "< 60"])

df2 = pd.crosstab(df_ageranges.AgeRanges,
                  df_ageranges.JobPref).apply(lambda r: r/r.sum(), axis=1)

# Definindo a quantidade
num = len(df_ageranges.AgeRanges.value_counts().index)

# Criando a lista de cores
listaHSV = [(x*1.0/num, 0.5, 0.5) for x in range(num)]
listaRGB = list(map(lambda x: colorsys.hsv_to_rgb(*x), listaHSV))

# Gráfico de Barras (Stacked)
ax1 = df2.plot(kind = "bar", stacked = True, color = listaRGB, title = "Preferência de Trabalho por Idade")
lines, labels = ax1.get_legend_handles_labels()
ax1.legend(lines, labels, bbox_to_anchor = (1.51, 1))

# Visualizando o help
help(pd.crosstab)


I am working on the file "Cap09/Notebooks/DSA-Python-Cap09-Analise-Exploratoria-de-Dados.ipynb".
The first task is:
Realocação por Idade
Can you write Python code for it?

# Qual o objetivo de realocação?
# A vontade de buscar um novo emprego diminui com a idade.
# Quase 80% das pessoas abaixo dos 30 anos estão preparadas para isso.

# Agrupando os dados
df3 = pd.crosstab(df_ageranges.AgeRanges,
                  df_ageranges.JobRelocateYesNo).apply(lambda r: r/r.sum(), axis = 1)

# Definindo a quantidade
num = len(df_ageranges.AgeRanges.value_counts().index)

# Criando a lista de cores
listaHSV = [(x*1.0/num, 0.5, 0.5) for x in range(num)]
listaRGB = list(map(lambda x: colorsys.hsv_to_rgb(*x), listaHSV))

# Gráfico de Barras (Stacked)
ax1 = df3.plot(kind = "bar", stacked = True, color = listaRGB, title = "Realocação por Idade")
lines, labels = ax1.get_legend_handles_labels()
ax1.legend(lines,["Não", "Sim"], loc = 'best')


I am working on the file "Cap09/Notebooks/DSA-Python-Cap09-Exercicio-Solucao.ipynb".
The first task is:
Exercício: Análise Exploratória de Dados com Python
Neste exercício, você vai realizar uma análise exploratória em um dos mais famosos datasets para Machine Learning, o dataset iris com informações sobre 3 tipos de plantas. Esse dataset é comumente usado em problemas de Machine Learning de classificação, quando nosso objetivo é prever a classe dos dados. No caso deste dataset, prever a categoria de uma planta a partir de medidas da planta (sepal e petal).
Em cada célula, você encontra a tarefa a ser realizada. Faça todo o exercício e depois compare com a solução proposta.
Dataset (já disponível com o Scikit-Learn): https://archive.ics.uci.edu/ml/datasets/iris
Can you write Python code for it?

# Imports
import time
import numpy as np
import pandas as pd
import matplotlib as mat
from matplotlib import pyplot as plt
from sklearn.datasets import load_iris
%matplotlib inline

fontsize = 14
ticklabelsize = 14

np.__version__

pd.__version__

mat.__version__

# Carregando o dataset
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
print(len(df))
df.head()


I am working on the file "Cap09/Notebooks/DSA-Python-Cap09-Exercicio-Solucao.ipynb".
The first task is:
Exploração de Dados
Can you write Python code for it?

# Imprima uma Transposta do dataset (transforme linhas e colunas e colunas em linhas)
df.head(10).T

# Utilize a função Info do dataset para obter um resumo sobre o dataset
df.info()

# Faça um resumo estatístico do dataset
df.describe()

# Verifique se existem valores nulos no dataset
df.isnull().sum(axis=0)

# Faça uma contagem de valores de sepal length
df['sepal length (cm)'].value_counts(dropna=False)


I am working on the file "Cap09/Notebooks/DSA-Python-Cap09-Exercicio-Solucao.ipynb".
The first task is:
Extração e Transformação de Dados
Can you write Python code for it?

# Imprima os valores numéricos da Variável target (o que queremos prever),
# uma de 3 possíveis categorias de plantas: setosa, versicolor ou virginica
iris.target_names

# Imprima os valores numéricos da Variável target (o que queremos prever),
# uma de 3 possíveis categorias de plantas: 0, 1 ou 2
iris.target

# Adicione ao dataset uma nova coluna com os nomes das espécies, pois é isso que vamos tentar prever (variável target)
df['species'] = pd.Categorical.from_codes(iris.target, iris.target_names)
df.head()

# Inclua no dataset uma coluna com os valores numéricos da variável target
df['target'] = iris.target
df.head()

# Extraia as features (atributos) do dataset e imprima
features = df.columns[:4]
features

# Calcule a média de cada feature para as 3 classes
df.groupby('target').mean().T


I am working on the file "Cap09/Notebooks/DSA-Python-Cap09-Exercicio-Solucao.ipynb".
The first task is:
Plot
Can you write Python code for it?

# Crie um Histograma de sepal length
exclude = ['Id', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)', 'target']
df.loc[:, df.columns.difference(exclude)].hist()
plt.figure(figsize=(15,10))
plt.show()

# Crie um Gráficos de Dispersão (scatter Plot) da variável sepal length versus número da linha,
# colorido por marcadores da variável target
plt.figure(figsize=(12, 8), dpi=80)
plt.scatter(range(len(df)), df['petal width (cm)'], c=df['target'])
plt.xlabel('Número da Linha', fontsize=fontsize)
plt.ylabel('Sepal length (cm)', fontsize=fontsize)
plt.title('Gráfico de Dispersão dos Atributos, colorido por marcadores da classe alvo', fontsize=fontsize)
#plt.title('Scatter plot of features, colored by target labels', fontsize=fontsize)

# Crie um Scatter Plot de 2 Features (atributos)
plt.figure(figsize=(12, 8), dpi=80)
plt.scatter(df['petal length (cm)'], df['petal width (cm)'], c=df['target'])
plt.xlabel('petal length (cm)', fontsize=fontsize)
plt.ylabel('petal width (cm)', fontsize=fontsize)

# Crie um Scatter Matrix das Features (atributos)
attributes = ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
pd.plotting.scatter_matrix(df[attributes], figsize=(16, 12))

# Crie um Histograma de todas as features
df.hist(figsize=(12,12))


I am working on the file "Cap10/Mini-Projeto2-Solucao/Mini-Projeto2 - Analise1.ipynb".
The first task is:
Contagem total de veículos à venda conforme o tipo de veículo
Can you write Python code for it?

# Crie um Count Plot que mostre o número de veículos pertencentes a cada categoria
sns.set_style("white")
g = sns.catplot(x="vehicleType", data=df, kind="count", palette="BuPu", height=6, aspect=1.5)
g.ax.xaxis.set_label_text("Tipo de Veículo",fontdict= {'size':16})
g.ax.yaxis.set_label_text("Total de Veículos Para Venda", fontdict= {'size':16})
g.ax.set_title("Contagem total de veículos à venda conforme o tipo de veículo",fontdict= {'size':18})
# to get the counts on the top heads of the bar
for p in g.ax.patches:
    g.ax.annotate((p.get_height()), (p.get_x()+0.1, p.get_height()+500))

# Salvando o plot
g.savefig("plots/Analise1/count-vehicleType.png")


I am working on the file "Cap10/Mini-Projeto2-Solucao/Mini-Projeto2 - Analise1.ipynb".
The first task is:
Distribuição de Veículos com base no Ano de Registro
Can you write Python code for it?

# Crie um Plot com a Distribuição de Veículos com base no Ano de Registro
fig, ax = plt.subplots(figsize=(8,6))
sns.histplot(df["yearOfRegistration"], color="#33cc33",kde=True, ax=ax)
ax.set_title('Distribuição de Veículos com base no Ano de Registro', fontsize= 15)
plt.ylabel("Densidade (KDE)", fontsize= 15)
plt.xlabel("Ano de Registro", fontsize= 15)
plt.show()

# Salvando o plot
fig.savefig("plots/Analise1/vehicle-distribution.png")


I am working on the file "Cap10/Mini-Projeto2-Solucao/Mini-Projeto2 - Analise1.ipynb".
The first task is:
Variação da faixa de preço pelo tipo de veículo
Can you write Python code for it?

# Crie um Boxplot para avaliar os outliers
sns.set_style("whitegrid")
fig, ax = plt.subplots(figsize=(8,6))
sns.boxplot(x="vehicleType", y="price", data=df)
ax.text(5.25,27000,"Análise de Outliers",fontsize=18,color="r",ha="center", va="center")
ax.xaxis.set_label_text("Tipo de Veículo",fontdict= {'size':14})
ax.yaxis.set_label_text("Range de Preço",fontdict= {'size':14})
plt.show()

# Salvando o plot
fig.savefig("plots/Analise1/price-vehicleType-boxplot.png")


I am working on the file "Cap10/Mini-Projeto2-Solucao/Mini-Projeto2 - Analise2.ipynb".
The first task is:
Número de veículos pertencentes a cada marca
Can you write Python code for it?

# Crie um Plot que mostre o número de veículos pertencentes a cada marca
sns.set_style("whitegrid")
g = sns.catplot(y="brand", data=df, kind="count", palette="Reds_r", height=7, aspect=1.5)
g.ax.set_title("Veículos Por Marca",fontdict={'size':18})
g.ax.xaxis.set_label_text("Número de Veículos",fontdict= {'size':16})
g.ax.yaxis.set_label_text("Marca",fontdict= {'size':16})
plt.show()

# Salvando o plot
g.savefig(("plots/Analise2/brand-vehicleCount.png"))


I am working on the file "Cap10/Mini-Projeto2-Solucao/Mini-Projeto2 - Analise2.ipynb".
The first task is:
Preço médio dos veículos com base no tipo de veículo, bem como no tipo de caixa de câmbio
Can you write Python code for it?

# Crie um Plot com o Preço médio dos veículos com base no tipo de veículo, bem como no tipo de caixa de câmbio
fig, ax = plt.subplots(figsize=(8,5))
colors = ["#00e600", "#ff8c1a","#a180cc"]
sns.barplot(x="vehicleType", y="price",hue="gearbox", palette=colors, data=df)
ax.set_title("Preço médio dos veículos por tipo de veículo e tipo de caixa de câmbio",fontdict= {'size':12})
ax.xaxis.set_label_text("Tipo de Veículo",fontdict= {'size':12})
ax.yaxis.set_label_text("Preço Médio",fontdict= {'size':12})
plt.show()

# Salvando o plot
fig.savefig("plots/Analise2/vehicletype-gearbox-price.png")


I am working on the file "Cap10/Mini-Projeto2-Solucao/Mini-Projeto2 - Analise3.ipynb".
The first task is:
Potência média de um veículo por tipo de veículo e tipo de caixa de câmbio
Can you write Python code for it?

# Crie um Barplot com a Potência média de um veículo por tipo de veículo e tipo de caixa de câmbio
colors = ["windows blue", "amber", "greyish", "faded green", "dusty purple"]
fig, ax = plt.subplots(figsize=(8,5))
sns.set_palette(sns.xkcd_palette(colors))
sns.barplot(x="vehicleType", y="powerPS",hue="gearbox",data=df)
ax.set_title("Potência média de um veículo por tipo de veículo e tipo de caixa de câmbio",fontdict= {'size':12})
ax.xaxis.set_label_text("Tipo de Veículo",fontdict= {'size':14})
ax.yaxis.set_label_text("Potência Média",fontdict= {'size':14})
plt.show()

# Salvando o plot
fig.savefig("plots/Analise3/vehicletype-fueltype-power.png")


I am working on the file "Cap10/Mini-Projeto2-Solucao/Mini-Projeto2 - Analise4.ipynb".
The first task is:
Preço médio de um veículo por marca, bem como tipo de veículo
Can you write Python code for it?

# Crie um Heatmap com Preço médio de um veículo por marca, bem como tipo de veículo
tri = trial.pivot("brand","vehicleType", "avgPrice")
fig, ax = plt.subplots(figsize=(15,20))
sns.heatmap(tri,linewidths=1,cmap="YlGnBu",annot=True, ax=ax, fmt="d")
ax.set_title("Heatmap - Preço médio de um veículo por marca e tipo de veículo",fontdict={'size':20})
ax.xaxis.set_label_text("Tipo de Veículo",fontdict= {'size':20})
ax.yaxis.set_label_text("Marca",fontdict= {'size':20})
plt.show()

# Salvando o plot
fig.savefig("plots/Analise4/heatmap-price-brand-vehicleType.png")


I am working on the file "Cap10/Notebooks/DSA-Python-Cap10-Intro-TensorFlow.ipynb".
The first task is:
A figura acima mostra alguns tensores simplificados com dimensões mínimas. À medida que a dimensão continua crescendo, os dados se tornam mais e mais complexos. Por exemplo, se pegarmos um Tensor da forma (3x3), posso chamá-lo de matriz de 3 linhas e colunas. Se eu selecionar outro Tensor de forma (1000x3x3), posso chamá-lo como tensor ou conjunto de 1000 matrizes 3x3. Aqui chamamos (1000x3x3) como a forma ou dimensão do tensor resultante. Os tensores podem ser constantes ou variáveis.
Can you write Python code for it?

from IPython.display import Image
Image('imagens/tensor2.png')


I am working on the file "Cap10/Notebooks/DSA-Python-Cap10-Intro-TensorFlow.ipynb".
The first task is:
Divisão
Can you write Python code for it?

# Tensores
node1 = tf.constant(21, dtype = tf.int32)
node2 = tf.constant(7, dtype = tf.int32)

# Divisão
div = tf.math.truediv(node1, node2)

print('\nDivisão Entre os Tensores: \n', div)


I am working on the file "Cap10/Notebooks/DSA-Python-Cap10-Intro-TensorFlow.ipynb".
The first task is:
Grafo Computacional
Conheça a Formação Inteligência Artificial, um programa completo, 100% online e 100% em português, com mais de 402 horas em 9 cursos de nível intermediário/avançado, que vão ajudá-lo a se tornar um dos profissionais mais cobiçados do mercado de tecnologia. Clique no link abaixo, faça sua inscrição, comece hoje mesmo e aumente sua empregabilidade:
https://www.datascienceacademy.com.br/bundle/formacao-inteligencia-artificial
Agora sabemos o que o tensor realmente significa e é hora de entender o fluxo. Este fluxo refere-se a um grafo computacional ou simplesmente um grafo.
Grafos computacionais são uma boa maneira de pensar em expressões matemáticas. O conceito de grafo foi introduzido por Leonhard Euler em 1736 para tentar resolver o problema das Pontes de Konigsberg. Grafos são modelos matemáticos para resolver problemas práticos do dia a dia, com várias aplicações no mundo real tais como: circuitos elétricos, redes de distribuição, relações de parentesco entre pessoas, análise de redes sociais, logística, redes de estradas, redes de computadores e muito mais. Grafos são muito usados para modelar problemas em computação.
Um Grafo é um modelo matemático que representa relações entre objetos. Um grafo G = (V, E) consiste de um conjunto de vértices V (também chamados de nós), ligados por um conjunto de bordas ou arestas E.
Considere o diagrama abaixo:
Can you write Python code for it?

from IPython.display import Image
Image('imagens/grafo1.png')


I am working on the file "Cap10/Notebooks/DSA-Python-Cap10-Intro-TensorFlow.ipynb".
The first task is:
Introdução ao TensorFlow
O Tensorflow é uma das bibliotecas mais amplamente utilizadas para implementar o aprendizado de máquina e outros algoritmos que envolvem grandes operações matemáticas. O Tensorflow foi desenvolvido pelo Google e é uma das bibliotecas de aprendizado de máquina mais populares no GitHub. O Google usa o Tensorflow para aprendizado de máquina em quase todos os aplicativos. Se você já usou o Google Photos ou o Google Voice Search, então já utlizou uma aplicação criada com a ajuda do TensorFlow. Vamos compreender os detalhes por trás do TensorFlow.
Matematicamente, um tensor é um vetor N-dimensional, significando que um tensor pode ser usado para representar conjuntos de dados N-dimensionais. Aqui está um exemplo:
Can you write Python code for it?

from IPython.display import Image
Image('imagens/tensor1.png')


I am working on the file "Cap10/Notebooks/DSA-Python-Cap10-Intro-TensorFlow.ipynb".
The first task is:
Multiplicação
Para aprender a teoria e prática sobre operações com matrizes acesse aqui.
Can you write Python code for it?

# Criando tensores
tensor_a = tf.constant([[4., 2.]])
tensor_b = tf.constant([[3.],[7.]])

print(tensor_a)

print(tensor_b)

# Multiplicação
# tf.math.multiply(X, Y) executa multiplicação element-wise
# https://www.tensorflow.org/api_docs/python/tf/math/multiply
prod = tf.math.multiply(tensor_a, tensor_b)

print('\nProduto Element-wise Entre os Tensores: \n', prod)

# Outro exemplo de Multiplicação de Matrizes
mat_a = tf.constant([[2, 3], [9, 2], [4, 5]])
mat_b = tf.constant([[6, 4, 5], [3, 7, 2]])

print(mat_a)

print(mat_b)

# Multiplicação
# tf.linalg.matmul(X, Y) executa multiplicação entre matrizes
# https://www.tensorflow.org/api_docs/python/tf/linalg/matmul
mat_prod = tf.linalg.matmul(mat_a, mat_b)

print('\nProduto Element-wise Entre os Tensores (Matrizes): \n', mat_prod)

from IPython.display import Image
Image('imagens/matrizes.png')


I am working on the file "Cap10/Notebooks/DSA-Python-Cap10-Intro-TensorFlow.ipynb".
The first task is:
O grafo acima representa um cálculo de fluxo de dados; cada nó está em operação com zero ou mais entradas e zero ou mais saídas. As arestas do grafo são tensores que fluem entre os nós. Os Cientistas de Dados geralmente constroem um grafo computacional usando uma das linguagens frontend suportadas como Python e C ++ e, em seguida, iniciam o grafo.
Vamos ver o grafo computacional acima em detalhes. Truncamos o grafo e deixamos a parte acima do nó ReLU, que é exatamente o cálculo h = ReLU (Wx + b).
Can you write Python code for it?

from IPython.display import Image
Image('imagens/grafo4.png')


I am working on the file "Cap10/Notebooks/DSA-Python-Cap10-Intro-TensorFlow.ipynb".
The first task is:
Podemos ver o grafo como um sistema, que tem entradas (os dados x), saída (h neste caso), variáveis com estado (W e b) e um monte de operações (matmul, add e ReLU). Deixe-me apresentar-lhe um por um.

Variáveis: quando treinamos um modelo, usamos variáveis para manter e atualizar parâmetros. Ao contrário de muitos tensores que fluem ao longo das margens do grafo, uma variável é um tipo especial de operação. Na maioria dos modelos de aprendizado de máquina, existem muitos parâmetros que temos que aprender, que são atualizados durante o treinamento. Variáveis são nós com estado que armazenam parâmetros e produzem seus valores atuais de tempos em tempos. Seus estados são mantidos em múltiplas execuções de um grafo. Por exemplo, os valores desses nós não serão atualizados até que uma etapa completa de treinamento usando um mini lote de dados seja concluída.

Operações matemáticas: Neste grafo, existem três tipos de operações matemáticas. A operação MatMul multiplica dois valores de matriz; A operação Add adiciona elementos e a operação ReLU é ativada com a função linear retificada de elementos.

Hello World
Can you write Python code for it?

# Versão do TensorFlow a ser usada
!pip install -q tensorflow==2.5

import tensorflow as tf

tf.__version__

# Cria um tensor
# Esse tensor é adicionado como um nó ao grafo.
hello = tf.constant('Hello, TensorFlow!')

print(hello)


I am working on the file "Cap10/Notebooks/DSA-Python-Cap10-Intro-TensorFlow.ipynb".
The first task is:
Qual você deve usar? tf.constant () ou tf.Variable ()?
Dependerá do que o seu problema requer. No entanto, na maioria das vezes, o TensorFlow escolhe automaticamente para você (ao carregar dados ou modelar dados).
Outras Formas de Criar Tensores
Can you write Python code for it?

# Tensor preenchido com 1
tf.ones(shape=(3, 2))

# Tensor preenchido com 0
tf.zeros(shape=(3, 2))

# Cria um tensor rank 4 (4 dimensões)
rank_4_tensor = tf.zeros([2, 3, 4, 5])
rank_4_tensor

# Imprime atributos do tensor
print("Tipo de dado de cada elemento:", rank_4_tensor.dtype)
print("Número de dimensões (rank):", rank_4_tensor.ndim)
print("Shape do tensor:", rank_4_tensor.shape)
print("Elementos no eixo 0 do tensor:", rank_4_tensor.shape[0])
print("Elementos no último eixo do tensor:", rank_4_tensor.shape[-1])
print("Número total de elementos (2*3*4*5):", tf.size(rank_4_tensor).numpy())

# Obtém os 2 primeiros itens de cada dimensão
rank_4_tensor[:2, :2, :2, :2]

# Obtém a dimensão de cada índice, exceto o final
rank_4_tensor[:1, :1, :1, :]

# Cria um tensor e rank 2 (2 dimensões)
rank_2_tensor = tf.constant([[10, 7],
                             [3, 4]])

# Obtém o último item de cada linha
rank_2_tensor[:, -1]


I am working on the file "Cap10/Notebooks/DSA-Python-Cap10-Intro-TensorFlow.ipynb".
The first task is:
Subtração
Can you write Python code for it?

# Tensores randômicos
rand_a = tf.random.normal([3], 2.0)
rand_b = tf.random.uniform([3], 1.0, 4.0)

print(rand_a)

print(rand_b)

# Subtração
diff = tf.subtract(rand_a, rand_b)

type(diff)

print('\nSubtração entre os 2 tensores é: ', diff)


I am working on the file "Cap10/Notebooks/DSA-Python-Cap10-Intro-TensorFlow.ipynb".
The first task is:
Usando Variáveis
O TensorFlow também possui nodes variáveis que podem conter dados variáveis. Elas são usados principalmente para manter e atualizar parâmetros de um modelo de treinamento.
Variáveis são buffers na memória contendo tensores. Elas devem ser inicializados e podem ser salvas durante e após o treinamento. Você pode restaurar os valores salvos posteriormente para exercitar ou analisar o modelo.
Uma diferença importante a notar entre uma constante e uma variável é:
O valor de uma constante é armazenado no grafo e seu valor é replicado onde o grafo é carregado. Uma variável é armazenada separadamente e pode estar em um servidor de parâmetros.
Can you write Python code for it?

# Criado o mesmo tensor com tf.Variable() e tf.constant()
changeable_tensor = tf.Variable([10, 7])
unchangeable_tensor = tf.constant([10, 7])
changeable_tensor, unchangeable_tensor

# Isso vai gerar erro - requer o método assign()
changeable_tensor[0] = 7
changeable_tensor

# Isso vai funcionar
changeable_tensor[0].assign(7)
changeable_tensor

# Isso vai gerar erro (não podemos alterar tensores criados com tf.constant())
unchangeable_tensor[0].assign(7)
unchangleable_tensor


I am working on the file "Cap10/Notebooks/DSA-Python-Cap10-Mini-Projeto3.ipynb".
The first task is:
Carregando os Dados
Boston House Prices Dataset
https://www.cs.toronto.edu/~delve/data/boston/bostonDetail.html
Características:

Número de Observções: 506
Os primeiros 13 recursos são recursos preditivos numéricos / categóricos.
O último (atributo 14): o valor mediano é a variável de destino.
Can you write Python code for it?

# Download dos dados
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
dataset_path = keras.utils.get_file("housing.data", "https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data")

# Nomes das colunas
nomes_colunas = ['CRIM',
                 'ZN',
                 'INDUS',
                 'CHAS',
                 'NOX',
                 'RM',
                 'AGE',
                 'DIS',
                 'RAD',
                 'TAX',
                 'PTRATION',
                 'B',
                 'LSTAT',
                 'MEDV']

# Carrega os dados
dataset = pd.read_csv(dataset_path,
                      names = nomes_colunas,
                      na_values = "?",
                      comment = '\t',
                      sep = " ",
                      skipinitialspace = True)

# Shape
dataset.shape

# Visualiza os dados
dataset.head()


I am working on the file "Cap10/Notebooks/DSA-Python-Cap10-Mini-Projeto3.ipynb".
The first task is:
Criação do Modelo
Queremos encontrar os parâmetros (W) que permitem prever a saída y a partir da entrada x:
$y = w_1 x + w_0$
A fórmula acima pode ser definida com a seguinte camada densa em um modelo de rede neural artificial:
layers.Dense(1, use_bias=True, input_shape=(1,))
Can you write Python code for it?

# Função para construir o modelo
def modelo_linear():

    # Cria o modelo
    model = keras.Sequential([layers.Dense(1, use_bias = True, input_shape = (1,), name = 'layer')])

    # Otimizador
    optimizer = tf.keras.optimizers.Adam(learning_rate = 0.01,
                                         beta_1 = 0.9,
                                         beta_2 = 0.99,
                                         epsilon = 1e-05,
                                         amsgrad = False,
                                         name = 'Adam')

    # Compila o modelo
    model.compile(loss = 'mse',
                  optimizer = optimizer,
                  metrics = ['mae','mse'])

    return model


I am working on the file "Cap10/Notebooks/DSA-Python-Cap10-Mini-Projeto3.ipynb".
The first task is:
MSE = Mean Squared Error
Can you write Python code for it?

# Retornando os valores desejados para o plot
mse = np.asarray(history.history['mse'])
val_mse = np.asarray(history.history['val_mse'])

# Prepara os valores para o dataframe
num_values = (len(mse))
values = np.zeros((num_values, 2), dtype = float)
values[:,0] = mse
values[:,1] = val_mse

# Cria o dataframe
steps = pd.RangeIndex(start = 0, stop = num_values)
df = pd.DataFrame(values, steps, columns = ["MSE em Treino", "MSE em Validação"])

df.head()

# Plot
sns.set(style = "whitegrid")
sns.lineplot(data = df, palette = "tab10", linewidth  = 2.5)

# Previsões com o modelo treinado
previsoes = modelo.predict(x_teste).flatten()

# Imprime as previsões
previsoes


I am working on the file "Cap10/Notebooks/DSA-Python-Cap10-Mini-Projeto3.ipynb".
The first task is:
Modelagem Preditiva - Regressão Linear Simples
Na regressão linear simples desejamos modelar a relação entre a variável dependente (y) e uma variável independente (x).

Variável independente: 'RM'
Variável dependente: 'MEDV'

Queremos prever o valor da mediana das casas ocupadas por proprietários com base no número de quartos.
Vamos criar um plot mostrando a relação atual entre as variáveis.
Basicamente temos $MEDV=f(RM)$ e queremos estimar a função $f()$ usando regressão linear.
Can you write Python code for it?

# Representação visual dos dados de treino
fig, ax = plt.subplots()
x = dados_treino['RM']
y = dados_treino['MEDV']
ax.scatter(x, y, edgecolors = (0, 0, 0))
ax.set_xlabel('RM')
ax.set_ylabel('MEDV')
plt.show()


I am working on the file "Cap10/Notebooks/DSA-Python-Cap10-Mini-Projeto3.ipynb".
The first task is:
Vamos dividir os dados em treino e teste com proporção 80/20.
Can you write Python code for it?

# Split dos dados
dados_treino = dataset.sample(frac = 0.8, random_state = 0)
dados_teste = dataset.drop(dados_treino.index)


I am working on the file "Cap11/DSA-Python-Cap11-Machine-Learning.ipynb".
The first task is:
Fazendo Previsões Com o Modelo Treinado
Can you write Python code for it?

import pickle

# Salvando o modelo para usar mais tarde
filename = 'modelo_treinado_v3.sav'
pickle.dump(modelo_v3, open(filename, 'wb'))

X_teste

# Carregando o modelo e fazendo previsão com novos conjuntos de dados
# (X_teste, Y_teste devem ser novos conjuntos de dados preparados com o procedimento de limpeza e transformação adequados)
loaded_model = pickle.load(open(filename, 'rb'))
resultado1 = loaded_model.predict(X_teste[15].reshape(1, -1))
resultado2 = loaded_model.predict(X_teste[18].reshape(1, -1))
print(resultado1)
print(resultado2)


I am working on the file "Cap11/DSA-Python-Cap11-Machine-Learning.ipynb".
The first task is:
Métricas
Can you write Python code for it?

from IPython.display import Image
Image('ConfusionMatrix.jpg')

# Criando uma Confusion Matrix
print("Confusion Matrix")

print("{0}".format(metrics.confusion_matrix(Y_teste, nb_predict_test, labels = [1, 0])))
print("")

print("Classification Report")
print(metrics.classification_report(Y_teste, nb_predict_test, labels = [1, 0]))


I am working on the file "Cap11/DSA-Python-Cap11-Machine-Learning.ipynb".
The first task is:
Prevendo a Ocorrência de Diabetes
Can you write Python code for it?

from IPython.display import Image
Image('Workflow.png')


I am working on the file "Cap11/DSA-Python-Cap11-Machine-Learning.ipynb".
The first task is:
Regressão Logística
Can you write Python code for it?

from sklearn.linear_model import LogisticRegression

# Terceira versão do modelo usando Regressão Logística
modelo_v3 = LogisticRegression(C = 0.7, random_state = 42, max_iter = 1000)
modelo_v3.fit(X_treino, Y_treino.ravel())
lr_predict_test = modelo_v3.predict(X_teste)

print("Exatidão (Accuracy): {0:.4f}".format(metrics.accuracy_score(Y_teste, lr_predict_test)))
print()
print("Classification Report")
print(metrics.classification_report(Y_teste, lr_predict_test, labels = [1, 0]))

### Resumindo
## Exatidão nos dados de teste

# Modelo usando algoritmo Naive Bayes         = 0.7359
# Modelo usando algoritmo Random Forest       = 0.7400
# Modelo usando algoritmo Regressão Logística = 0.7446


I am working on the file "Cap11/DSA-Python-Cap11-Machine-Learning.ipynb".
The first task is:
Spliting
70% para dados de treino e 30% para dados de teste
Can you write Python code for it?

from IPython.display import Image
Image('Treinamento.png')

import sklearn as sk
sk.__version__

from sklearn.model_selection import train_test_split

# Seleção de variáveis preditoras (Feature Selection)
atributos = ['num_preg', 'glucose_conc', 'diastolic_bp', 'thickness', 'insulin', 'bmi', 'diab_pred', 'age']

# Variável a ser prevista
atrib_prev = ['diabetes']

# Criando objetos
X = df[atributos].values
Y = df[atrib_prev].values

X

Y

# Definindo a taxa de split
split_test_size = 0.30

# Criando dados de treino e de teste
X_treino, X_teste, Y_treino, Y_teste = train_test_split(X, Y, test_size = split_test_size, random_state = 42)

# Imprimindo os resultados
print("{0:0.2f}% nos dados de treino".format((len(X_treino)/len(df.index)) * 100))
print("{0:0.2f}% nos dados de teste".format((len(X_teste)/len(df.index)) * 100))

X_treino


I am working on the file "Cap11/DSA-Python-Cap11-Machine-Learning.ipynb".
The first task is:
Verificando a exatidão no modelo nos dados de teste
Can you write Python code for it?

nb_predict_test = modelo_v1.predict(X_teste)

print("Exatidão (Accuracy): {0:.4f}".format(metrics.accuracy_score(Y_teste, nb_predict_test)))
print()


I am working on the file "Cap11/DSA-Python-Cap11-Machine-Learning.ipynb".
The first task is:
Verificando a exatidão no modelo nos dados de treino
Can you write Python code for it?

from sklearn import metrics

nb_predict_train = modelo_v1.predict(X_treino)

print("Exatidão (Accuracy): {0:.4f}".format(metrics.accuracy_score(Y_treino, nb_predict_train)))
print()


I am working on the file "Cap11/DSA-Python-Cap11-Machine-Learning.ipynb".
The first task is:
Verificando o Split
Can you write Python code for it?

print("Original True : {0} ({1:0.2f}%)".format(len(df.loc[df['diabetes'] == 1]),
                                               (len(df.loc[df['diabetes'] ==1])/len(df.index) * 100)))

print("Original False : {0} ({1:0.2f}%)".format(len(df.loc[df['diabetes'] == 0]),
                                               (len(df.loc[df['diabetes'] == 0])/len(df.index) * 100)))
print("")
print("Training True : {0} ({1:0.2f}%)".format(len(Y_treino[Y_treino[:] == 1]),
                                               (len(Y_treino[Y_treino[:] == 1])/len(Y_treino) * 100)))

print("Training False : {0} ({1:0.2f}%)".format(len(Y_treino[Y_treino[:] == 0]),
                                               (len(Y_treino[Y_treino[:] == 0])/len(Y_treino) * 100)))
print("")
print("Test True : {0} ({1:0.2f}%)".format(len(Y_teste[Y_teste[:] == 1]),
                                               (len(Y_teste[Y_teste[:] == 1])/len(Y_teste) * 100)))

print("Test False : {0} ({1:0.2f}%)".format(len(Y_teste[Y_teste[:] == 0]),
                                               (len(Y_teste[Y_teste[:] == 0])/len(Y_teste) * 100)))


I am working on the file "Cap12/DSA-Python-Cap12-Mini-Projeto4.ipynb".
The first task is:
Avaliação do Modelo
Can you write Python code for it?

# Para carregar os pesos, precisamos descongelar as camadas
modelo.layers[0].trainable = True

# Carrega os pesos do ponto de verificação e reavalie
modelo.load_weights("modelo/melhor_modelo.h5")


I am working on the file "Cap12/DSA-Python-Cap12-Mini-Projeto4.ipynb".
The first task is:
Carregamos os dados de teste.
Can you write Python code for it?

# Carregando e preparando os dados de teste
camninho_imagens_teste = list(caminho_dados_teste.glob("*/*"))
imagens_teste = list(map(lambda x: str(x), camninho_imagens_teste))
imagens_teste_labels = list(map(lambda x: extrai_label(x), imagens_teste))
imagens_teste_labels = encoder.fit_transform(imagens_teste_labels)
imagens_teste_labels = tf.keras.utils.to_categorical(imagens_teste_labels)
test_image_paths = tf.convert_to_tensor(imagens_teste)
test_image_labels = tf.convert_to_tensor(imagens_teste_labels)

# Função para decode das imagens
def decode_imagens(image, label):
    image = tf.io.read_file(image)
    image = tf.io.decode_jpeg(image, channels = 3)
    image = tf.image.resize(image, [224,224], method = "bilinear")
    return image, label

# Cria o dataset de teste
dataset_teste = (tf.data.Dataset
                 .from_tensor_slices((imagens_teste, imagens_teste_labels))
                 .map(decode_imagens)
                 .batch(batch_size))

# Shape
imagem, label = next(iter(dataset_teste))
print(imagem.shape)
print(label.shape)

# Visualiza uma imagem de teste
print(encoder.inverse_transform(np.argmax(label, axis = 1))[0])
plt.imshow((imagem[0].numpy()/255).reshape(224,224,3))

# Avalia o modelo
loss, acc, prec, rec = modelo.evaluate(dataset_teste)

print("Acurácia: ", acc)
print("Precision: ", prec)
print("Recall: ", rec)


I am working on the file "Cap12/DSA-Python-Cap12-Mini-Projeto4.ipynb".
The first task is:
Carregando os Dados (Imagens)
Can you write Python code for it?

# Diretório atual
diretorio_atual = Path.cwd()
print(diretorio_atual)

# Caminho para os dados de treino
caminho_dados_treino = Path("fruits-360/Training")

# Caminho para os dados de teste
caminho_dados_teste = Path("fruits-360/Test")

# Listando o conteúdo da pasta
imagens_treino = list(caminho_dados_treino.glob("*/*"))

# Visualiza uma amostra da lista
imagens_treino[925:936]

# Expressão lambda que extrai apenas o valor com o caminho de cada imagem
imagens_treino = list(map(lambda x: str(x), imagens_treino))

# Visualiza uma amostra da lista
imagens_treino[925:936]

# Total de imagens de treino
len(imagens_treino)


I am working on the file "Cap12/DSA-Python-Cap12-Mini-Projeto4.ipynb".
The first task is:
Construção do Modelo
Can you write Python code for it?

# Carregando um modelo pré-treinado
modelo_pre = EfficientNetB3(input_shape = (224,224,3), include_top = False)

# Adicionando nossas próprias camadas ao modelo_pre
modelo = tf.keras.Sequential([modelo_pre,
                              tf.keras.layers.GlobalAveragePooling2D(),
                              tf.keras.layers.Dense(131, activation = 'softmax')])

# Sumário do modelo
modelo.summary()

# Hiperparâmetros
lr = 0.001
beta1 = 0.9
beta2 = 0.999
ep = 1e-07

# Compilação do modelo
modelo.compile(optimizer = Adam(learning_rate = lr,
                                beta_1 = beta1,
                                beta_2 = beta2,
                                epsilon = ep),
               loss = 'categorical_crossentropy',
               metrics = ['accuracy', Precision(name = 'precision'), Recall(name = 'recall')])


I am working on the file "Cap12/DSA-Python-Cap12-Mini-Projeto4.ipynb".
The first task is:
Label encoding (convertendo string para valor numérico)
Can you write Python code for it?

# Cria o objeto
encoder = LabelEncoder()

# Aplica o fit_transform
imagens_treino_labels = encoder.fit_transform(imagens_treino_labels)

# Visualiza uma amostra
imagens_treino_labels[840:846]

# Aplicamos One-Hot-Encoding nos labels
imagens_treino_labels = tf.keras.utils.to_categorical(imagens_treino_labels)

# Visualiza uma amostra
imagens_treino_labels[840:846]

# Dividimos os dados de treino em duas amostras, treino e validação
X_treino, X_valid, y_treino, y_valid = train_test_split(imagens_treino, imagens_treino_labels)

X_treino[15:18]

y_treino[15:18]


I am working on the file "Cap12/DSA-Python-Cap12-Mini-Projeto4.ipynb".
The first task is:
Preparando os Dados
Can you write Python code for it?

# Hiperparâmnetros
batch_size = 32
autotune = tf.data.experimental.AUTOTUNE

# Função para carregar e transformar as imagens
def carrega_transforma(image, label):
    image = tf.io.read_file(image)
    image = tf.io.decode_jpeg(image, channels = 3)
    return image, label

# Função para preparar os dados noo formato do TensorFlow
def prepara_dataset(path, labels, train = True):

    # Prepara os dados
    image_paths = tf.convert_to_tensor(path)
    labels = tf.convert_to_tensor(labels)
    image_dataset = tf.data.Dataset.from_tensor_slices(image_paths)
    label_dataset = tf.data.Dataset.from_tensor_slices(labels)
    dataset = tf.data.Dataset.zip((image_dataset, label_dataset))
    dataset = dataset.map(lambda image, label: carrega_transforma(image, label))
    dataset = dataset.map(lambda image, label: (resize(image), label), num_parallel_calls = autotune)
    dataset = dataset.shuffle(1000)
    dataset = dataset.batch(batch_size)

    # Se train = True aplica dataset augmentation
    if train:
        dataset = dataset.map(lambda image, label: (data_augmentation(image), label), num_parallel_calls = autotune)

    # Se train = False repete sobre o dataset e retorna
    dataset = dataset.repeat()

    return dataset

# Cria o dataset de treino
dataset_treino = prepara_dataset(X_treino, y_treino)

# Shape
imagem, label = next(iter(dataset_treino))
print(imagem.shape)
print(label.shape)

# Vamos visualizar uma imagem e um label
print(encoder.inverse_transform(np.argmax(label, axis = 1))[0])
plt.imshow((imagem[0].numpy()/255).reshape(224,224,3))

# Cria o dataset de validação
dataset_valid = prepara_dataset(X_valid, y_valid, train = False)

# Shape
imagem, label = next(iter(dataset_valid))
print(imagem.shape)
print(label.shape)


I am working on the file "Cap12/DSA-Python-Cap12-Mini-Projeto4.ipynb".
The first task is:
Previsões com o Modelo Treinado
Can you write Python code for it?

# Função para carregar uma nova imagem
def carrega_nova_imagem(image_path):
    image = tf.io.read_file(image_path)
    image = tf.io.decode_jpeg(image, channels = 3)
    image = tf.image.resize(image, [224,224], method = "bilinear")
    plt.imshow(image.numpy()/255)
    image = tf.expand_dims(image, 0)
    return image

# Função para fazer previsões
def faz_previsao(image_path, model, enc):
    image = carrega_nova_imagem(image_path)
    prediction = model.predict(image)
    pred = np.argmax(prediction, axis = 1)
    return enc.inverse_transform(pred)[0]

# Previsão
faz_previsao("imagens/imagem1.jpg", modelo, encoder)

# Previsão
faz_previsao("imagens/imagem2.jpg", modelo, encoder)

# Previsão
faz_previsao("imagens/imagem3.jpg", modelo, encoder)

# Previsão
faz_previsao("imagens/imagem4.jpg", modelo, encoder)

# Previsão
faz_previsao("imagens/imagem5.jpg", modelo, encoder)


I am working on the file "Cap12/DSA-Python-Cap12-Mini-Projeto4.ipynb".
The first task is:
Pré-Processamento dos Dados
Can you write Python code for it?

# Função que obtém o label de cada imagem
def extrai_label(caminho_imagem):
    return caminho_imagem.split("/")[-2]

# Aplica a função
imagens_treino_labels = list(map(lambda x: extrai_label(x), imagens_treino))

# Visualiza uma amostra
imagens_treino_labels[840:846]


I am working on the file "Cap12/DSA-Python-Cap12-Mini-Projeto4.ipynb".
The first task is:
Vamos treinar o modelo por apenas uma época e verificar as métricas.

Nota: Se você treinar o modelo em um computador sem GPU o tempo de treinamento será bastante alto, provavelmente de muitas horas. Pratique a paciência e aguarde.
Can you write Python code for it?

%%time
history = modelo.fit(dataset_treino,
                     steps_per_epoch = len(X_treino)//batch_size,
                     epochs = 1,
                     validation_data = dataset_valid,
                     validation_steps = len(y_treino)//batch_size)


I am working on the file "Cap12/DSA-Python-Cap12-Mini-Projeto4.ipynb".
The first task is:
Vamos treinar o modelo por mais 6 épocas a fim de melhorar a performance e aplicar algumas técnicas para evitar overfitting.
Can you write Python code for it?

# Não precisamos mais do modelo_pre
modelo.layers[0].trainable = False

# Checkpoint
checkpoint = tf.keras.callbacks.ModelCheckpoint("modelo/melhor_modelo.h5",
                                                verbose = 1,
                                                save_best = True,
                                                save_weights_only = True)

# Early stop
early_stop = tf.keras.callbacks.EarlyStopping(patience = 4)

# Sumário
modelo.summary()

%%time
history = modelo.fit(dataset_treino,
                     steps_per_epoch = len(X_treino)//batch_size,
                     epochs = 6,
                     validation_data = dataset_valid,
                     validation_steps = len(y_treino)//batch_size,
                     callbacks = [checkpoint, early_stop])


I am working on the file "Cap14/DSA-Python-Cap14-01-WebScraping.ipynb".
The first task is:
Web Scraping
Can you write Python code for it?

# Biblioteca usada para requisitar uma página de um web site
import urllib.request

# Definimos a url
# Verifique as permissões em https://www.python.org/robots.txt
with urllib.request.urlopen("https://www.python.org") as url:
    page = url.read()

# Imprime o conteúdo
print(page)

from bs4 import BeautifulSoup

# Analise o html na variável 'page' e armazene-o no formato Beautiful Soup
soup = BeautifulSoup(page, "html.parser")

soup.title

soup.title.string

soup.a

soup.find_all("a")

tables = soup.find('table')

print(tables)


I am working on the file "Cap14/DSA-Python-Cap14-02-Expressoes-Regulares.ipynb".
The first task is:
Escape Codes
É possível usar códigos específicos para enocntrar padrões nos dados, tais como dígitos, não dígitos, espaços, etc..

<colgroup>
<col width="14%" />
<col width="86%" />
</colgroup>

Código
Significado

<tt class="docutils literal">\d</tt>
um dígito

<tt class="docutils literal">\D</tt>
um não-dígito

<tt class="docutils literal">\s</tt>
espaço (tab, espaço, nova linha, etc.)

<tt class="docutils literal">\S</tt>
não-espaço

<tt class="docutils literal">\w</tt>
alfanumérico

<tt class="docutils literal">\W</tt>
não-alfanumérico

Can you write Python code for it?

# O prefixo r antes da expressão regular evita o pré-processamento da ER
# pela linguagem. Colocamos o modificador r (do inglês "raw", crú)
# imediatamente antes das aspas
r'\b'

'\b'

frase = 'Esta é uma string com alguns números, como 1287 e um símbolo #hashtag'

lista_padroes = [ r'\d+', # sequência de dígitos
                  r'\D+', # sequência de não-dígitos
                  r'\s+', # sequência de espaços
                  r'\S+', # sequência de não-espaços
                  r'\w+', # caracteres alfanuméricos
                  r'\W+', # não-alfanumérico
                ]

encontra_padrao(lista_padroes, frase)


I am working on the file "Cap14/DSA-Python-Cap14-02-Expressoes-Regulares.ipynb".
The first task is:
Expressões Regulares
Uma expressão regular é um método formal de se especificar um padrão de texto.
Mais detalhadamente, é uma composição de símbolos, caracteres com funções especiais, que, agrupados entre si e com caracteres literais, formam uma sequência, uma expressão. Essa expressão é interpretada como uma regra, que indicará sucesso se uma entrada de dados qualquer casar com essa regra, ou seja, obedecer exatamente a todas as suas condições.
Can you write Python code for it?

# Importando o módulo re (regular expression)
# Esse módulo fornece operações com expressões regulares (ER)
import re

# Lista de termos para busca
lista_pesquisa = ['informações', 'Negócios']

# Texto para o parse
texto = 'Existem muitos desafios para o Big Data. O primeiro deles é a coleta dos dados, pois fala-se aqui de '\
'enormes quantidades sendo geradas em uma taxa maior do que um servidor comum seria capaz de processar e armazenar. '\
'O segundo desafio é justamente o de processar essas informações. Com elas então distribuídas, a aplicação deve ser '\
'capaz de consumir partes das informações e gerar pequenas quantidades de dados processados, que serão calculados em '\
'conjunto depois para criar o resultado final. Outro desafio é a exibição dos resultados, de forma que as informações '\
'estejam disponíveis de forma clara para os tomadores de decisão.'

# Exemplo básico de Data Mining
for item in lista_pesquisa:
    print ('Buscando por "%s" em: \n\n"%s"' % (item, texto))

    # Verificando se o termo de pesquisa existe no texto
    if re.search(item,  texto):
        print ('\n')
        print ('Palavra encontrada. \n')
        print ('\n')
    else:
        print ('\n')
        print ('Palavra não encontrada.')
        print ('\n')

# Termo usado para dividir uma string
split_term = '@'

frase = 'Qual o domínio de alguém com o e-mail: aluno@gmail.com'

# Dividindo a frase
re.split(split_term, frase)

def encontra_padrao(lista, frase):

    for item in lista:
        print ('Pesquisando na frase: %r' %item)
        print (re.findall(item, frase))
        print ('\n')

frase_padrao = 'zLzL..zzzLLL...zLLLzLLL...LzLz...dzzzzz...zLLLL'

lista_padroes = [ 'zL*',       # z seguido de zero ou mais L
                  'zL+',       # z seguido por um ou mais L
                  'zL?',       # z seguido por zero ou um L
                  'zL{3}',     # z seguido por três L
                  'zL{2,3}',   # z seguido por dois a três L
                ]

encontra_padrao(lista_padroes,...


I am working on the file "Cap14/DSA-Python-Cap14-03-WebScraping-Pandas.ipynb".
The first task is:
Web Scraping e Pandas
Can you write Python code for it?

!pip install -q tabulate

# Imports
import pandas as pd
import requests
from bs4 import BeautifulSoup
from tabulate import tabulate

pd.__version__

# URL
res = requests.get("http://www.nationmaster.com/country-info/stats/Media/Internet-users")

# Parser
soup = BeautifulSoup(res.content,'lxml')

# Extrai a tabela do código HTML
table = soup.find_all('table')[0]

print(table)

# Conversão da tabela HTML em um dataframe do Pandas
df = pd.read_html(str(table))

print(df)

# Conversão do dataframe para o formato JSON
print(df[0].to_json(orient='records'))

res = requests.get("http://www.nationmaster.com/country-info/stats/Media/Internet-users")
soup = BeautifulSoup(res.content,'lxml')
table = soup.find_all('table')[0]
df = pd.read_html(str(table))
print( tabulate(df[0], headers='keys', tablefmt='psql') )


I am working on the file "Capacitors/Discharging_capacitors.ipynb".
The first task is:
Case 4: Capacitor discharge to a resistor
<img src="cap_discharge.png">
Can you write Python code for it?

# Capacitor discharging to a resistor

def dk(y,t):
    u = y[0]

    du = -1/(R1*C)*u

    return [du]

y03 = [200.0]

X5 = odeint(dk, y03, t3)

u = X5[:,0]

p7 = figure(plot_width=800, plot_height=400, x_range = (0,4e-5))

p7.line(t3, u, color="firebrick")

p7.xaxis.axis_label = "time [s]"
p7.xaxis.axis_label_text_font_size = "10pt"
p7.yaxis.axis_label = "voltage [V]"
p7.yaxis.axis_label_text_font_size = "10pt"

show(p7)


I am working on the file "Capacitors/Discharging_capacitors.ipynb".
The first task is:
Case1: Two capacitors and the resistor
Theoretical background and derivation of the state equations
<img src="two_cap.png">
Can you write Python code for it?

# Case 1 two capacitors and the resistor

def dx1(y,t):
    uco = y[0]

    duco = 1/(R2*Co)*(Uo - uco - Co/C*uco)

    return [duco]

# initial conditions
Uo = 200
y0 = [0.0]

# time constant
Cz = C*Co/(C+Co)
R2*Cz

from scipy.integrate import odeint, ode, romb, cumtrapz

X1 = odeint(dx1, y0, t)

uco = X1[:,0]

# the current and the other capacitor voltage

i = 1/(R2)*(Uo - uco - Co/C*uco)

uc = Uo - Co/C*uco

# current starting value
Uo/R2

# discharge voltage

ud = C*Uo/(C+Co)

Uo/R2, ud

from bokeh.plotting import figure, output_notebook, show
from bokeh.layouts import column
from bokeh.palettes import RdYlGn4

output_notebook()

p = figure(plot_width=800, plot_height=400)

p.line(t, uco, color="firebrick", legend = "cap charging")
p.line(t, uc, legend = "cap discharging")

p.xaxis.axis_label = "time [s]"
p.xaxis.axis_label_text_font_size = "10pt"
p.yaxis.axis_label = "voltage [V]"
p.yaxis.axis_label_text_font_size = "10pt"

p2 = figure(plot_width=800, plot_height=400)

p2.line(t, i, color='#1a9641')

p2.xaxis.axis_label = "time [s]"
p2.xaxis.axis_label_text_font_size = "10pt"
p2.yaxis.axis_label = "current [A]"
p2.yaxis.axis_label_text_font_size = "10pt"

show(column(p, p2))


I am working on the file "Capstone Data Exploration.ipynb".
The first task is:
In order to make the data easy to read, we define the features and labels for the classification variable. We then import the dataset-- a sample of 10000 cases from the larger breast cancer data we previously wrangled. Once the data is read-in we can use Pandas describe function to get a general understanding of the data.
Can you write Python code for it?

FEATURES  = [
    "Birth Year",
    "Age at Diagnosis",
    "Race",
    "Origin",
    "laterality",
    "Radiation",
    "Histrec",
    "ER Status",
    "PR Status",
    "Behanal",
    "Stage",
    "Numprimes",
    "Survival Time",
    "Bucket"
]

LABEL_MAP = {
    0: "< 60 Months",
    1: "60 < months > 120",
    2: "> 120 months",
}

# Read the data into a DataFrame
df = pd.read_csv("clean1.csv", sep=',' , header=0, names=FEATURES)

# Convert class labels into text
for k,v in LABEL_MAP.items():
    df.ix[df.Bucket == k, 'Bucket'] = v

print(df.head(n=5))

df.describe()


I am working on the file "Capstone Data Exploration.ipynb".
The first task is:
Next, a scatter matrix of all our variables
Can you write Python code for it?

scatter_matrix(df, alpha=0.2, figsize=(12, 12), diagonal='kde')
plt.show()

plt.figure(figsize=(12,12))
parallel_coordinates(df, 'Bucket')
plt.show()


I am working on the file "Capstone Data Exploration.ipynb".
The first task is:
Now we can start using visualizations to explore the data!
First up, a histogram of survival time in months:
Can you write Python code for it?

fig = plt.figure()
ax = fig.add_subplot(111)
ax.hist(df['Survival Time'], bins = 10, range = (df['Survival Time'].min(),df['Survival Time'].max()))
plt.title('Survival Time Distribution')
plt.xlabel('Survival Time in months')
plt.ylabel('count')
plt.show()


I am working on the file "Capstone project 3.ipynb".
The first task is:
Add list of American cheese
Can you write Python code for it?

import requests
from pyquery import PyQuery

response = requests.get('https://en.wikipedia.org/wiki/List_of_American_cheeses')
jQuery = PyQuery(response.content)

#mw-content-text > ul:nth-child(9) > li:nth-child(1) > a
for i in jQuery("div.mw-content-ltr ul:nth-child(9) li a:first-child"):
    if i != None and i.text != None:
        list_of_dishes.append(i.text.lower())

labelFile = os.path.join(workingDir, 'american.label')

with open(labelFile, 'a') as out:
    for i in list_of_dishes:
        out.write('{}\t{}\n'.format(i.encode('utf-8'), '1'))

import csv

salientCSV = os.path.join(workingDir, 'salient2.csv')

with open(salientCSV, 'rb') as csvfile:
    salientReader = csv.reader(csvfile)

    ngrams = [(row[0].replace('_', ' '), float(row[1])) for row in salientReader]

import numpy as np

data = np.array([item[1] for item in ngrams])

print data

%matplotlib inline
import matplotlib.pyplot as plt

plt.plot(data, color='r')

plt.xlabel('ngram index')
plt.ylabel('score')

plt.title('score of ngrams')

plt.gcf().set_size_inches(23.5, 12.5)

plt.show()

import csv

salientCSV = os.path.join(workingDir, 'salient2.csv')
submissionFile = os.path.join(workingDir, 'submission2.txt')

dishes = []
with open(submissionFile, 'w') as out, open(salientCSV, 'rb') as csvfile:
    out.write('American\n')

    i = 0
    salientReader = csv.reader(csvfile)

    for row in salientReader:
        dish = row[0].replace('_', ' ').replace('the ', '').replace('a ', '')
        dishes.append(dish)
        out.write(dish)
        out.write('\n')

        i += 1
        if i >= 10000:
            print row
            break

import string

remove_punctuation_map = dict((ord(char), None) for char in string.punctuation)
wordsRDD = rewiewsRDD.map(lambda x: x.translate(remove_punctuation_map).lower()).map(lambda row: row.split(" "))

from pyspark.mllib.feature import Word2Vec

word2vec = Word2Vec()
model = word2vec.fit(wordsRDD)

words = ['hotdog', 'potato', 'benedict', 'pudding', 'cake', 'burger', 'sandwich',...


I am working on the file "Capstone project 3.ipynb".
The first task is:
Enrich the labels from external sources
Add list of hamburgers
Can you write Python code for it?

import requests
from pyquery import PyQuery

response = requests.get('https://en.wikipedia.org/wiki/List_of_hamburgers')
jQuery = PyQuery(response.content)

list_of_dishes = []
for i in jQuery("table.wikitable.sortable tr td:nth-child(1)"):
    if i.text == None:
        i = i.find('a')
    list_of_dishes.append(i.text)


I am working on the file "Capstone project 3.ipynb".
The first task is:
Now let's analyse what is the distrubution of phrases in the result file. To do that we're going to parse strings from the file and draw a simple line chart.
Can you write Python code for it?

import csv

salientCSV = os.path.join(workingDir, 'salient.csv')

with open(salientCSV, 'rb') as csvfile:
    salientReader = csv.reader(csvfile)

    ngrams = [(row[0].replace('_', ' '), float(row[1])) for row in salientReader]

import numpy as np

data = np.array([item[1] for item in ngrams])

print data

%matplotlib inline
import matplotlib.pyplot as plt

plt.plot(data, color='r')

plt.xlabel('ngram index')
plt.ylabel('score')

plt.title('score of ngrams')

plt.gcf().set_size_inches(23.5, 12.5)

plt.show()


I am working on the file "Capstone project 4 and 5.ipynb".
The first task is:
Combined popularity metric ##
I tried to combine two characteristic of each dish: sentiment score and number of reviews. Indeed, what we can recommend is something what make us satisfied, in our case we can say sentiment score plays this role. But we we are all different and we don't want to try something 'risky'. In our case the number of reviews show how confident we can be relying on reviews. Thus we need to penalty dishes with lower number of reviews, I decided to decrease it in proportion of max number of reviews, this leads that 'temperature' of scores comes down if dish has just a few reviews.
Can you write Python code for it?

import math

max_reviews = float(sorted_names[0][1])

def calculate_satisfaction(idx):
    factor = max_reviews / sorted_names[idx][1]
    penalty = 1.0 + math.log(factor)
    return (dish_names_polarity[i][1] / penalty) * 100.0

enhanced_polarity = [ (sorted_names[i][0], calculate_satisfaction(j))  for i in range(0, 80)]
sorted_enhanced_polarity = sorted(enhanced_polarity, key=operator.itemgetter(1), reverse=True)

print sorted_enhanced_polarity

color_points = [val for name, val in sorted_enhanced_polarity]
labels = [round(val, 2) for name, val in sorted_enhanced_polarity]

showBar(sorted_enhanced_polarity,
        'Combined satisfaction score for each dish',
        'Combined satisfaction score',
        'Dish name', labels = labels, labels_y = 0.5, color_points = color_points)


I am working on the file "Capstone project 4 and 5.ipynb".
The first task is:
I run Spark SQL search for all businesses from 'American (New)' category which have in their reviews a word 'sandwich'.
Can you write Python code for it?

like_argument = "%{}%".format(target_dish_name)

targetBusinessIds = (reviewsDF
                       .filter(reviewsDF['text'].like(like_argument))
                       .join(restaurantsDF, restaurantsDF['business_id'] == reviewsDF['business_id'])
                       .select(reviewsDF['business_id'])
                       .distinct()
                       .map(lambda x: x.business_id)
                       .collect()
                    )

print len(targetBusinessIds)


I am working on the file "Capstone project 4 and 5.ipynb".
The first task is:
It gave me 727 restaurants. After that I collected all reviews written for those restaurants to analyze.
Can you write Python code for it?

reviewsDF.printSchema()

targetRestaurantsDF = restaurantsDF.filter(restaurantsDF['business_id'].inSet(targetBusinessIds))

targetReviewsDF = (reviewsDF
                    .join(targetRestaurantsDF, restaurantsDF['business_id'] == reviewsDF['business_id'])
                    .select(restaurantsDF['business_id'], restaurantsDF['name'],\
                            reviewsDF['review_id'], reviewsDF['stars'])
                   )

targetReviewsDF.count()


I am working on the file "Capstone project 4 and 5.ipynb".
The first task is:
Task 5 Restaurant Recommendation
My idea for task 5 was to find the best place to try sandwiches. I define for that the target name.
Can you write Python code for it?


I am working on the file "Capstone project 4 and 5.ipynb".
The first task is:
Then I started from simple task, namely, to count how many reviews has each restaurant from the selected dataset. I sorted them by count of reviews and select only first 80.
Can you write Python code for it?

import pyspark.sql.functions as F

sorted_restaurants_with_stars = (targetReviewsDF.groupBy(restaurantsDF['business_id'], restaurantsDF['name'])
 .agg(F.count('review_id'), F.avg('stars'))
 .sort(col('COUNT(review_id)').desc())
 .map(lambda x: (x[0], x[1], x[2], x[3]))
 ).take(80)

sorted_restaurants_name = [(name, count) for business_id, name, count, stars in sorted_restaurants_with_stars]

showBar(sorted_restaurants_name,
        'Count of reviews per each restaurant',
        'Count of reviews',
        'Restaurant name', labels_y = 30)

average_stars = [stars for business_id, name, count, stars in sorted_restaurants_with_stars]

showBar(sorted_restaurants_name,
        'Count of reviews per each restaurant',
        'Count of reviews',
        'Restaurant name', labels_y = 30, color_points = average_stars,\
        middle_ticks = [2.75, 3.00, 3.25, 3.50, 3.75, 4.0, 4.25])


I am working on the file "Capstone project 6.ipynb".
The first task is:
2.   Preprocessing improvements
First of all I'll make simple checks a couple cases for chosen preprocessing steps.
Can you write Python code for it?

s = u'I\'ll be waiting for you! I don\'t mind. What\'s the hell? I\'m gonna home!!'

punctuation = """!"#$%&()*+,-./:;<=>?@[\]^_`{|}~"""

remove_punctuation_map = dict((ord(char), None) for char in punctuation)
s = s.translate(remove_punctuation_map).lower()

from nltk.tokenize.stanford import StanfordTokenizer

path_to_jar = '/Users/igorsokolov/stanford-postagger-2015-04-20/stanford-postagger-3.5.2.jar'
tokens = StanfordTokenizer(path_to_jar=path_to_jar).tokenize(s)

print tokens

from nltk.stem.porter import PorterStemmer

porterStemmer = PorterStemmer()
stems = [porterStemmer.stem(item) for item in tokens]

print stems


I am working on the file "Capstone project 6.ipynb".
The first task is:
3.   Attempts to apply other classifiers
Chi and naive bayes
Can you write Python code for it?

from sklearn.feature_selection import SelectKBest, chi2

select_chi2 = prerocessed_X_train.shape[1]
ch2 = SelectKBest(chi2, k=select_chi2)
prerocessed_X_train = ch2.fit_transform(prerocessed_X_train, y_train)
prerocessed_X_test = ch2.transform(prerocessed_X_test)

from sklearn.naive_bayes import BernoulliNB, MultinomialNB

clf = MultinomialNB(alpha=.01)
clf.fit(prerocessed_X_train, y_train)
bayes_pred = clf.predict(prerocessed_X_test)

predictedLabelsPath = os.path.join(workingDir, 'output6.txt')
with open(predictedLabelsPath, 'w') as f:
    f.write('sis\n')
    for line in bayes_pred:
        f.write(line)


I am working on the file "Capstone project 6.ipynb".
The first task is:
After exercises above we'r ready to implement subroutines for each step of pre-processing.
Can you write Python code for it?

# I could use string.punctionation constant but it contains symbol ' which is used widely in casual speak.
# So defined my own constant.
punctuation = """!"#$%&()*+,-./:;<=>?@[\]^_`{|}~"""

remove_punctuation_map = dict((ord(char), None) for char in punctuation)

def remove_punctuation(line):
    return line.translate(remove_punctuation_map).lower()

from nltk.tokenize.stanford import StanfordTokenizer

path_to_jar = '/Users/igorsokolov/stanford-postagger-2015-04-20/stanford-postagger-3.5.2.jar'
tokenizer = StanfordTokenizer(path_to_jar=path_to_jar, options={"americanize": True})

def tokenize(line):
    return tokenizer.tokenize(line)

from nltk.stem.porter import PorterStemmer

porterStemmer = PorterStemmer()

def stemming(tokens):
    return [porterStemmer.stem(item) for item in tokens]

import re
reductions_map = {'\'m': 'am', 'n\'t': 'not', '\'ll': 'will', '\'s': 'is', '\'ve': 'have', '\'d': 'would',
                 '\'re': 'are'}

def replace_reductions(line):
    return reduce(lambda x, y: x.replace(y, reductions_map[y]), reductions_map, line)

reviewsRDD = sc.textFile(reviewsPath, use_unicode=True)
labelsRDD = sc.textFile(labelsPath)

prerocessed_reviews_RDD = (reviewsRDD
                             .map(lambda line: line.lower())
                             .map(lambda line: line.replace(' ', ''))
                             .map(lambda line: remove_punctuation(line))
                             .map(lambda line: tokenize(line))
                             .map(lambda tokens: stemming(tokens))
                             .map(lambda tokens: " ".join(tokens))
                             .map(lambda line: replace_reductions(line))
                         )

prerocessed_reviews_RDD.take(1)

prerocessed_reviews = prerocessed_reviews_RDD.collect()

prerocessed_data_train = prerocessed_reviews[:N]
prerocessed_data_pred = prerocessed_reviews[N:]

print "Train data length: {}".format(len(prerocessed_data_train))
print "Predicted data length:...


I am working on the file "Capstone project 6.ipynb".
The first task is:
Passive agressive classifier
Can you write Python code for it?

from sklearn.linear_model import PassiveAggressiveClassifier

clf = PassiveAggressiveClassifier(n_iter=50)
clf.fit(prerocessed_X_train, y_train)

pred = clf.predict(prerocessed_X_test)

predictedLabelsPath = os.path.join(workingDir, 'output8.txt')
with open(predictedLabelsPath, 'w') as f:
    f.write('sis\n')
    for line in pred:
        f.write(line)


I am working on the file "Capstone+Narrative+analytics+and+experimentation.ipynb".
The first task is:
A closer inspection of the correlation between both variables show that there are different levels of relationship between both variables. North America is the continent with the strongest correlation between both variables followed by Europe and Asia. In all three cases, different energy saving policies were introduced between 2000 and 2014 at different stages and focusing on different aspects of household demand. It seems that Northern hemisphere countries have a stronger reliance on electricity to grow their economies and that electricity saving policies are not having the desired outcome or at least they are lagging in terms of the expected results.
Can you write Python code for it?

sns.lmplot(x="Standard Household Consumption (kWh)", y="Standard GDP Current Prices (USD)", col="Continent", hue="Continent", data=result,
           col_wrap=2, fit_reg= True, palette="muted", size=6,
           scatter_kws={"s": 50, "alpha": 1})


I am working on the file "Capstone+Narrative+analytics+and+experimentation.ipynb".
The first task is:
A list of countries per continent has been imported from a different source (https://gist.github.com/pamelafox/986163). The use of this list aims to group by continent the information provided by the UN at a country level. This has risen additional difficulties due to the use different names between sources for several countries, for example: Russian Federation vs. Russia, Netherlands vs. The Netherlands, etc. Moreover, some countries have been identified in the original data set that are not included in the original list. This have been added to the list for the completeness. The aim of this addition is to have all continents accurately represented. America has been split into North and South America to have a detailed view of the evolution of both regions independently and to avoid distortion. The final continents used are:

Africa
Oceania
North America
South America
Europe
Asia
Can you write Python code for it?

#Import list of countries per continent from external data set and clean the columns that will not be used.
countries = pd.read_json('https://raw.githubusercontent.com/borja876/Thinkful-DataScience-Borja/master/countries.txt')
countries =countries.drop (['capital','code','timezones'],1)

#Merge both data sets for have a complete working data set
result = result.merge(countries, left_on=["Country"], right_on=["name"], how='inner')
result = result.drop('name',1)
result = result.rename(columns={'continent': 'Continent'})


I am working on the file "Capstone+Narrative+analytics+and+experimentation.ipynb".
The first task is:
A t test has been conducted showing that the difference in means between both the standard electricity consumption and the standard GDP are truly because the populations are different and not due to variability. As both original variables are representing different populations, the standardised ones follow the same principle (as it can deducted from the obtained p values).
Can you write Python code for it?

print(ttest_ind(result['Household Consumption (GWh)'], result['GDP Current Prices (Million USD)'], equal_var=False))
print(ttest_ind(result['Standard Household Consumption (kWh)'], result['Standard GDP Current Prices (USD)'], equal_var=False))

#Show the prices with a stripplot
plt.figure(figsize=(20, 5))

plt.subplot(1, 2, 1)
sns.stripplot(x="Continent", y="Standard Household Consumption (kWh)", data=result, jitter=True)
plt.title('Standard Household Consumption (kWh)')

plt.subplot(1, 2, 2)
sns.stripplot(x="Continent", y="Standard GDP Current Prices (USD)", data=result, jitter=True)
plt.title('Standard GDP Current Prices (USD)')