Por primera vez para participar en la competencia Kaggle, ¿cómo hacer?


El texto completo de 4621 palabras, cuando se espera que el aprendizaje de crecer 14 Fenzhong

Ven Fuente: ijiandao

Kaggle es probablemente el sitio más famoso concurso de aprendizaje de máquina.

Kaggle concurso incluye un conjunto de datos disponibles en el sitio web, es necesario aprender el uso de la máquina, el aprendizaje profundo u otro la ciencia y la tecnología de datos para resolver el problema.

Una vez que las soluciones desarrolladas, los concursantes predicen los resultados se pueden subir de nuevo al sitio, predijo con éxito el resultado determinará si es o no la posición de los participantes en el gráfico de la carrera, los participantes incluso puede recibir un premio en metálico.

 

Kaggle se perfeccionó la máquina de aprendizaje y habilidades científicas de datos a compararse con los demás, una excelente plataforma para aprender nuevas tecnologías. En este artículo se proporcionará a los Raiders por primera vez para participar en el concurso de Kaggle. En este artículo se incluye lo siguiente:

 

• Desarrollar modelo para predecir si los tweets sobre el desastre real.

· Conjunto de datos de prueba proporcionado por Kaggle modelo de predicción.

· Presentado por primera vez, un lugar en el ranking Kaggle.

 

Tweets de detección de desastres

 

En el sitio de un concurso reciente proporciona un conjunto de datos, que contiene una etiqueta y tweets, los participantes pueden aprender Tweets es realmente sobre el desastre a través de la etiqueta. El concurso cuenta con cerca de 3.000 participantes, el premio en efectivo más alto de $ 10000. Haga clic aquí para ver el esquema de datos y competiciones.

 

Si no tienen en cuenta Kaggle, haga clic aquí para crear una gratis.

 

En la página del concurso seleccione "Descargar todos" obtendrá un archivo comprimido que contiene tres archivos CSV.

 

El primer conjunto de datos incluye una serie de características y etiquetas para la formación de destino correspondiente. El conjunto de datos tiene las siguientes propiedades:

 

· Id: Identificador de tweets numéricos. Cuando los concursantes predicen los resultados subidos a la lista, que será muy útil.

* Palabras clave: En algunos casos, pío palabras clave se pueden perder.

· Lugar: Posición enviar tweets. Asimismo, no se puede mostrar.

· Texto: el texto completo de tweets.

· Objetivo: concursantes tratan de predecir la etiqueta. Si esto es así Tweets y desastres relacionados, en comparación con 1 y 0 en caso contrario.

 

Lea cuidadosamente estos documentos con el fin de aprender más sobre ellos. Usted notará el siguiente código ya contiene una instrucción Set_Option. formato de visualización pandas set_options le permite controlar los resultados de la trama de datos. Las instrucciones contenidas en el presente documento se destina a asegurar que el contenido completo de las columnas de texto, de modo que los resultados del análisis y más fáciles de ver.

 

import pandasas pdpd.set_option( display.max_colwidth , -1)train_data = pd.read_csv( train.csv )train_data.head()

El segundo conjunto contiene sólo datos característicos conjuntos de datos, para predecir la etiqueta objetivo, que va a determinar si un lugar en los gráficos.

 

test_data =pd.read_csv( test.csv )test_data.head()

 

Un tercer conjunto de datos ilustra la documentación deberá presentarse en qué formato. El documento incluirá una columna ID de destino y la predicha por el modelo de archivo test.csv. Después de crear este archivo, los concursantes enviarlo al sitio para entrar en el ranking.

 

sample_submission= pd.read_csv( sample_submission.csv )sample_submission.head()

 

Aprender a preparar los datos para la máquina

 

Cualquiera que sea la tarea de aprendizaje automático, limpieza de datos y pre-tratamiento es necesario antes de poder entrenar el modelo. Cuando se trata de datos de texto, lo cual es particularmente importante.

 

Con el fin de hacer que el primer modelo es fácil de operar, y debido a la falta de grandes cantidades de datos en estas columnas, la ubicación y características de palabras clave serán eliminados, sólo la formación real de los tweets de texto. Se eliminará la columna ID, ya que no es el modelo de formación útil.

 

train_data =train_data.drop([ keyword ,  location ,  id ], axis=1)train_data.head()

 

Ahora, el conjunto de datos de la siguiente manera.

 

Texto (especialmente los tweets) por lo general contiene una gran cantidad de caracteres especiales, pero estos personajes algoritmo de aprendizaje automático no es necesariamente significativo. Así que el primer paso que quiero tomar es eliminar estos caracteres. También todas las palabras a minúsculas.

 

import redef  clean_text(df, text_field):    df[text_field] =df[text_field].str.lower()    df[text_field] =df[text_field].apply(lambda elem: re.sub(r"(@[A-Za-z0-9]+)|([^0-9A-Za-z	])|(w+://S+)|^rt|http.+?", "", elem))     return dfdata_clean =clean_text(train_data, "text")data_clean.head()

 

Otro proceso de limpieza de texto útil es para eliminar las palabras vacías. las palabras vacías de alta frecuencia de uso, pero en general no es para transmitir significado. En Inglés, las palabras vacías incluyen palabras como "el", "ella", "como". Si usted tiene estas palabras en el texto, va a generar mucho ruido, que será más difícil de aprender aritmética.

 

Natural Language Toolkit (NLTK) trae bibliotecas pitón juntos y herramientas para trabajar con los datos de texto, haga clic aquí para acceder al documento completo. Además de las herramientas de procesamiento, Natural Language Toolkit también tiene un gran corpus de textos y recursos léxicos, incluyendo las lenguas de todos los recursos de las palabras vacías. La biblioteca se utiliza para eliminar un conjunto de datos de las palabras vacías.

 

biblioteca de lenguaje natural Toolkit por pip instalar. Después de la instalación se ha completado, es necesario descargar e importar el archivo de palabras no corpus.

 

import nltk.corpusnltk.download( stopwords )

 

Una vez completado este paso, se puede leer en las palabras vacías, y el uso de palabras vacías en los tweets de borrado corpus.

 

from nltk.corpus importstopwordsstop = stopwords.words( english )data_clean[ text ] =data_clean[ text ].apply(lambda x:    .join([word for word in x.split() if wordnot in (stop)]))data_clean.head()

 

pre-procesamiento de datos

 

Después de que el dato está limpio, sino también la necesidad de seguir un tratamiento previo se puede utilizar para el algoritmo de aprendizaje automático.

 

Todo algoritmo de aprendizaje automático utiliza cálculos matemáticos mapa modo de cuenta (en el caso de este artículo es el texto o palabra) y la variable de destino. Por lo tanto, con el fin de realizar cálculos, debe convertir el texto antes de la formación de modelos de aprendizaje automático en forma digital.

 

Este tipo de pre-procesamiento de una variedad de métodos, pero se ilustrará mediante dos métodos scikit-learn biblioteca.

 

El primer paso en este proceso es la de romper los datos en una etiqueta de frecuencia o una sola palabra, se calcula para cada aparece palabra en el texto, y los recuentos expresa como una matriz dispersa.

 

CountVectoriser función para este propósito.

 

El siguiente paso es generar palabras CountVectoriser ponderados. Con este propósito se pondera proporcionalmente reduce el impacto de las palabras con frecuencia aparecen en el texto, por lo que el proceso de formación de modelo, no es frecuente o proporcionar más información acerca de la palabra será llamar la atención. TfidTransformer realizar esta función.

 

ducto Machine Learning

 

Todos los pre-procesamiento y ajuste del modelo en la tubería scikit-learn, para ver cómo el rendimiento del modelo. El primer intento, utilizo un clasificador lineal de vectores de soporte de la máquina (SGDClassifier) ​​- uno de los mejores algoritmo de clasificación texto reconocido.

 

from sklearn.model_selectionimport train_test_splitX_train, X_test, y_train, y_test =train_test_split(data_clean[ text ],data_clean[ target ],random_state = 0)fromsklearn.feature_extraction.text import TfidfVectorizerfrom sklearn.pipeline import Pipelinefrom sklearn.feature_extraction.text import CountVectorizerfrom sklearn.feature_extraction.text import TfidfTransformerfrom sklearn.linear_model import SGDClassifierpipeline_sgd = Pipeline([    ( vect , CountVectorizer()),    ( tfidf ,  TfidfTransformer()),    ( nb , SGDClassifier()),])model = pipeline_sgd.fit(X_train, y_train)

 

La retención de datos de prueba predictiva modelo entrenado, para ver cómo el rendimiento del modelo.

 

from sklearn.metrics importclassification_reporty_predict = model.predict(X_test)print(classification_report(y_test, y_predict))

 

El primer intento, el rendimiento del modelo es bastante bueno.

 

Por primera vez presentado

 

Ahora echa un vistazo a las clasificaciones en el conjunto de datos de prueba modelo de competencia y los gráficos de rendimiento.

 

Primero tiene que lavar archivo de texto de prueba y, a continuación, hacer el modelo de predicción. El siguiente código obtiene una copia de los datos de prueba, y realiza la misma operación de formación de limpieza de datos. De salida se muestra en el código siguiente.

 

submission_test_clean =test_data.copy()submission_test_clean = clean_text(submission_test_clean, "text")submission_test_clean[ text ] = submission_test_clean[ text ].apply(lambda x:   .join([word for word in x.split() if word not in (stop)]))submission_test_clean = submission_test_clean[ text ]submission_test_clean.head()

 

A continuación, utilice el modelo de predecir.

 

submission_test_pred =model.predict(submission_test_clean)

 

La creación de presentar trama de datos necesita ser construido sólo contiene el identificador de equipo de prueba y la previsión.

 

id_col = test_data[ id ]submission_df_1 = pd.DataFrame({                  "id": id_col,                  "target":submission_test_pred})submission_df_1.head()

 

Por último, guardarlo como un archivo CSV. Para incluir index = Falso, es muy importante, de lo contrario se guardará el índice como se rechazará un archivo enviado.

 

submission_df_1.to_csv( submission_1.csv ,index=False)

Después de obtener el archivo CSV, puede volver a la página del concurso y seleccionar el botón "Enviar predecir". Esto abrirá un formulario, los concursantes puede cargar un archivo CSV en él. Lo mejor es añadir algunos comentarios sobre el proceso, tratan de presentar antes de la grabación.

 

Esta interfaz aparecerá después de la presentación.

 

Ahora presentado un éxito!

 

Este modelo permite al autor para obtener 0,78 puntos en la clasificación, clasificado 2371. Es obvio que hay cierto margen de mejora, pero ahora tengo un punto de referencia utilizado para comparar, que es propicio para la competencia futura.

 

En este trabajo, por primera vez para participar en el concurso de Kaggle sometido a predecir lo que se describe. ¿Quieres mejorar la puntuación, también se pueden tomar otras medidas adicionales. Tales como una mejor limpieza de texto, diferentes métodos de tratamiento previo para tratar de otra máquina, los algoritmos de ajuste súper parámetro del modelo y así sucesivamente aprendizaje.

 

Fuente: Pexels

Gracias por leer!


temas de lectura recomendados

Enviar un círculo pulgares de mensajes de amigos

Juntos compartimos el aprendizaje y el desarrollo de la IA seca

Grupo de compilación: Zhou fruta, Qi Xin

Enlaces relacionados:

https://towardsdatascience.com/how-to-enter-your-first-kaggle-competition-4717e7b232db

Tales como la reimpresión, por favor dejar un mensaje detrás del escenario, cumplir con las normas de reimpresión

artículos de lectura recomendados

ACL2018 Actas 50 interpretación

EMNLP2017 Proceedings papeles de interpretación 28

2018 AI Tres principales logros académicos chinos estarán llenas de enlace

ACL2017 Actas: 34 Interpretación de los productos secos todos aquí

10 AAAI2017 opinión trabajo clásico

Prensa e identificar código bidimensional que se puede añadir la atención

Junio ​​de lectura general que el amor

Publicados 899 artículos originales · ganado elogios 2858 · Vistas de 520.000 +

Supongo que te gusta

Origin blog.csdn.net/duxinshuxiaobian/article/details/104958144
Recomendado
Clasificación