Thiago Zavaschi R2 www.zavaschi.com

9Jan/150

AzureML – Criando meu Primeiro Modelo – Parte 1

Olá pessoal,

No meu último post comecei a escrever sobre aprendizagem de máquina na nuvem através do Azure Machine Learning. Hoje iniciaremos uma série sobre como criar nosso primeiro modelo de aprendizagem de máquina.

Primeiramente devemos conhecer alguns conceitos importantes:

  • Características (features): são os elementos que definem um padrão (uma entrada) a ser classificado. São informações que caracterizam o elemento. Estes valores podem ser valores discretos (estado civil, sexo, idade, possui filhos) ou valores contínios (números infinitos / “não contáveis”). Os valores contínuos podem ser extraídos de análises complexas sobre imagens, por exemplo, onde a característica fica sendo representada por um número. Um vetor de características identifica um elemento. Em geral se espera que as características sejam invariantes a rotação e escala.
  • Classe (label): é o que define o objeto. A classe é o valor que desejamos alcançar nos problemas de classificação. Por exemplo, caso o modelo seja para identificar a predisposição para desenvolvimento de câncer de mama, as classes nesse caso poderiam ser: Presença ou não presença de câncer.

Os problemas que possuem duas classes são, em geral, os problemas mais simples, também conhecidos como problemas binários. Muitos classificadores (como o SVM – veremos em post futuro) trabalham com problemas de duas classes.

Problemas multi-classe existem e também são frequentes. Imagine um modelo que identifica a expressão facial que a pessoa está realizando. Este problema facilmente leva à necessidade de se trabalhar com múltiplas classes.

Outros conceitos importantes para a validação do modelo são Acurácia, Recall, Precisão, F1-Score, AUC. Veremos isso quando formos comparar modelos, mas já pode consultar no blog do Nogare esta explicação.

13Oct/140

Azure Summit Brasil 2014 – Azure Machine Learning

Olá pessoal,

Sábado passado (11/10) apresentei sobre Azure Machine Learning no Azure Summit Brasil realizado na sede da Microsoft Brasil em São Paulo.

A discussão foi muito interessente, onde foi possível mostrar parte dos recursos disponíveis nesta primeira versão (preview) do AzureML (antigo projeto Passau).

Pretendo cobrir aqui no blog esse assunto e em breve devemos ter mais posts relacionados a esta tecnologia.

No portal da ferramenta existem vídeos-tutoriais e também a documentação: http://studio.azureml.net

O material utilizado na apresentação está aqui:

AzureSummit_thiagoz

Obrigado!

Zava

5Jan/107

Prevendo o crescimento da suas databases com o SQL Server Data Mining Add-ins for Microsoft Office 2007 – Parte I

Olá pessoal,

O artigo de hoje é a base de um dos itens/indicadores utilizados nas suas análises de health check dos servidores SQL Server: Verificar o crescimento dos seus arquivos de base de dados e log.

Antes de mais nada vamos revisar um ponto importante quanto ao crescimento das databases:

É muito comum encontrar em servidores configurações como: crescimento proporcional 10% para a base e para o arquivo de log e com irrestrito por exemplo. A imagem a seguir mostra onde visualizar estas informações.

img1

Em que isso impacta? Valores pequenos de taxas de crescimento para bases que crescem muito é extremamente prejudicial, pois teremos altas taxas (overhead) de I/O para o crescimento dos arquivos. Por outro lado, valores muito grandes podem gerar um uso descontrolado dos seus discos.

Em um mundo/cenário ideal os crescimentos das databases são monitorados e o aumento físico dos mesmos são planejados e executados de maneira manual. Claro que pela comodidade, é difícil DBAs optarem por esta abordagem.

Mas e como monitorar, ou melhor, prever o crescimento, já que muitos DBAs deixam essas configurações automáticas? Uma das maneiras que eu acho muito elegante é através da utilização do Add-in para o Office 2007, mais especificamente a opção Forecast.

O conteúdo deste post pode ser adaptado para fazer outras previsões através do Office!

O que preciso para começar? 

“Então Thiago, o que eu preciso para iniciar?”

Será necessário basicamente:

Microsoft Office Excel 2007; (a princípio não funciona no Office 2010 beta, mas estou verificando se há algum meio).

E um dos pares abaixo:

SQL Server Analysis Service 2008;
Data Mining Add-Ins for Office 2007 (SQL 2008);
http://www.microsoft.com/downloads/details.aspx?familyid=AF070F2C-46F4-47B6-B7BF-48979B999AEB&displaylang=en

OU

SQL Server Analysis Service 2005;
Data Mining Add-Ins for Office 2007 (SQL 2005);
http://www.microsoft.com/downloads/details.aspx?familyid=7C76E8DF-8674-4C3B-A99B-55B17F3C4C51&displaylang=en

Mãos a obra!

Coletando os dados de tamanho das databases

O primeiro passo é definir um mecanismo para a coleta dos dados.

Para isso vamos criar uma tabela que armazenará os dados relativos ao tamanho dos arquivos. Essa tabela poderá ter variações para outros fins, mas manterei ela com um certo grau de simplicidade.

CREATE TABLE TamanhoBaseHistorico
(
    id INT PRIMARY KEY IDENTITY,
    nome varchar(128) NOT NULL, -- nome da base
    nome_fisico VARCHAR(2000) NOT NULL, -- nome físico do arquivo, com diretório
    tamanho INT NOT NULL, -- tamanho do arquivo em Kb
    dblog BIT NOT NULL, -- se o arquivo é de log
    data DATETIME NOT NULL -- data da medição
)
GO

De tempos em tempos algum mecanismo deverá coletar os dados necessários e inserí-los nesta tabela.

Entre outras formas (como por exemplo o powershell), podemos fazer uso da system stored procedure chamada sp_msforeachdb e associar a execução da mesma a um job do banco de dados.

Essa stored procedure executa um comando para cada database, substituindo a “tag” [?] pelo nome da base. As informações virão da system view chamada sys.database_files.

O comando que será agendado como um job no SQL Server Agent será, para o nosso caso, o seguinte:

EXECUTE sp_msforeachdb 
        'INSERT INTO TamanhoBaseHistorico 
        SELECT name, physical_name, size, type, GETDATE() 
        FROM [?].sys.database_files'

 

Não vou entrar nos méritos da criação de jobs no Agent, mas vamos assumir que estes dados sejam carregados todos os meses, uma vez por mês.

Na próxima parte veremos o processo de instalação do add-in e a utilização do mesmo!

Abraços,

Thiago Zavaschi