Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvidas

1 - Na fórmula Tempo = passageiros.iloc[:,:-1].values poderia-se ter utilizado Tempo = passageiros['tempo'].values ?

2 - O que é o gráfico que o professor insere durante o primeiro minuto? É um exemplo? Me parece que ele quis dizer que no arquivo passageiros.csv existem dados faltantes durante o período. Se for isso, poderia ter demonstrado pelo 'isna'.

3 - Não entendi o que são dados de treino e teste. Alguém pode me orientar?

4 - Existe alguma documentação do sklearn para compartilhar?

5 - Poderia me explicar melhor que ajuste é feito no comando .fit?

6 - Qual a utilidade do comando .flatten ?

Recomendação: Vi que houveram vários questionamentos sobre isso e acho que seria interessante inserirem na formação de Python para Data Science alguns cursos de estatística? Dependendo da resposta que eu tiver para as perguntas acima e/ou do conteúdo dos próximos vídeos, devo parar com esse curso e fazer esses de estatística para depois retornar aqui. Porém faço essa sugestão para a formação não gerar essa frustração na galera.

Abraços,

3 respostas
solução!

Olá Francisco,

Realmente eu fui muito direto em alguns pontos porque na época eu esperava que as pessoas chegassem sabendo alguns tópicos. Como isso não está acontecendo com a formação atual este curso está sendo reformulado. Isso vai demorar um pouco e acho que ao invés de um curso de estatística o curso que pode te ajudar a entender melhor os tópicos de machine learning é esse aqui: https://cursos.alura.com.br/course/machine-learning-introducao-a-classificacao-com-sklearn

Respondendo as suas perguntas:

1 - Na fórmula Tempo = passageiros.iloc[:,:-1].values poderia-se ter utilizado Tempo = passageiros['tempo'].values ?

Não. Eu fiz a divisão desta maneira por causa da forma como o sklearn espera receber os dados. Nos dois casos temos arrays do numpy, mas no seu exemplo o array será 1D. Se eu fizer Tempo.shape a saída será (144,). Na forma que utilizei o array será 2D. Se eu fizer Tempo.shape a saída será (144, 1). Você também pode imprimir o tempo nas duas versões e reparar nas diferenças.

2 - O que é o gráfico que o professor insere durante o primeiro minuto? É um exemplo? Me parece que ele quis dizer que no arquivo passageiros.csv existem dados faltantes durante o período. Se for isso, poderia ter demonstrado pelo 'isna'. 3 - Não entendi o que são dados de treino e teste. Alguém pode me orientar?

Juntei as duas perguntas porque elas estão relacionadas. Em machine learning nós dividimos a base de dados em treino e teste. Nós fazemos isso porque nunca vamos conseguir coletar todos os dados. Imagine que estamos coletando os dados de clientes de um banco e sempre vão surgir clientes novos. Então "treinamos" o algoritmo com uma grande quantidade de dados e depois verificamos em uma base de dados de teste se o algoritmo também funciona. É importante notar que o algoritmo usou apenas os dados de treino para aprender sobre o problema.

No exemplo dos dados dos passageiros que estou mostrando eu sabia que não faltavam dados, então não havia porque usar o 'isna'. Mas a falta de alguns pontos na base de dados é uma possibilidade e a regressão também serve como forma de estimar esses pontos faltantes depois que realizamos o treino. Por isso, na divisão em treino e teste tiramos alguns pontos intermediários para teste.

4 - Existe alguma documentação do sklearn para compartilhar? Sim. *

Neste site (em inglês) você tem toda a documentação da biblioteca: https://scikit-learn.org/stable/

5 - Poderia me explicar melhor que ajuste é feito no comando .fit?

No caso da reta comando fit tenta encontrar o a e b da reta y=ax+b que produzem a reta mais próxima possível dos dados de treino. Não era objetivo desse curso cobrir como isso é feito em detalhes. O objetivo era mostrar que a regressão existe e pode ser aplicada neste tipo de exemplo. Se quiser saber como o algoritmo funciona este curso tenta cobrir o tópico: https://cursos.alura.com.br/course/data-science-regressao-linear

6 - Qual a utilidade do comando .flatten ?

Da mesma forma que tinha que passar um array 2d em alguns casos tenho que passar um array 1d. O comando flatten serve para colapsar um array para o caso 1d. Por exemplo, se tiver uma matriz consigo transformá-la em um vetor.

Espero ter respondido as suas dúvidas até o momento. Boa semana.

Obrigado Allan!

Eu só não entendi a resposta 6, pois não me recordo de ter aprendido sobre o conceito de array 1D e 2D. O que é?

Abs,

A diferença é que no array 1D eu vou ter uma sequência de valores. Ex:

[10, 20, 30 ,40, 50]

E no 2D vamos ter algo como uma matriz:

[10, 20, 30 ,40, 50]

[10, 20, 30 ,40, 50]

[10, 20, 30 ,40, 50]

[10, 20, 30 ,40, 50]

O problema é que no python é possível ter um array 1D dentro de outro array. [[10, 20, 30 ,40, 50] ] Nesse caso ele é considerado um array 2D. Se fizer o .shape de um array 1D que contém 5 posições vai obter como resposta algo como (5,) e para um array 2D (5,1) . Algumas bibliotecas esperam arrays 1D e outras 2D. Eventualmente você vai se deparar com o erro: the library was expecting an 2d array but it get a 1d as answer. Ou algo do tipo.

Até :)