Pular para o conteúdo principal

Suporte Vector Machine para DataScience Juniors rsrsrsr



Uma (SVM) é um algoritmo de aprendizado de máquina supervisionado que pode ser empregado para propósitos de classificação e regressão. SVMs são mais comumente usados em problemas de classificação e, como tal, é nisso que vamos nos concentrar neste post. Os SVMs baseiam-se na ideia de encontrar um hiperplano que melhor divida um conjunto de dados em duas classes, como mostra a imagem abaixo.
  •  Os Vectores Suporte são os pontos de dados mais próximos do hiperplano, os pontos de um conjunto de dados que, se removidos, alterariam a posição do hiperplano divisor. Por causa disso, eles podem ser considerados os elementos críticos de um conjunto de dados. 

  O que é um hiperplano?
  •   Como um exemplo simples, para uma tarefa de classificação com apenas dois recursos (como a imagem acima), você pode pensar em um hiperplano como uma linha que separa e classifica linearmente um conjunto de dados.

  Intuitivamente, quanto mais longe do hiperplano nossos pontos de dados estiverem, mais confiantes estaremos de que foram classificados corretamente. Portanto, queremos que nossos pontos de dados estejam o mais longe possível do hiperplano, enquanto ainda estivermos do lado correto dele.
  Então, quando novos dados de teste são adicionados, qualquer lado do hiperplano que ele for decidirá a classe que atribuímos a ele.
  Como encontramos o hiperplano certo?Ou, em outras palavras, como separar melhor as duas classes nos dados?
  •   A distância entre o hiperplano e o ponto de dados mais próximo de qualquer conjunto é conhecida como margem. O objetivo é escolher um hiperplano com a maior margem possível entre o hiperplano e qualquer ponto dentro do conjunto de treinamento, dando uma chance maior de novos dados serem classificados corretamente.





Mas o que acontece quando não há hiperplano claro?
  •  É aqui que pode ficar complicado. Os dados raramente são tão limpos quanto o nosso exemplo simples acima. Um conjunto de dados muitas vezes parece mais com as bolas confusas abaixo, que representam um conjunto de dados linearmente não separável.
Para classificar um conjunto de dados como o acima, é necessário se afastar de uma visualização em 2D dos dados para uma visualização em 3D. Explicar isso é mais fácil com outro exemplo simplificado. Imagine que nossos dois conjuntos de bolas coloridas acima estão sentados em um lençol e este lençol é levantado de repente, lançando as bolas no ar. Enquanto as bolas estão no ar, você usa a folha para separá-las. Este "levantamento" das bolas representa o mapeamento dos dados em uma dimensão maior. Isso é conhecido como kernelling. Você pode ler mais sobre Kerneling










Porque agora estamos em três dimensões, nosso hiperplano não pode mais ser uma linha. Agora deve ser um plano, como mostrado no exemplo acima. A ideia é que os dados continuem sendo mapeados em dimensões cada vez maiores até que um hiperplano possa ser formado para segregá-lo.

Comentários

Postagens mais visitadas deste blog

Introdução ao Intel Edison: First Hello Word in Intel Edison

Introdução ao Intel Edison Olá Humanos hoje descidi que iria fazer um post sobre Intel Edison é mostrar um blink/HelloWord usando essa plataforma incrivel ^_^, sabe ? antes de codarmos em si, vamos ver 2 pontos simples, Software e Hardware. Software O.S: primeiro ! ele não usa um OS, ele usa uma build para construir OS, um projeto chamado Yoct, oque ser build ? Pense em um pacote para construir um sistema é pronto ^_^, simples porem tem uma documentação e um pacote completo no link https://www.yoctoproject.org/ Bibliotecas: Inicialmente trabalhamos com a libmraa, fornece uma PWM, GPIO, ADC, e outras interfaces para acesso mais baixo a componentes complexos como sensores e coisas legais. OBS: usamos API python para trabalhar com ela Hardware  Essa e intel Brekout o Edison é apenas o ship pegueno no canto esquerdo da imagem, uma arquitetura baseada no arduino porem com processador e uma microproscessador, bom basicamente é isso, porem o que chama atenção é que ele e um co...

Redirecionamento de Porta usando ngrok (Port Forward with ngrok) SSH

Olá Humanos, estou no pensionato e aqui não tenho acesso ao roteador para fazer um redirencionamento de porta digno affs ¬__¬, sim pensei em Hackear rsrsrs, porem minha preguiça minha preguiça não deixa hauhauha, então encontrei uma ferramenta bem legal chamada ngrok que faz com que eu possa acessar remotamente meu servidor local para brincar com IoT. Instalação e ngrok  link: https://ngrok.com/ Para se cadastrar é bem simples basta logar com conta sua conta do git ou google depois faça download e na https://dashboard.ngrok.com/auth na aba auth pegue seu authtoken e valide no terminal # unzip ngrok-stable-linux-amd64.zip # ./ngrok authtoken <YOUR AUTHTOKEN> Instalando SSH no seu computador  Bom se você usa Ubuntu basta rodar  comando  # apt-get install openssh-server Para testar se o serviço digite  # service ssh status Iniciando SSH no Ngrok Rode o ngrok em protocolo tcp na porta 22  # ./ngrok tcp 22 ...

Usando IDE arduino para programar nodemcu(esp-12)

Olá primeiramente vamos começar esse tutorial com a IDE do arduino na versão mais atual minha versão é 1.6.8, primeiramente vamos abrir o IDE arduino Depois vamos em arquivo e clicamos na aba preferencias é em "Urls adicionais de gerenciadores de placas colamos o seguinte Link( http://arduino.esp8266.com/stable/package_esp8266com_index.json  ) depois clique em OK é espera fazer update.  Depois quando a aba se fechar, vá no menu Ferramentas >>> Placas >>> Gerenciador de Placas rola a aba para o final e clique em Instalar ! Quando estiver instalado é so fechar ! na Aba Ferramentas >>> Placas >>> Selecionar sua placa nodemcu ou generic esp8266 ! Simples neh ! Referencia-a: http://pedrominatel.com.br/arduino/como-utilizar-o-esp8266-com-a-ide-arduino-instalando-o-modulo/