Partilhar via


Use Tidyverse

Tidyverse é uma coleção de pacotes R que os cientistas de dados comumente usam em análises de dados diárias. Inclui pacotes para importação de dados (readr), visualização de dados (ggplot2), manipulação de dados (dplyr, tidyr), programação funcional (purrr), e construção de modelos (tidymodels) etc. Os pacotes são projetados para trabalhar juntos perfeitamente tidyverse e seguir um conjunto consistente de princípios de design.

O Microsoft Fabric distribui a versão estável mais recente do com cada versão de tempo de tidyverse execução. Importe e comece a usar seus pacotes R familiares.

Pré-requisitos

  • Obtenha uma assinatura do Microsoft Fabric. Ou inscreva-se para uma avaliação gratuita do Microsoft Fabric.

  • Entre no Microsoft Fabric.

  • Use o seletor de experiência no lado esquerdo da sua página inicial para alternar para a experiência Synapse Data Science.

    Captura de tela do menu do seletor de experiência, mostrando onde selecionar Ciência de Dados.

  • Abra ou crie um bloco de notas. Para saber como, consulte Como usar blocos de anotações do Microsoft Fabric.

  • Defina a opção de idioma como SparkR (R) para alterar o idioma principal.

  • Ligue o seu bloco de notas a uma casa no lago. No lado esquerdo, selecione Adicionar para adicionar uma casa de lago existente ou para criar uma casa de lago.

Carregar tidyverse

# load tidyverse
library(tidyverse)

Importação de dados

readr é um pacote R que fornece ferramentas para ler arquivos de dados retangulares, como CSV, TSV e arquivos de largura fixa. readr fornece uma maneira rápida e amigável de ler arquivos de dados retangulares, como o fornecimento de funções read_csv() e read_tsv() para ler arquivos CSV e TSV, respectivamente.

Vamos primeiro criar um data.frame R, escrevê-lo no lakehouse usando readr::write_csv() e lê-lo de volta com readr::read_csv().

Nota

Para acessar os arquivos do Lakehouse usando readro , você precisa usar o caminho da API de arquivo. No Lakehouse explorer, clique com o botão direito do mouse no arquivo ou pasta que você deseja acessar e copie seu caminho da API de arquivo do menu contextual.

# create an R data frame
set.seed(1)
stocks <- data.frame(
   time = as.Date('2009-01-01') + 0:9,
   X = rnorm(10, 20, 1),
   Y = rnorm(10, 20, 2),
   Z = rnorm(10, 20, 4)
 )
stocks

Em seguida, vamos gravar os dados no lakehouse usando o caminho da API de arquivo.

# write data to lakehouse using the File API path
temp_csv_api <- "/lakehouse/default/Files/stocks.csv"
readr::write_csv(stocks,temp_csv_api)

Leia os dados da lakehouse.

# read data from lakehouse using the File API path
stocks_readr <- readr::read_csv(temp_csv_api)

# show the content of the R date.frame
head(stocks_readr)

Arrumação de dados

tidyr é um pacote R que fornece ferramentas para trabalhar com dados confusos. As principais funções são tidyr projetadas para ajudá-lo a remodelar os dados em um formato organizado. Os dados arrumados têm uma estrutura específica onde cada variável é uma coluna e cada observação é uma linha, o que facilita o trabalho com dados em R e outras ferramentas.

Por exemplo, a gather() função in tidyr pode ser usada para converter dados amplos em dados longos. Eis um exemplo:

# convert the stock data into longer data
library(tidyr)
stocksL <- gather(data = stocks, key = stock, value = price, X, Y, Z)
stocksL

Programação funcional

purrr é um pacote R que melhora o kit de ferramentas de programação funcional do R, fornecendo um conjunto completo e consistente de ferramentas para trabalhar com funções e vetores. O melhor lugar para começar purrr é a família de funções que permitem substituir muitos loops por código que é mais sucinto e mais fácil de map() ler. Aqui está um exemplo de uso map() para aplicar uma função a cada elemento de uma lista:

# double the stock values using purrr
library(purrr)
stocks_double = map(stocks %>% select_if(is.numeric), ~.x*2)
stocks_double

Manipulação de dados

dplyr é um pacote R que fornece um conjunto consistente de verbos que ajudam a resolver os problemas mais comuns de manipulação de dados, como selecionar variáveis com base nos nomes, selecionar casos com base nos valores, reduzir vários valores a um único resumo e alterar a ordem das linhas, etc. Eis alguns exemplos:

#  pick variables based on their names using select() 
stocks_value <- stocks %>% select(X:Z)
stocks_value
# pick cases based on their values using filter()
filter(stocks_value, X >20)
# add new variables that are functions of existing variables using mutate()
library(lubridate)

stocks_wday <- stocks %>% 
    select(time:Z) %>%
    mutate(
        weekday = wday(time)
    )

stocks_wday
# change the ordering of the rows using arrange()
arrange(stocks_wday, weekday)

# reduce multiple values down to a single summary using summarise()
stocks_wday %>% 
    group_by(weekday) %>%
    summarize(meanX = mean(X), n= n())

Visualização de dados

ggplot2 é um pacote R para criar gráficos declarativamente, com base em A Gramática dos Gráficos. Você fornece os dados, diz ggplot2 como mapear variáveis para estética, quais primitivos gráficos usar e cuida dos detalhes. Seguem-se alguns exemplos:

# draw a chart with points and lines all in one

ggplot(stocksL, aes(x=time, y=price, colour = stock)) + 
  geom_point()+
  geom_line()

Gráfico da linha do gráfico.

# draw a boxplot

ggplot(stocksL, aes(x=time, y=price, colour = stock)) + 
  geom_boxplot()

Gráfico da caixa de plotagem.

Construção de modelos

A tidymodels estrutura é uma coleção de pacotes para modelagem e aprendizado de máquina usando tidyverse princípios. Ele abrange uma lista de pacotes principais para uma ampla variedade de tarefas de construção de modelo, como rsample para divisão de amostras de conjunto de dados de trem/teste, parsnip para especificação de modelo, recipes para pré-processamento de dados, workflows para fluxos de trabalho de modelagem, tune para ajuste de hiperparâmetros, yardstick para avaliação de modelo, broom para tiding de saídas de modelo e dials para gerenciar parâmetros de ajuste. Você pode saber mais sobre os pacotes visitando o site da tidymodels. Aqui está um exemplo de construção de um modelo de regressão linear para prever as milhas por galão (mpg) de um carro com base em seu peso (wt):

# look at the relationship between the miles per gallon (mpg) of a car and its weight (wt)
ggplot(mtcars, aes(wt,mpg))+
geom_point()

Gráfico de mpg e wt.

A partir do gráfico de dispersão, a relação parece aproximadamente linear e a variância parece constante. Vamos tentar modelar isso usando regressão linear.

library(tidymodels)

# split test and training dataset
set.seed(123)
split <- initial_split(mtcars, prop = 0.7, strata = "cyl")
train <- training(split)
test <- testing(split)


# config the linear regression model
lm_spec <- linear_reg() %>%
  set_engine("lm") %>%
  set_mode("regression")

# build the model
lm_fit <- lm_spec %>%
  fit(mpg ~ wt, data = train)

tidy(lm_fit)

Aplique o modelo de regressão linear para prever no conjunto de dados de teste.

# using the lm model to predict on test dataset
predictions <- predict(lm_fit, test)
predictions

Vamos dar uma olhada no resultado do modelo. Podemos desenhar o modelo como um gráfico de linhas e os dados de verdade do terreno de teste como pontos no mesmo gráfico. O modelo parece bom.

# draw the model as a line chart and the test data groundtruth as points 
lm_aug <- augment(lm_fit, test) 
ggplot(lm_aug, aes(x = wt, y = mpg)) +
  geom_point(size=2,color="grey70") +
  geom_abline(intercept = lm_fit$fit$coefficients[1], slope = lm_fit$fit$coefficients[2], color = "blue")

Gráfico do resultado do modelo.