Andrew Ng aprendizagem de máquina (XI) - Projeto de Sistemas

Primeiro, a construção do spam classificador
dar um exemplo de classificação de spam: Se você quer construir um classificador de spam, suponha que nós temos algum do conjunto de treinamento e marcou.

anotações incluindo spam expressa como y = 1 e não-spam expressa como y = 0.

Nosso método de aprendizado supervisionado como construir um classificador de distinguir entre spam e não-spam e-mail?

Para aplicar aprendizagem supervisionada, é preciso primeiro determinar como recurso de e-mail, a estrutura vetor x dado conjunto de treinamento de recursos e etiqueta x y, podemos treinar um determinado classificador, como o uso de métodos de regressão logística.

Há um número de recursos mensagens processo de seleção. Por exemplo, podemos chegar a uma série de palavras que podem ser usados ​​para distinguir spam ou não spam, por exemplo, se há mensagens que contenham a palavra "negócio (comércio)" "buy (compra)" "desconto (desconto)" Por isso, é mais provável uma mensagem de spam, se uma mensagem contém o meu nome "Andrew" explicar esta mensagem, são menos propensos a ser spam. Por alguma razão, eu acho que "agora (agora)", a palavra indica, esta mensagem pode não spam, porque muitas vezes eu obter alguma mensagem muito urgente, é claro, há outras palavras.

Podemos selecionar centenas de tais palavras, dada essa mensagem um, podemos usar esta mensagem para representar um vetor de características, o método como mostrado:
Aqui Insert Picture Descrição

Eu escolhi as 100 palavras usadas para indicar a possibilidade de spam, por isso este recurso vector x dimensão é 100 e se esta palavra particular, que aparece palavra j nesta mensagem, em seguida, cada um valores de variáveis ​​recurso xj ele é 1 se xj é 0.

Embora esse processo que eu descrevi meus próprios escolhidos 100 palavras. Mas, na prática mais prática comum é a de percorrer todo o conjunto de treinamento. Em seguida, no conjunto de treinamento (um monte de spam), o maior número de eleitos n palavras aparecem, n é geralmente entre 10.000 e 50.000, e, em seguida, estas palavras como você usa o recurso. Tão diferente da seleção manual, estas palavras irá constituir um recurso, de modo que você pode usá-los para fazer a classificação de spam.

Se você está construindo um classificador de spam, você deve ser confrontado com tal problema um, que é: você seguir o seu caminho que melhorias utilizado, tornando-se o seu classificador de spam com alta precisão. Intuitivamente, é coletar grandes quantidades de dados, para gerar este objeto de dados é chamado, não é? Na verdade, um monte de gente realmente fazer, muitas pessoas pensam que quanto mais, melhor coleta de dados irá mostrar o algoritmo.

Na classificação de spam, não são chamados de "Honey Pot" do projeto. Ele pode criar um endereço de e-mail falsa, deliberadamente vazou esses endereços para enviar spam pessoas, para que possa receber um monte de spam. Você vê, este é o caso, podemos obter um monte de spam para treinar o algoritmo de aprendizagem, no entanto, nas lições anteriores, sabemos que uma grande quantidade de dados pode ser útil, ou não.
Aqui Insert Picture Descrição

Para a maioria dos problemas de aprendizado de máquina, há muitas maneiras de melhorar o efeito de aprendizagem de máquina. Por exemplo, para fins de spam que você pode pensar em mais complexas variáveis ​​características, como caminho da informação mensagem. Esta informação é geralmente aparece no título da mensagem. Portanto, o remetente de spam ao enviar spam, eles sempre tentar obter a fonte de alguns dos e-mails turva. Ou com cabeçalhos de mensagens falsas, ou enviadas via correio servidor incomum com rotas incomuns, eles podem enviar lixo eletrônico para você, mas as informações também podem ser incluídos na seção cabeçalho da mensagem, de modo que você pode pensar, podemos construído pela parte de cabeçalho da mensagem das características mais complexas, para se obter uma série de mensagem de informações de encaminhamento, e, em seguida, determinar se este é um spam.

Você também pode pensar em outras maneiras, por exemplo, a partir do corpo da mensagem, olhar para algumas das características mais complexas, tais como: o "desconto" palavra e se a palavra "descontos" são os mesmos. Como outro exemplo, a palavra "negócio (transação)" e "dealer (distribuidor)" também deve ser considerado equivalente. Ou ainda, como neste exemplo, algumas palavras e algumas letras minúsculas em maiúsculas, pontuação, ou devemos usar para construir recursos complexos variável. Porque o spam pode ser mais de um ponto de exclamação, estes não são certas.

Da mesma forma, podemos construir um algoritmo mais complexo para detectar ou corrigir esses erros ortográficos intencionais. Por exemplo, "m0rtgage" "med1cine" "w4tches". Desde remetentes de spam fez isso, porque se você colocar os 4 "w4tches", então, em uma simples forma como mencionado anteriormente, classificadores de spam não vai "w4tches" e "relógios" como o mesmo, então dificilmente podemos distinguir entre erro intencional de spam. Spam também é muito inteligente, eles o fazem para escapar alguns dos filtros. Quando usamos a aprendizagem de máquina, sempre "brainstorm" sobre maneiras para tentar chegar a um monte de, como esta.

By the way, eu tenho algum tempo, estudou o problema da classificação de spam, na verdade, eu passei muito tempo estudando isso. Embora eu possa compreender o problema de classificação de spam, eu sei algumas dessas coisas, mas eu ainda difícil de dizer-lhe esses quatro métodos, o que mais lhe vão uso. Na verdade, francamente, a situação mais comum é que uma equipe pode determinar aleatoriamente uma abordagem. Mas, por vezes, este método não é o mais produtivo, você sabe que você apenas escolher aleatoriamente um desses métodos.

Na verdade, quando você precisa de vir acima com maneiras diferentes de brainstorm para tentar melhorar a precisão de que você pode ter já ultrapassado um monte de gente. Infelizmente: a maioria das pessoas que não tentar listar os métodos possíveis. Eles fizeram apenas acordar um dia de manhã, por algum motivo, teve um capricho "vamos tentar coletar grandes quantidades de dados com um projeto Honey Pot Bar." Seja qual for a razão estranha, a manhã tinha uma ideia, ou um selecionados aleatoriamente e depois secar em seis meses, mas eu acho que nós temos uma maneira melhor.

A próxima seção, vamos erro análise diz-lhe como usar uma abordagem mais sistemática para escolher o caminho certo a partir de um monte de diferentes métodos.
Em segundo lugar, a análise de erro
se você está pronto para máquina de estudo aprendendo algo ou máquina de construção aplicações de aprendizagem. Melhores práticas em vez de criar um sistema muito complexo, com como as variáveis complexas, mas para construir um algoritmo simples. Então você pode implementá-lo rapidamente. Sempre que eu estudar problema de aprendizagem de máquina, só vou gastar até um dia para tentar obter rapidamente os resultados para fora. Mesmo que o efeito não é bom, não há resultado com um sistema complexo, mas apenas rapidamente obtido, mesmo que a operação não pôde ser perfeito, mas ele está sendo executado novamente. Finalmente, os dados são verificados pela validação cruzada.

Uma vez feito isso, em seguida, outros problemas desenhando uma curva de aprendizagem e o erro é verificado para descobrir se você tem um problema algoritmos alta polarização e de alta variância, ou. Após essa análise, a decisão de voltar com mais dados de treinamento ou para adicionar mais recursos variável é útil.

A razão para isso é que quando você é novo para problemas de aprendizado de máquina, é uma boa maneira. Você não pode saber com antecedência se você precisa de um recurso variável complexa ou se precisar de mais dados, ou qualquer outra coisa, você deve saber de antemão o que fazer é muito difícil, porque lhe falta de provas, falta de curva de aprendizagem. Então, é difícil saber o que você deve gastar tempo para melhorar o desempenho local do algoritmo. Mas quando você pratica um mesmo caminho imperfeito muito simples, você pode fazer outras seleções desenhando uma curva de aprendizado.

Esta filosofia é que temos de usar a evidência para liderar nossas decisões, como alocar seu tempo otimizar algoritmo, em vez de apenas intuição. Com fora o que a intuição derivada geral sempre errado, além de a curva de aprendizagem é desenhada, uma coisa muito útil é a análise de erros.

Quando nós construímos como classificador estrutura de spam, eu vou dar uma olhada no meu validação cruzada conjunto de dados, em seguida, ver por si mesmo o que a mensagem foi incorretamente o algoritmo confidencial. Spam Portanto, esses algoritmos são erroneamente classificados e não-spam, você pode descobrir as legislações de alguns sistêmica, que tipo de mensagens são constantemente sendo mal classificados. Muitas vezes, depois de fazer isso, o processo pode inspirá-lo a construir uma nova variável Elemento ou dizer-lhe agora fraquezas do sistema. Como, então, inspirar-lo a melhorar.

Especificamente, aqui é um exemplo. Suponha que você está construindo um classificador spam. Você tem 500 casos, validação cruzada focado, presume-se neste exemplo, o algoritmo tem uma elevada taxa de erro. É má classificação de cem exemplo de validação cruzada. Então eu tenho que fazer uma verificação manual este erro 100, e, em seguida, classificá-los com a mão. Com base, por exemplo: Quais são esses tipos de mensagens, que variáveis ​​podem ajudar este algoritmo para classificá-los corretamente. Especificamente este é através da identificação de quais os tipos de mensagens, verificando quais cem mensagens classificadas incorretamente, eu poderia encontrar a mensagem mais provável de ser erroneamente classificados. Mail pode estar relacionado com drogas, essas mensagens são basicamente a venda de drogas, ou produtos falsificados que vendem, como a venda fora da mesa. Ou alguns bandidos também chamado de phishing e-mail e assim por diante. Assim, em vez de verificar o que as mensagens são classificadas erroneamente, vou olhar para cada mensagem, contar, por exemplo, em que 100 correio classificados erroneamente, eu encontrei 12 correio classificados erroneamente é e venda de mensagens relacionados com a droga. 4 está vendendo produtos falsificados para vender fora da mesa ou qualquer outra coisa. Então eu descobri que existem 53 e-mail de phishing e-mail para enganá-lo dizer-lhes sua senha. Os restantes 31 outros tipos de mensagens. Cada categoria é calculado por um número diferente de mensagens, como você pode achar que o algoritmo para distinguir-mails de phishing no momento, sempre se comportaram mal. Isso mostra que você deve gastar mais tempo para estudar este tipo de mensagem, e depois ver se você pode construir um variáveis ​​melhor característicos deste tipo de mensagem para distinguir corretamente. Ao mesmo tempo, eu tenho que fazer é olhar para o que apresenta variável pode ajudar o algoritmo de mensagens corretamente classificados.

Assumimos que o método de classificação pode nos ajudar a melhorar o desempenho de e-mail está: Verifique erros ortográficos intencionais, mensagem incomum roteamento de origem e pontuação única forma de spam, como muitos pontos de exclamação. Como antes, eu vou navegar manualmente essas mensagens, assumindo que existem cinco mensagens deste tipo, este tipo de 16, 32 deste tipo, bem como alguns outros tipos. Se este é o resultado que você começa de validação cruzada, em seguida, isso pode indicar erro intencional ocorre com menos frequência. Pode não valer a pena o seu tempo para algoritmos de gravação para detectar este tipo de mensagem, mas se você encontrar um monte de spam tem regras de pontuação incomum, então esta é uma característica forte, você mostrar que você deve gastar tempo para construir mais complexa com base em variáveis ​​características de pontuação. Assim, este tipo de detecção é um processo de análise de erro manual. Detecção algoritmo pode confundir muitas vezes pode ajudá-lo a encontrar meios mais eficazes, o que explica por que eu sempre recomendo para praticar um jejum, mesmo um algoritmo imperfeito. O que realmente queremos é descobrir que tipo de mensagem, esta é a difícil fora a maioria algoritmo de classificação. Para algoritmos diferentes, diferentes algoritmos de aprendizado de máquina, os problemas que encontrou, em geral, sempre a mesma, mesmo que imperfeita pouco de aritmética rápida através da prática. Você pode encontrar rapidamente o local errado, e é difícil de identificar rapidamente algoritmo de processamento de exceção. Então você pode se concentrar no problema real.

Finalmente, quando a construção de um algoritmo de aprendizagem de máquina, Outro truque útil é garantir que você tenha uma forma de avaliar seus algoritmos de aprendizado de máquina numéricos.

Dê uma olhada neste exemplo assume que deve estar tentando decidir se quer ser como "desconto" "descontos" "discounter" "discountring" Tais palavras são tratadas como equivalentes a um método, é para verificar as primeiras letras dessas palavras. Por exemplo, quando você verificar em poucas palavras no início dessas cartas, você pode encontrar estas palavras provavelmente têm o mesmo significado.

Em processamento de linguagem natural, este método é chamado decorrentes através de software para alcançar, se você quiser tentar, você pode pesquisar na Internet "Porter Stemmer (Porter decorrentes Act)" Este é na extração de conter um relativamente bom software. Este software vai ser a palavra "desconto" "descontos" e assim por diante são tratados como a mesma palavra. Mas isso Stemming software verifica apenas as primeiras letras da palavra, isto é útil.

Mas também pode causar alguns problemas. Porque: Por exemplo, porque o software seria a palavra "universo (o universo)" e "University (universidade)" é também considerado como a mesma palavra. Como as duas palavras que começam com a mesma letra. Então, quando você decidir se você deve usar software decorrentes para a classificação, é sempre difícil dizer particular, análise de erro, ele não ajudar a decidir decorrente não é um bom método.

Em contraste, a melhor maneira de descobrir decorrente software no final não há uso para o seu classificador, é rapidamente começar a tentar olhar para ele como se comportar no final, a fim de fazê-lo para avaliar o seu valor, o algoritmo é muito útil. Especificamente, você deve, naturalmente, não ser verificada por palavra cruzada decorrente e taxa de erro de validação de algoritmo de extração seco. Então, se você não usar seus algoritmos resultantes, por exemplo, então você começa taxa de classificação incorreta de 5%, então você pode usar decorrentes para executar o seu algoritmo, você começa tal erro de classificação um dos 3%. Então isso reduz um monte de erros, então você decide decorrentes de uma boa maneira, em termos de este problema particular. Há uma série de avaliações digitais que a taxa de erro de validação cruzada, no futuro, vamos encontrar o número de validação neste exemplo também requer algum processamento, mas podemos ver ou fazer que vai fazer você capaz de fazer mais rapidamente em cursos futuros uma decisão, como se deve usar decorrentes.

Se você praticar cada vez que uma nova ideia, você tem que detectar manualmente estes exemplos, ir e ver um desempenho ruim ou bom comportamento, então isso é difícil para você decidir, no final, se deve usar decorrentes, é sensível a maiúsculas. Mas, através de uma avaliação quantitativa do valor, você pode olhar para esta figura, o erro é maior ou menor.

Você pode usá-lo para praticar suas novas idéias mais rapidamente, o que é basicamente muito intuitivo para lhe dizer que a sua ideia é melhorar o desempenho do algoritmo, ou torná-lo pior? Isso irá aumentar significativamente a velocidade quando você pratica algoritmos, então eu recomendo fortemente configurar a implementação da análise de erros de validação cruzada, e não no conjunto de teste. Mas há alguns que vão fazer análise de erros no conjunto de teste, mesmo que matematicamente falando, não é apropriado. Então, eu recomendo que você faça a análise de erro vector validação cruzada.

Para resumir:

Quando você estuda um novo problema de aprendizagem de máquina, eu sempre recomendo que você implementar uma forma mais simples e rápido, se não algoritmo de modo perfeito. Eu quase nunca vi as pessoas fazem isso, eles são muitas vezes fazer as coisas: para gastar um monte de tempo para construir forma simples que pensam no algoritmo de construção. Portanto, não se preocupe com o seu algoritmo é muito simples ou muito imperfeita, mas o seu algoritmo para alcançar o mais rápido possível. Quando você tem a implementação inicial, torna-se uma ferramenta muito poderosa para ajudar você a decidir sobre o próximo treino. Porque nós podemos dar uma olhada no algoritmo errado o levou a olhar para onde eles passaram por análise de erro e, em seguida, para determinar o melhor caminho. Outra coisa: suponha que você tenha um algoritmo rápido não é perfeito, há uma série de avaliação de dados, o que vai ajudar você a experimentar novas ideias, e rapidamente descobrir se você tentar essas idéias podem melhorar o desempenho do algoritmo assim, você vai tomar uma decisão rapidamente: Qual a desistir no algoritmo, o que adotar.

Em terceiro lugar, o número de processamento distorcido
com a avaliação e algoritmo de métrica de erro, há uma coisa importante a nota: é o uso de um erro adequado métrica, o que, por vezes, causar efeito muito sutil em seu algoritmo de aprendizagem. Este importante é classe inclinada (aulas distorcidas) pergunta:

Tais como problema de classificação do câncer: Temos uma variáveis ​​características de pacientes médicos, queremos saber se eles têm câncer, supomos que y = 1 indicando que o paciente tem câncer, y = 0 assumir que eles não têm câncer.

Nós treinar um modelo de regressão logística, assumindo que usamos conjunto de teste, testar este modelo de classificação, e descobriu que apenas 1% de erros, por isso vamos fazer o diagnóstico correto 99%. Looks resultado muito bom, mas nós encontrado no conjunto de teste apenas 0,5% dos pacientes realmente tinha câncer, portanto, neste exemplo, a taxa de erro de 1% não parecer tão bom.

Para um exemplo concreto, existe uma linha de código que permite y é sempre igual a 0, por isso é sempre previsão: no câncer de um get. Em seguida, o algoritmo é realmente taxa de erro de apenas 0,5%. Portanto, esta é ainda melhor do que a taxa de erro de 1% antes de chegarmos. Neste exemplo, o número de amostras negativas e o número de amostras positivas em comparação com o muito, muito pequeno, nós chamamos esta situação é chamado de uma classe distorcida. O número de amostras, em comparação com uma base de dados de classe de outra classe, muito mais. Por sempre prever ou sempre prever y = 0 y = 1 algoritmo pode funcionar muito bem.

Assim, erros ou classificados usando a precisão da classificação como a métrica de avaliação pode causar os seguintes problemas:

Vamos dizer que você tem um algoritmo que a precisão é de 99,2%. Assim, é erro de apenas 0,8%, supondo que você faça alterações em seu algoritmo, agora você começa a precisão de 99,5%, apenas erro de 0,5%. Isso no final não é um algoritmo para melhorá-lo? Com um número real como uma medida de avaliação do benefício é esta: Ele pode nos ajudar a decidir rapidamente se nós precisamos fazer algumas melhorias no algoritmo, a precisão melhorou de 99,2% para 99,5%. Mas melhorias no final é útil, ou estamos apenas substituído com o código. Por exemplo y = 0 é sempre prever uma coisa dessas, por isso, se você tem uma classe enviesada, com uma precisão de classificação não é um algoritmo de uma boa medida. Porque você pode ter uma precisão muito elevada, muito baixa taxa de erro. Mas não sabemos se realmente melhorou a qualidade do modelo de classificação. Porque há sempre prever y = 0 não é um modelo de classificação boa. Y = 0, mas sempre prever o seu erro será reduzida para tal diminuiu para 0,5%.

Quando nos deparamos com uma classe tão distorcida, queremos ter uma métrica de erro diferente, que é chamado a métrica para avaliar a precisão (precisão) e recordação (recall. Deixe-me explicar o que são usados ​​para testar premissas para avaliar um conjunto de modelo de classificação binária, o nosso algoritmo de aprendizagem a fazer é ter um valor de previsão. Se houver uma amostra da classe real que pertence a uma classe prevista é 1, então nós colocamos esta amostra é chamado verdadeiros positivos (verdadeiro positivo) aprendendo algoritmo para prever um valor negativo é igual a 0, a classe real de fato pertencem a 0, então nós chamamos este verdadeiro negativo (verdadeiro negativo) algoritmos de aprendizagem para prever um valor igual a 1, mas na verdade ele igual a 0, isso é chamado de falso positivo (falsos positivos). algoritmo valor preditivo de 0, mas o valor real é 1, é chamado de falso negativo (falso negativo). desta forma, temos uma tabela 2x2 com base na categoria de classe real e previsto, então nós com uma outra maneira de avaliar o desempenho do algoritmo.

Queremos adicionar dois números, o primeiro é chamado de precisão, isto significa que para todas as nossas previsões, eles têm pacientes com relação paciente com câncer é quanto sofrimento real de câncer.

Precisão de um modelo de classificação = verdadeiro positivo / preditivo positivo = verdadeiro positivo / (verdadeiros positivos + falsos positivos)

Quanto maior a precisão, melhor.

Nós temos que calcular outro número, chamado de recall. Lembre-se que, se tudo isso em um conjunto de dados pacientes realmente tinha câncer, a relação de quanto nós previu corretamente que tinha câncer.

Lembre = verdadeiro positivo / real positivo = verdadeiro positivo / (verdadeiros positivos + falsos negativos)

Da mesma forma, quanto maior a taxa, melhor a recall.

Ao calcular precisão e recall, nós sabemos melhor: o modelo de classificação boa no final.

Em quarto lugar, o valor crítico
Exemplos de classificação de câncer, se queremos em caso estamos muito confiantes, a única prever um paciente tem câncer, uma maneira de fazer isso é modificar o algoritmo. Vamos valor não crítico para 0,5, talvez, nós apenas previu y = 1 é maior ou igual ao valor de h (x) no caso do 0.7, o modelo de regressão para que você tenha uma maior precisão e menor a taxa de recall.

Porque, quando se fazer previsões, que dão apenas uma pequena fracção dos pacientes previu y = 1. Agora temos esta situação exagerando um pouco, vamos definir o limite em 0,9, só no caso de pelo menos 90% de certeza que este paciente com câncer, prever y = 1. Então, esses pacientes têm uma grande proporção de sofrimento real de câncer, por isso esta é uma alta precisão do modelo de pesquisa. Mas a taxa de recuperação torna-se baixo, porque nós queremos ser capazes de detectar corretamente os pacientes com câncer.

Agora, considere um exemplo diferente. Suponha que queremos evitar perder pessoas com câncer que queremos evitar falsos negativos. Especificamente, se um paciente realmente tem câncer, mas nós não disse que ele tinha câncer, e que isso poderia ter consequências graves. Neste exemplo, vamos definir limites inferiores, como 0,3. Neste caso, teremos uma taxa de recuperação mais elevada e menor precisão modelo.

No geral, portanto, para a maioria do modelo de regressão, você tem que pesar a precisão e recordação:

Aqui Insert Picture Descrição
Quando você alterar o valor do limiar, eu estou aqui desenhou um valor crítico, você pode desenhar uma precisão trade-off curva e recall. Um valor aqui refletem um valor limite superior, este limite pode ser igual a 0,99. Assumimos que apenas a previsão de y = 1 apenas quando existe a certeza de uma maior do que 99%, a possibilidade de, pelo menos, 99%. Portanto, neste ponto a taxa de reação de alta precisão recall. No entanto, um ponto aqui refletem um limiar mais baixo, por exemplo, 0,01. Não há dúvida de que o predito y = 1. Se fizer isso, você acaba com muito baixa precisão, mas uma taxa de recuperação mais elevada.

Quando você alterar o limite, se desejar, você pode desenhar todos os modelos de curva de regressão para ver se você pode obter um intervalo de taxas de precisão e de recall. Aliás, precisão - curva de recuperação pode ser uma variedade de formas diferentes, que às vezes parece, por isso às vezes. Precision - recordação forma da curva Há muitas possibilidades, dependendo do modelo de regressão algoritmo específico. Então Isso levanta outra questão interessante que não há nenhuma maneira de selecionar automaticamente o valor crítico ou, mais amplamente, se tivermos diferentes algoritmos ou ideias diferentes, como podemos comparar a precisão diferente e recuperá-lo?
Aqui Insert Picture Descrição

Especificamente, suponha que temos três algoritmos de aprendizagem diferentes, ou três curva de aprendizagem diferente é o mesmo algoritmo, mas com limites diferentes. Como é que vamos decidir qual método é melhor, falamos antes em que uma coisa é a importância das medidas de avaliação.

A ideia é reflectir o seu modelo de regressão através de um número específico no final como. Mas os problemas de precisão e de recall, não podemos fazer isso. Porque aqui temos dois números pode julgar. Então, muitas vezes temos que enfrentar tal situação, se estamos a tentar comparar algoritmo 1 e algoritmo 2, finalmente perguntar-se, no final, é a precisão e recall de 0,4 a 0,5 é bom, ou devo dizer, com precisão de 0,7 boa recall de 0,1, ou cada vez que você criar um novo algoritmo, você tem que sentar e pensar: no final boa 0,5, 0,4 ou bom? Ou melhor 0,7, 0,1 ou bom? Se você finalmente sentar para pensar assim, isso irá reduzir sua velocidade de tomada de decisão: é útil pensar no final o que mudanças devem ser incorporadas em seu algoritmo. Pelo contrário, se tivermos uma medida de avaliação, um número pode nos dizer no final é bom ou Algoritmo 1 Algoritmo 2 boa. Isso nos ajudará mais rapidamente determinar qual algoritmo é melhor, mas também para nos ajudar a avaliar mais rapidamente diferentes mudanças no que deve ser integrado no algoritmo para o interior, então como podemos obter essa métrica para avaliar isso?

Você pode tentar uma coisa é calcular as taxas médias de precisão e revocação, com P e R para representar a precisão e recall, você poderia fazer é calcular sua média, dê uma olhada no que modelo tem a maior média. Mas isso pode não ser uma boa solução, porque o mesmo que o nosso exemplo anterior, se nós sempre preditivo modelo de regressão y = 1 a fazê-lo você pode ficar muito alta taxa de recall, para obter uma muito baixa precisão. Por outro lado, se o seu modelo é sempre prever y = 0 Ou seja, se raramente prever y = 1, correspondendo a definir um limite alto. Finalmente, você vai ter uma precisão muito elevada e muito baixa taxa de recall.

Os dois casos extremos: um limiar muito alto, há um limite muito baixo, qualquer um deles não é um bom modelo.

Por outro lado, há uma maneira diferente da combinação de precisão e retirada, chamado valor F, uma fórmula é. Neste caso, F é um valor. Podemos ser julgados pelo valor do algoritmo F F 1 tem o valor mais elevado, o segundo algoritmo 2, Algoritmo 3 é a mais baixa. Portanto, o valor F, vamos escolher o algoritmo nesses algoritmos 1, o valor F também é chamado o valor de F1, F1 valor geral de escrita, mas geralmente só é referido valor F, será considerado parte da definição de precisão e recordação média. Mas vai dar a investigação uma taxa de baixo valor de precisão de peso e recordação superior.

Assim, você pode ver o valor F molécula é o produto da precisão de busca e recuperação, por isso, se a precisão é igual a 0, ou a taxa de recuperação é igual a 0, o valor F será igual a zero. Ele combina a precisão e recall, para uma maior valor F, precisão e recuperação tem que ser grande.

Devo dizer que a fórmula pode ser combinado com mais precisão e recall, fórmula de valor F é apenas um deles. Mas, por razões históricas e hábito que as pessoas usam no aprendizado de máquina valor F, o valor F deste termo, não há nenhum significado especial, por isso não se preocupe com isso, no final, porque é chamado o valor F ou o valor de F1, mas dá-lhe o que você precisa maneira eficaz.

Porque tanto a precisão igual a 0, ou a taxa de recuperação é igual a 0, ele terá um valor muito baixo F. Então, se você deseja obter um alto valor F, precisão e recordar o seu algoritmo para ser próximo da unidade. Especificamente, se P = 0 ou R = 0, o valor será igual ao seu F 0, para um valor perfeito F, se a precisão é igual a 1, enquanto a taxa de recuperação é igual a 1, que você obtenha o valor de F 1 é igual a 1 dividido por dois e depois multiplicado por dois. Em seguida, o valor F é igual a 1, se você pode obter a precisão mais perfeita e recall, no meio dos valores 0 e 1, que é muitas vezes modelos de regressão que ocorrem mais frequentemente pontuação.

Neste vídeo, falamos sobre como equilibrar precisão e recall, e como podemos alterar o limite de decidir se queremos prever y = 1 ou y = 0, por exemplo, precisamos de um nível de confiança de 70% ou 90% ou outro limite está previsto y = 1, variando o limiar, você pode controlar após a pesagem de precisão e recordar nós falamos sobre o valor F, pesava precisão e taxa de recall, dá-lhe uma avaliação métrica, é claro, se o seu objetivo é selecionar automaticamente o limite para decidir o que você quer prever y = 1 ou y = 0, então uma abordagem mais ideal é avaliar esses limiares diferentes, o maior valor F no conjunto de teste intersecção, que uma maneira melhor é selecionado automaticamente limiar.

Em quinto lugar, o uso de grandes conjuntos de dados
provado, sob certas condições, para obter grandes quantidades de dados e treinamento em algum tipo de algoritmo de aprendizado. Pode ser uma forma eficaz de obter um algoritmo de aprendizagem tem um desempenho bom. E esta situação ocorre frequentemente sob estas condições são verdadeiras para a sua pergunta, e você pode obter uma grande quantidade de dados, esta pode ser uma boa maneira de obter algoritmo de aprendizagem muito alto desempenho.

I contar uma história: muitos, muitos anos atrás, dois pesquisadores Sei Michele Banko e Eric Brill conduziu um estudo interessante. Eles estão interessados ​​no estudo do efeito do uso de diferentes algoritmos de aprendizagem, e vai usar estes resultados para os diferentes conjunto de dados de treinamento, comparando os dois, quando consideram a questão de como classificar entre as palavras confusas.

Por exemplo, nesta frase: Eu comi um pequeno-almoço de ovos (para, dois, também), neste caso, o pequeno-almoço eu comi dois ovos. Este é um exemplo de uma palavra confusa. Este é um outro conjunto de circunstâncias, assim que colocar esta máquina problemas de aprendizagem, tais como uma classe de problema de aprendizagem supervisionada, e tentar classificar. Que tipo de palavras em Inglês em um local frase específica é apropriado.
Aqui Insert Picture Descrição

Eles escolheram quatro algoritmos de classificação, estes algoritmo específico não é importante, o que eles fazem é alterar o tamanho do conjunto de dados de treinamento, e tentar aprender estes algoritmos para diferentes tamanhos do conjunto de dados de treinamento, este é o resultado que obteve. A tendência é muito clara, antes de tudo, a maioria dos algoritmos têm desempenho similar. Em segundo lugar, com um aumento no conjunto de dados de treinamento, o desempenho destes algoritmos são também correspondentemente aumentada.

Na verdade, se você optar por seleccionar um algoritmo "inferior", mais dados se você der os algoritmos inferiores. Bem, pode ser maior do que o "algoritmo de Excelência" melhores resultados como estes dão origem a um consenso geral na aprendizagem de máquina: "A pessoa bem sucedida não é o dono do melhor algoritmo, mas quem tem o maior número de dados ". Portanto, esta afirmação é verdadeira em que momento, que horas são falsos?

Se você tem um monte de dados, mas você treinar um algoritmo de aprendizagem com muitos parâmetros, então esta seria uma boa maneira de fornecer um algoritmo de aprendizagem de alto desempenho.

Eu acho que o teste-chave, muitas vezes eu me pergunto, antes de tudo, um especialista humano pode ver os valores característicos de x confiante valor y previsto isso? Uma vez que este pode provar y pode ser prevista com precisão de acordo com o valor da característica x. Em segundo lugar, podemos realmente obter um grande conjunto de treinamento conjunto e um monte de parâmetros de aprendizagem algoritmo neste treinamento focado em treinamento? Se você não pode fazer as duas coisas, por isso mais vezes. Você vai ter um muito bom desempenho do algoritmo de aprendizagem.
Referência: 10 Machine Learning (Andrew Ng): aprendizagem de máquina projeto do sistema
Andrew Ng Machine Learning

Publicado 80 artigos originais · Louvor obteve 140 · vista 640 000 +

Acho que você gosta

Origin blog.csdn.net/linjpg/article/details/104176061
Recomendado
Clasificación