Data Science do zero: Primeiras regras com o Python


def data_scientists_who_like(target_interest): return



Baixar 5.26 Mb.
Pdf preview
Página13/75
Encontro24.07.2022
Tamanho5.26 Mb.
#24344
1   ...   9   10   11   12   13   14   15   16   ...   75
Data Science do zero - Primeiras regras
def data_scientists_who_like(target_interest):
return [user_id
for user_id, user_interest in interests
if user_interest == target_interest]
Funciona, mas a lista inteira de interesses deve ser examinada para cada busca.
Se tivermos muitos usuários e interesses (ou se quisermos fazer muitas buscas),
seria melhor construir um índice de interesses para usuários:
from collections import defaultdict
# as chaves são interesses, os valores são listas de user_ids com interests
user_ids_by_interest = defaultdict(list)
for user_id, interest in interests:
user_ids_by_interest[interest].append(user_id)





E outro de usuários para interesses:
# as chaves são user_ids, os valores são as listas de interests para aquele user_id
interests_by_user_id = defaultdict(list)
for user_id, interest in interests:
interests_by_user_id[user_id].append(interest)
Agora fica fácil descobrir quem possui os maiores interesses em comum com um
certo usuário:
Itera sobre os interesses do usuário.
Para cada interesse, itera sobre os outros usuários com aquele interesse.
Mantém a contagem de quantas vezes vemos cada outro usuário.
def most_common_interests_with(user):
return Counter(interested_user_id
for interest in interests_by_user_id[user["id"]]
for interested_user_id in user_ids_by_interest[interest]
if interested_user_id != user["id"])
Poderíamos usar esse exemplo para construir um recurso mais rico de
“Cientistas de Dados Que Você Deveria Conhecer” baseado em uma combinação
de amigos e interesses em comum. Exploraremos esses tipos de aplicações no
Capítulo 22.
Salários e Experiência
Na hora em que você está saindo para o almoço, o vice-presidente de Relações
Públicas pergunta se você pode fornecer alguns fatos curiosos sobre quanto os
cientistas de dados recebem. Dados de salário é, de fato, um tópico sensível, mas
ele consegue fornecer um conjunto de dados anônimos contendo o
salary
(salário)
de cada usuário (em dólares) e
tenure
(experiência) como um cientista de dados
(em anos):
salaries_and_tenures = [(83000, 8.7), (88000, 8.1),
(48000, 0.7), (76000, 6),
(69000, 6.5), (76000, 7.5),
(60000, 2.5), (83000, 10),
(48000, 1.9), (63000, 4.2)]
Naturalmente, o primeiro passo é traçar os dados (veremos como fazê-lo no
Capítulo 3). Os resultados se encontram na Figura 1-3.


Figura 1-3. Salário por anos de experiência
Fica bem claro que os que possuem mais experiência tendem a receber mais.
Como você pode transformar isso em um fato curioso? A primeira ideia é
analisar a média salarial para cada ano:
# as chaves são os anos, os valores são as listas dos salários para cada ano
salary_by_tenure = defaultdict(list)

Baixar 5.26 Mb.

Compartilhe com seus amigos:
1   ...   9   10   11   12   13   14   15   16   ...   75




©historiapt.info 2022
enviar mensagem

    Página principal