O que fazer ao testar dados tem menos recursos do que dados de treinamento?

10

Digamos que estamos prevendo as vendas de uma loja e meus dados de treinamento têm dois conjuntos de recursos:

  • Um sobre as vendas da loja com as datas (o campo "Loja" não é exclusivo)
  • Um sobre os tipos de loja (o campo "Loja" é exclusivo aqui)

Portanto, a matriz seria algo como isto:

+-------+-----------+------------+---------+-----------+------+-------+--------------+
| Store | DayOfWeek |    Date    |  Sales  | Customers | Open | Promo | StateHoliday |
+-------+-----------+------------+---------+-----------+------+-------+--------------+
|   1   |     5     | 2015-07-31 |  5263.0 |   555.0   |  1   |   1   |      0       |
|   2   |     5     | 2015-07-31 |  6064.0 |   625.0   |  1   |   1   |      0       |
|   3   |     5     | 2015-07-31 |  8314.0 |   821.0   |  1   |   1   |      0       |
|   4   |     5     | 2015-07-31 | 13995.0 |   1498.0  |  1   |   1   |      0       |
|   5   |     5     | 2015-07-31 |  4822.0 |   559.0   |  1   |   1   |      0       |
|   6   |     5     | 2015-07-31 |  5651.0 |   589.0   |  1   |   1   |      0       |
|   7   |     5     | 2015-07-31 | 15344.0 |   1414.0  |  1   |   1   |      0       |
|   8   |     5     | 2015-07-31 |  8492.0 |   833.0   |  1   |   1   |      0       |
|   9   |     5     | 2015-07-31 |  8565.0 |   687.0   |  1   |   1   |      0       |
|   10  |     5     | 2015-07-31 |  7185.0 |   681.0   |  1   |   1   |      0       |
+-------+-----------+------------+---------+-----------+------+-------+--------------+
[986159 rows x 4 columns]

e

+-------+-----------+------------+---------------------+
| Store | StoreType | Assortment | CompetitionDistance |
+-------+-----------+------------+---------------------+
|   1   |     c     |     a      |         1270        |
|   2   |     a     |     a      |         570         |
|   3   |     a     |     a      |        14130        |
|   4   |     c     |     c      |         620         |
|   5   |     a     |     a      |        29910        |
|   6   |     a     |     a      |         310         |
|   7   |     a     |     c      |        24000        |
|   8   |     a     |     a      |         7520        |
|   9   |     a     |     c      |         2030        |
|   10  |     a     |     a      |         3160        |
+-------+-----------+------------+---------------------+
[1115 rows x 4 columns]

A segunda matriz descreve o tipo de loja, os grupos de itens que cada um deles vende e a distância da loja concorrente mais próxima.

Mas nos meus dados de teste, só tenho informações na primeira matriz sem os campos Customerse Sales. O objetivo é prever o campo de vendas, dado o

  • Loja
  • Dia da semana
  • Encontro
  • Aberto (se a loja está aberta)
  • Promoção (se a loja está tendo uma promoção)
  • StateHoliday (se é um feriado do estado)

Posso treinar facilmente um classificador com base nos campos com marcadores acima para prever, Salesmas como posso usar a segunda matriz nos meus dados de treinamento que não iria obter nos dados de teste?

É lógico supor que a segunda matriz sobre os tipos de loja é estática e posso associá-la facilmente aos dados de teste?

O que acontece se houver falhas no meu conjunto de recursos de dados de teste, digamos que para algumas linhas nos dados de teste, eu não possua os valores "Promo".

alvas
fonte
Você sabe que pode fazer isso no fórum do Kaggle, e ele está respondido : kaggle.com/c/rossmann-store-sales/forums/t/17137/… e kaggle.com/c/rossmann-store-sales/forums / t / 16730 /…
Neil Slater
Oooo, perdoe minha nobreza. Primeira vez kaggle sem ninguém segurando minhas mãos =)
alvas
11
Sem problemas. Os Customersdados são muito específicos para a competição. Se você não tiver certeza de como lidar com os valores ausentes em geral para ML (como Promovalores vazios ), pode valer a pena alterar essa pergunta para tratar apenas desse problema. Já existem algumas respostas sobre isso neste site, por exemplo: datascience.stackexchange.com/questions/8322/…
Neil Slater

Respostas:

2

Eu acho que pode haver um problema na maneira como você está declarando o problema. Você diz que os dados de teste não têm dois campos, mas isso não pode estar correto.

Você precisa pegar todos os seus dados e dividi-los em 2 grupos, o conjunto de treinamento e o conjunto de teste. Em uma proporção de 80% -20% ou 70% -30%. Em seguida, você treina seu algoritmo com os dados no conjunto de treinamento e testa a precisão do modelo com os dados no conjunto de testes.

A precisão obtida é a probabilidade de o seu modelo estar correto. Ou, dito de outra maneira, da próxima vez que você usar seu modelo para prever uma venda, a precisão é a probabilidade de sua previsão ser real

hoaphumanoid
fonte
Eu acho que você está ficando atolado pelo uso pelo OP do termo "dados de teste" e perdendo completamente a essência da questão ...
Patrick Coulombe 30/03