Informe Comercial de Aprendizaje Automático

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 64

Informe empresarial - Proyecto de modelización predictiva

Por Shorya Goel

Problema 1- Uno de los principales canales de noticias CNBE le contrata para analizar las recientes
elecciones. Esta encuesta se realizó a 1525 votantes con 9 variables. Hay que construir un modelo para
predecir a qué partido votará un elector basándose en la información dada, para crear un sondeo a pie de
urna que ayude a predecir la victoria global y los escaños cubiertos por un partido concreto.

1.1 Leer el conjunto de datos. Realice la estadística descriptiva y la


comprobación de la condición de valor nulo. Escribe una inferencia al
respecto.

Leer el conjunto de datos - "Election_Data.xlsx"

Análisis exploratorio de datos:


Las 5 entradas más importantes del conjunto de datos.

"Sin nombre: 0" es una variable que simplemente representa el índice en los datos. Por lo tanto, debe
suprimirse, ya que no es útil en el modelo.

Además, algunas variables contienen el operador '.' en su nombre que puede afectar al modelo, por lo que
sustituiremos el operador '.' por '_'.

Forma del conjunto de datos


Número de filas: 1525
Número de columnas: 9

Información del conjunto de datos


Hay un total de 10 variables presentes en el conjunto de datos.
2 Variables categóricas- voto, género.
7 Variables de tipo numérico-edad, economic_cond_national, economic_cond_household, Blair, Hague,
Europe, political_knowledge.

Estadísticas descriptivas del conjunto de datos


Columnas numéricas-

Columnas categóricas-

La tabla anterior ofrece información como valores únicos, media, mediana, desviación estándar, resumen
de cinco puntos, mín-máx, recuento, etc. para todas las variables presentes en el conjunto de datos.

Comprobar valores nulos-


De lo anterior se deduce claramente que no hay valores nulos en el conjunto de datos.
La función isnull() se utiliza aquí para comprobar si faltan valores.
La función sum() se utiliza para obtener el número total de valores nulos presentes en una variable
determinada.

Compruebe si hay duplicados.


Hay un total de 8 filas duplicadas.

Puesto que no hay identificación o código único para cada fila presente. No podemos decir claramente que
se trate de la misma persona o de una diferente. Por lo tanto, en este caso no eliminaremos los
duplicados.

Sesgo del conjunto de datos

La asimetría es una medida de la asimetría de la distribución de probabilidad de una variable aleatoria de


valor real con respecto a su media.
Sólo dos variables están sesgadas positivamente y el resto negativamente, con un sesgo máximo en Blair.

Comprobación del coeficiente de variación


Elcoeficiente de variación(CV) es una medida de la variabilidad relativa. Es la relación entre la
desviación típica y la media.

1.2 Realizar análisis univariantes y bivariantes. Realice un análisis


exploratorio de los datos. Compruebe si hay valores atípicos.

Análisis univariante
Para variables continuas
Podemos ver que todas las variables numéricas se distribuyen normalmente (aunque no son
perfectamente normales y en algunos casos también son multimodales).
Hay valores atípicos en las variables "economic_cond_national" y "economic_cond_household" que
también pueden verse en los gráficos de caja de la derecha.
Además, en los gráficos de caja los valores mínimo y máximo de las variables no están muy claros;
podemos obtenerlos por separado al comprobar si hay valores atípicos.
Análisis bivariante.

Pairplot-

Pairplot nos informa de la interacción de cada variable con cualquier otra variable presente.
Por lo tanto, no existe una relación estrecha entre las variables.
Hay una mezcla de relaciones positivas y negativas, lo cual es de esperar.

En general, se trata de una estimación aproximada de las interacciones, se puede obtener una imagen
más clara mediante los valores del mapa de calor y también diferentes tipos de gráficos.
Análisis - Blair y la edad

Los mayores de 45 años suelen pensar que Blair está haciendo un buen trabajo.

Análisis - La Haya y la edad

La Haya tiene una concentración de puntos nuterales ligeramente superior a la de Blair para las personas
mayores de 50 años.

Análisis Catplot - Blair (recuento) en economic_cond_household.


Análisis Catplot - Hague (count) on economic_cond_household

Blair tiene más puntos en términos económicos que Hague.

Análisis Catplot - Blair (recuento) en economic_cond_national


Catplot Analysis - Hague (count) on economic_cond_national

Blair tiene más puntos en términos de economía nacional que Hague.


Análisis Catplot - Blair (cuenta) en Europa

Análisis Catplot - Hague (conde) sobre Europa

En toda Europa, si nos fijamos en los datos, Blair va en cabeza.


Catplot Analysis - Blair (count) on political_knowledge

Análisis Catplot - Hague (recuento) en political_knowledge

En términos de conocimientos políticos, Blair es considerado mejor.


Matriz de covarianza.

Matriz de correlación.

Mapa de calor-

La multicolinealidad es un problema importante que puede perjudicar al modelo. El mapa de calor es una
buena forma de identificar este problema. Nos da una idea básica de la relación que guardan entre sí las
variables.
Observaciones-
 La mayor correlación positiva se da entre "economic_cond_national" y "economic_cond_household"
(35%). Pero lo bueno es que no es enorme.
 La mayor correlación negativa se da entre "Blair" y "Europa" (30%), pero tampoco es enorme.

Por lo tanto, la multicolinealidad no será un problema en este conjunto de datos.

Comprobación/tratamiento de valores atípicos

Usando boxplot-

Existen valores atípicos en las variables "economic_cond_national" y "economic_cond_household" que


pueden observarse en los gráficos de caja.
Encontraremos los límites superior e inferior para tener una idea clara de los valores atípicos.
Los límites superior e inferior no están tan alejados entre sí y los valores atípicos se encuentran sólo en el
lado inferior, con un valor de 1, mientras que el límite inferior es de 1,5.
Por lo tanto, no es aconsejable tratar los valores atípicos en este caso.
Avanzaremos sin tratar los valores atípicos.

1.3 Codificar los datos (con valores de cadena) para su modelización. ¿Es
necesaria o no la ampliación? División de datos: Dividir los datos en
entrenamiento y prueba (70:30).
Codificación del conjunto de datos

Como muchos modelos de aprendizaje automático no pueden trabajar con valores de cadena,
codificaremos las variables categóricas y convertiremos sus tipos de datos en enteros.
A partir de la información del conjunto de datos, sabemos que hay 2 variables de tipo categórico, por lo
que necesitamos codificar estas 2 variables con la técnica adecuada.
Esas 2 variables son "voto" y "género". Su distribución se indica a continuación.

Distribución por sexos


Distribución de votos.

De los resultados anteriores se desprende que ambas variables contienen sólo dos clasificaciones de datos.
Podemos utilizar una simple conversión categórica (pd.Categorical() o codificación ficticia con drop_first = True,
ambos funcionarán aquí) Esto convertirá los valores en 0 y 1. Como no hay nivel ni orden en la subcategoría,
cualquier codificación dará el mismo resultado.
El tipo de datos después de la conversión es formato int8 podemos convertir estos a formato int64, funcionará
incluso si no lo cambiamos a int64.

Después de codificar...

Información-

Datos-

Ahora, el modelo puede construirse a partir de estos datos.

Ampliación del conjunto de datos


El escalado se realiza de modo que los datos que pertenecen a una amplia variedad de rangos puedan
reunirse en un rango relativo similar y así obtener el mejor rendimiento del modelo.
Generalmente, realizamos el Escalado de Características mientras tratamos con los Algoritmos Basados
en el Descenso Gradiente como la Regresión Lineal y Logística ya que estos son muy sensibles al rango
de puntos de datos. Además, es muy útil para comprobar y reducir la multicolinealidad en los datos. VIF
(Variance Inflation Factor) es un valor que indica la presencia de multicolinealidad. Este valor sólo puede
calcularse después de construir el modelo de regresión.
Por tanto, depende totalmente del modelo que construyamos si es necesario escalar o no. Normalmente,
los métodos basados en la distancia (por ejemplo, KNN) requieren un escalado, ya que son sensibles a las
diferencias extremas y pueden provocar un sesgo. Sin embargo, el método basado en árboles (p. ej.,
árboles de decisión) no requeriría escalado en general, ya que es innecesario (porque utiliza el método de
división).

Aquí realizaremos el escalado en ambos tipos de modelos y comprobaremos si hay alguna diferencia en el
rendimiento del modelo.
Además, tras observar los datos, sólo necesitamos escalar la variable "edad", ya que el resto de las
variables se encuentran en el intervalo 0-10 como máximo.
Utilizaremos aquí el escalado Z-core para escalar la variable edad.
Tras el escalado mediante puntuación z o escalado estándar en el que media=0 y desviación estándar=1.

División de datos: Dividir los datos en prueba y entrenamiento

Antes de dividir necesitamos encontrar la variable objetivo. En este caso, la variable objetivo es "voto".
Distribución de datos de voto.

Hay un desequilibrio de datos en la variable como se ha visto anteriormente, por lo que no podemos
dividirla en una proporción 50:50, sino que dividiremos los datos en una proporción 70:30. También
utilizaremos la técnica de sobremuestreo SMOTE para comprobar si mejora o no el modelo.

En este caso, utilizaremos 2 conjuntos de entrenamiento y prueba diferentes, uno sin datos escalados y
otro con datos escalados. Esto nos ayudará a comprender si el escalado puede mejorar el rendimiento o
no.

Ahora dividimos los datos X e y en la proporción 70:30, donde los datos de entrenamiento son el 70% y los
datos de prueba son el 30%.
Tras la división: la forma de los datos

Toma,
X_train - denota el 70% del conjunto de datos de entrenamiento con 8 columnas (excepto la columna
objetivo llamada "voto").
X_test- denota el 30% del conjunto de datos de prueba con 8 columnas (excepto la columna objetivo
llamada "voto").
y_train- denota el conjunto de datos de entrenamiento del 70% con sólo la columna objetivo llamada
"voto".
y_test- denota el 30% del conjunto de datos de prueba con sólo la columna objetivo llamada "voto".

Del mismo modo, los datos se dividen en datos escalados y datos de sobremuestreo SMOTE.

1.4 Aplicar la regresión logística y el LDA (análisis discriminante lineal).


Interprete las inferencias de ambos modelos.
Modelo de regresión logística

Antes de ajustar el modelo, es importante conocer los hiperparámetros que intervienen en su construcción.
Parámetros:
- sanción
- solucionador
- max_iter
- tol, etc.
Para encontrar la mejor combinación entre estos parámetros utilizaremos el método "GridSearchCV". Este
método puede realizar múltiples combinaciones de estos parámetros simultáneamente y puede
proporcionarnos los mejores resultados óptimos.
Tras realizar la búsqueda, los mejores parámetros resultaron ser-

Ahora los resultados para datos sin escalar-

La intercepción para el modelo es: [2.83418594]


Importancia de las características

Precisión del tren - 0,8303655107778819


Precisión de la prueba - 0,8537117903930131

Probabilidades en el conjunto de pruebas (0 si prefiere el Partido Conservador y 1 si prefiere el Partido


Laborista)
Ahora los resultados de los datos escalados

La intercepción para el modelo es: [2.01329492]


Importancia de las características

Precisión del tren - 0,8303655107778819


Precisión de la prueba - 0,8493449781659389

Probabilidades en el conjunto de pruebas


Statsmodels también se puede utilizar aquí en la construcción del modelo de regresión logística a más
sobre las estadísticas del modelo en el fondo.

Inferencias
Pseudo R2 = 0,3809 muestra que el modelo funciona realmente bien, ya que el valor entre 0,2 - 0,4
muestra que un modelo funciona bien.
El modelo funciona ligeramente bien con los datos sin escalar.
No hay ajuste insuficiente ni ajuste excesivo, ya que la precisión de los datos de prueba y de los datos de
entrenamiento no es muy diferente.

También realicé SMOTE (técnica de sobremuestreo), cuyo resultado se analiza más adelante en la
comparación de modelos de rendimiento.

Modelo LDA (análisis discriminante lineal)

Antes de ajustar el modelo, es importante conocer los hiperparámetros que intervienen en su construcción.
Parámetros:
- solucionador
- encogimiento
Ahora, después de realizar el GridSearchCV, los mejores parámetros obtenidos son-.
 contracción = 'auto'
 solver = 'lsqr'
Ahora los resultados para datos sin escalar-

La intercepción para el modelo es: [3.72460468]


Importancia de las características

Precisión del tren: 0,8284910965323337


Precisión de la prueba: 0,851528384279476

Probabilidades en el conjunto de pruebas

Ahora los resultados de los datos escalados

La intercepción para el modelo es: [2.48783541]


Importancia de las características

Precisión del tren: 0,828491096532333


Precisión de la prueba: 0,851528384279476

Probabilidades en el conjunto de pruebas


Inferencias
El modelo funcionó bien y la precisión de los datos escalados y no escalados es la misma.

También realicé SMOTE (técnica de sobremuestreo), cuyo resultado se analiza más adelante en la
comparación de modelos de rendimiento.

1.5. Aplicar el modelo KNN y el modelo Naïve Bayes. Interprete las inferencias
de cada modelo.

Modelo K de vecinos más próximos

KNN es un algoritmo de aprendizaje automático supervisado basado en la distancia que puede utilizarse
para resolver problemas tanto de clasificación como de regresión. La principal desventaja de este modelo
es que se vuelve muy lento cuando hay un gran volumen de datos y, por lo tanto, lo convierte en una
opción poco práctica cuando hay que hacer inferencias rápidamente.

Antes de ajustar el modelo, es importante conocer los hiperparámetros que intervienen en su construcción.
Parámetros:
- n_vecinos
- pesos
- algoritmo
Ahora después de realizar el "GridSearchCV", los mejores parámetros obtenidos son-
- n_vecinos' = 5,
- 'pesos' = uniforme,
- algoritmo' = auto

Ahora los resultados para datos sin escalar-

Precisión del tren: 0,8369259606373008


Precisión de la prueba: 0,8165938864628821

Probabilidades en el conjunto de pruebas


Ahora los resultados de los datos escalados

Precisión del tren: 0,8603561387066542


Precisión de la prueba: 0,8384279475982532

Probabilidades en el conjunto de pruebas

Inferencia-
El modelo funcionó mejor con los datos escalados.
En general, el modelo ha funcionado bien, pero puede haber un ligero exceso de ajuste, ya que la
precisión es mayor en el conjunto de entrenamiento que en el de prueba.

Modelo Naive Bayes

Los clasificadores Naive Bayes son un modelo basado en la aplicación del teorema de Bayes con hipótesis
de independencia fuerte (ingenua) entre las características. Sin embargo, estos supuestos pueden no ser
el caso perfecto en la vida real.

Teorema de Bayes.
Aquí el método que vamos a utilizar es el método GaussianNB(), también conocido como BernoulliNB().
Este método requiere que todas las características sean de tipo categórico. Un supuesto general de este
método es que los datos siguen una distribución normal o gaussiana.
No hay parámetros específicos en este modelo como en otros, así que simplemente ajustaremos el
modelo con parámetros por defecto.

Ahora los resultados para datos sin escalar-

Precisión del tren: 0,8219306466729147


Precisión de la prueba: 0,8471615720524017

Probabilidades en el conjunto de pruebas

Ahora los resultados de los datos escalados

Precisión del tren: 0,8219306466729147


Precisión de la prueba: 0,8471615720524017

Probabilidades en el conjunto de pruebas


Inferencia-
El modelo funcionó exactamente igual tanto para los datos sin escalar como para los escalados.
Este modelo funcionó bien con los datos, sin sobreajustes ni infraajustes.

1.6 Model Tuning, Bagging (Random Forest debe aplicarse para Bagging), y
Boosting.
Ajuste de modelos

El ajuste es el proceso de maximizar el rendimiento de un modelo sin sobreajustarlo ni crear una varianza
demasiado alta. En el aprendizaje automático, esto se consigue seleccionando los "hiperparámetros"
adecuados.

La búsqueda en cuadrícula es uno de los métodos más habituales para optimizar los parámetros. Para
ello, se define un conjunto de parámetros y, a continuación, se evalúa el rendimiento para cada una de las
combinaciones de estos parámetros, mediante validación cruzada. Entonces, de entre aquellos

Los modelos como Bagging, Boosting, Gradient boosting, Cat boosting, etc. son propensos a subajustar o
sobreajustar los datos. La sobreadaptación significa que el modelo funciona muy bien en los datos de
entrenamiento, pero funciona relativamente mal en los datos de prueba. Un ajuste insuficiente significa que
el modelo funciona muy bien con los datos de prueba, pero funciona relativamente mal con los datos de
entrenamiento.

Modelo Bagging (utilizando el clasificador Random Forest)

El ensacado es una técnica de conjunto. Las técnicas de ensemble son las técnicas de aprendizaje
automático que combinan varios modelos base para obtener un modelo óptimo. El ensacado está
diseñado para mejorar el rendimiento de los algoritmos de aprendizaje automático existentes utilizados en
la clasificación estadística o la regresión. Se utiliza sobre todo con algoritmos basados en árboles. Se trata
de un método paralelo.

Cada clasificador base se entrena en paralelo con un conjunto de entrenamiento que se genera
extrayendo aleatoriamente, con reemplazo, N datos del entrenamiento. El conjunto de entrenamiento para
cada uno de los clasificadores base es independiente entre sí.

En este caso, utilizaremos random forest como clasificador base. Los hiperparámetros que se utilizarán en
el modelo son
- profundidad_máxima
- características_máximas
- min_muestras_hoja
- min_samples_split
- n_estimadores
Hay otros parámetros también, pero vamos a utilizar estos para gridsearch, resto valores por defecto.
Ahora después de realizar el "GridSearchCV", los mejores parámetros obtenidos son-
- ' profundidad_máx ' = 5,
- ' max_features ' = 7,
- ' min_muestras_hoja ' = 25,
- ' min_samples_split ' = 60,
- ' n_estimadores ' = 101

Ahora los resultados para datos sin escalar-

Precisión del tren: 0,8303655107778819


Precisión de la prueba: 0,834061135371179

Probabilidades en el conjunto de pruebas


Ahora los resultados de los datos escalados

Precisión del tren: 0,8303655107778819


Precisión de la prueba: 0,834061135371179

Probabilidades en el conjunto de pruebas

Inferencia-
El modelo funcionó exactamente igual tanto para los datos sin escalar como para los escalados.
Este modelo funcionó muy bien con los datos, sin sobreajustes ni infraajustes.

Modelo de refuerzo

El refuerzo también es una técnica de conjunto. Convierte a los alumnos débiles en alumnos fuertes. A
diferencia del bagging, es un método secuencial en el que el resultado de un aprendiz débil se convierte
en la entrada de otro y así sucesivamente, mejorando el rendimiento del modelo.
Cada vez que se aplica el algoritmo de aprendizaje básico, genera una nueva regla de predicción de
aprendizaje débil. Se trata de un proceso iterativo y el algoritmo boosting combina estas reglas débiles en
una única regla de predicción fuerte.
Los datos de entrada mal clasificados ganan un peso mayor y los ejemplos que se clasifican
correctamente pierden peso. Así, los futuros alumnos débiles se centran más en los ejemplos que los
anteriores alumnos débiles clasificaron mal. También son métodos basados en árboles.

Hay muchos tipos de técnicas de refuerzo disponibles y para este proyecto se van a utilizar las siguientes
técnicas de refuerzo.
1. ADA Boost (refuerzo adaptativo)
2. Impulso por gradiente
3. Impulso de gradiente extremo
4. CAT Boost (refuerzo categórico)

Modelo de refuerzo de la ADA

Este modelo se utiliza para aumentar la eficacia de los clasificadores binarios, pero ahora también se
utiliza para mejorar los clasificadores multiclase. AdaBoost puede aplicarse sobre cualquier método
clasificador para aprender de sus problemas y conseguir un modelo más preciso, por lo que se le
denomina el "mejor clasificador listo para usar".

Antes de ajustar el modelo, es importante conocer los hiperparámetros que intervienen en la construcción
del modelo.
Parámetros:
- algoritmo
- n_estimadores
Hay otros parámetros también, pero vamos a utilizar estos para gridsearch, resto valores por defecto.
Ahora después de realizar el "GridSearchCV", los mejores parámetros obtenidos son-
- ' algoritmo ' = ' SAMME',
- ' n_estimadores ' = 50

Ahora los resultados para datos sin escalar-

Precisión del tren: 0,8369259606373008


Precisión de la prueba: 0,8427947598253275

Probabilidades en el conjunto de pruebas

Ahora los resultados de los datos escalados


Precisión del tren: 0,8369259606373008
Precisión de la prueba: 0,8427947598253275

Probabilidades en el conjunto de pruebas

Inferencia-
El modelo funcionó exactamente igual tanto para los datos sin escalar como para los escalados.
Este modelo funcionó muy bien con los datos, sin sobreajustes ni infraajustes.

Modelo Gradient Boosting

Este modelo es igual que el modelo ADABoosting. Gradient Boosting funciona añadiendo secuencialmente
los predictores mal identificados y las predicciones mal ajustadas al conjunto, lo que garantiza la
corrección de los errores identificados previamente. La principal diferencia radica en lo que hace con el
valor mal identificado del aprendiz débil anterior. Este método intenta ajustar el nuevo predictor a los
errores residuales cometidos por el anterior.

Antes de ajustar el modelo, es importante conocer los hiperparámetros que intervienen en la construcción
del modelo.
Parámetros:
- Criterio
- pérdida
- n_estimadores
- características_máximas
- min_samples_split

Hay otros parámetros también, pero vamos a utilizar estos para gridsearch, resto valores por defecto.
Ahora después de realizar el "GridSearchCV", los mejores parámetros obtenidos son-

- 'criterio' = 'friedman_mse',
- 'pérdida' = 'exponencial',
- n_estimadores' = 50,
- 'max_features' = 8,
- min_samples_split' = 45

Ahora los resultados para datos sin escalar-


Precisión del tren: 0,865979381443299
Precisión de la prueba: 0,8493449781659389

Probabilidades en el conjunto de pruebas

Ahora los resultados de los datos escalados

Precisión del tren: 0,865979381443299


Precisión de la prueba: 0,8493449781659389

Probabilidades en el conjunto de pruebas

Inferencia-
El modelo funcionó exactamente igual tanto para los datos sin escalar como para los escalados.
En general, el modelo ha funcionado bien, pero puede haber un ligero exceso de ajuste, ya que la
precisión es mayor en el conjunto de entrenamiento que en el de prueba.

Modelo XGBoost (eXtreme Gradient Boosting)

Este modelo, como su nombre indica, se basa en el marco del gradient boosting. Sin embargo, XGBoost
mejora el marco GBM básico mediante la optimización de sistemas y mejoras algorítmicas. Utiliza
procesamiento paralelo y optimizaciones de RAM que pueden mejorar el funcionamiento del método
Gradient Boost hasta su punto máximo y de ahí su nombre "extremo".
Otra ventaja es que trata automáticamente los valores nulos pasando el parámetro "missing = NaN".
Otra diferencia es que XGB no contiene el parámetro 'min_sample_split' .
Antes de ajustar el modelo, es importante conocer los hiperparámetros que intervienen en la construcción
del modelo.
Parámetros:
- Profundidad_máxima
- Mín_hoja_muestras
- n_estimadores
- aprender_raro
Hay otros parámetros también, pero vamos a utilizar estos para gridsearch, resto valores por defecto.
Ahora después de realizar el "GridSearchCV", los mejores parámetros obtenidos son-
- 'max_depth': 4,
- 'min_muestras_hoja': 15,
- 'n_estimadores': 50,
- 'learning_rate': 0.1

Ahora los resultados para datos sin escalar-

Precisión del tren: 0,8847235238987816


Precisión de la prueba: 0,851528384279476

Probabilidades en el conjunto de pruebas

Ahora los resultados de los datos escalados

Precisión del tren: 0,8847235238987816


Precisión de la prueba: 0,851528384279476

Probabilidades en el conjunto de pruebas


Inferencia-
El modelo funcionó exactamente igual tanto para los datos sin escalar como para los escalados.
En general, el modelo ha funcionado bien, pero puede haber un ligero exceso de ajuste, ya que la
precisión es mayor en el conjunto de entrenamiento que en el de prueba.

Modelo CATBoosting

CATBoosting (CATegorical Boosting) es un algoritmo de aprendizaje automático que utiliza el refuerzo de


gradiente en árboles de decisión. Es una biblioteca de código abierto y no está disponible en el paquete
habitual de Sklearn. Tenemos que instalar el paquete por separado. CAT Boost puede gestionar una
enorme cantidad de datos categóricos que suelen ser un problema para la mayoría de los algoritmos de
aprendizaje automático. CATBoost es fácil de aplicar y muy potente. Proporciona excelentes resultados y
es muy rápido en la ejecución.

Hay un montón de parámetros para especificar, pero vamos a seguir adelante con los parámetros por
defecto.

Ahora los resultados para datos sin escalar-

Precisión del tren: 0,9381443298969072


Precisión de la prueba: 0,851528384279476

Probabilidades en el conjunto de pruebas


Ahora los resultados de los datos escalados

Precisión del tren: 0,9381443298969072


Precisión de la prueba: 0,851528384279476

Probabilidades en el conjunto de pruebas

Inferencia-
El modelo funcionó exactamente igual tanto para los datos sin escalar como para los escalados.
Hay una gran diferencia entre los valores de precisión de los datos de entrenamiento y los de prueba.
Hay sobreajuste de datos aquí, ya que la precisión de los datos de entrenamiento es mucho mayor que la
de los datos de prueba.
1.7 Métricas de rendimiento: Compruebe el rendimiento de las predicciones
en los conjuntos de entrenamiento y prueba utilizando la precisión, la matriz
de confusión, la curva ROC y obtenga la puntuación ROC_AUC para cada
modelo. Modelo final: Compare los modelos y escriba la inferencia de qué
modelo es el mejor/optimizado.
Métricas de rendimiento:

Por lo general, hay muchas métricas de rendimiento que se utilizan en la evaluación de la fuerza del
modelo para entender cómo ha funcionado el modelo, así como para tomar una decisión informada sobre
si seguir adelante con el modelo en el escenario en tiempo real o no.

Las normas industriales se basan generalmente en los siguientes métodos:


- Precisión de la clasificación.
- Matriz de confusión.
- Informe de clasificación.
- Área bajo la curva ROC (visualización) y puntuación AUC

Regresión logística

Antes de la ampliación
Precisión del tren: 0,8303655107778819
Precisión de la prueba: 0,8537117903930131

Matriz de confusión.

Para datos de trenes Para datos de prueba

Verdadero Negativo: 212 Falso positivo: 111 Verdadero Negativo: 94


Falsos positivos: 45
Falso negativo: 70 Verdadero positivo: 674 Falso negativo: 22 Verdadero
positivo: 297

Informe de clasificación
Para Train Set-
Para Test Set-

Área bajo la curva ROC y puntuación AUC:


Tanto para Formación como para Pruebas:

Regresión logística (Train) puntuación: 0,877 Resultado de la regresión logística (prueba):


0,916

Después de escalar...
Precisión del tren: 0,8303655107778819
Precisión de la prueba: 0,8493449781659389

Matriz de confusión.

Para datos de trenes Para datos de prueba

Verdadero Negativo: 211 Falsos positivos: 112 Verdadero Negativo: 94


Falsos positivos: 45
Falso negativo: 69 Verdadero positivo: 675 Falso negativo: 24 Verdadero
positivo: 295
Informe de clasificación
Para Train Set-

Para Test Set-

Área bajo la curva ROC y puntuación AUC:


Tanto para Formación como para Pruebas:

Regresión logística (Train) puntuación: 0,877 Resultado de la regresión logística


(prueba): 0,915
SMOTE -

Sin escalado Con Escala


Precisión del tren: 0,8245967741935484 Precisión del tren: 0,8138440860215054
Precisión de la prueba: 0,8427947598253275 Precisión de la prueba: 0,8384279475982532

----------------------------------------------------------------------------------------------------------------------------------------------

LDA (Análisis discriminante lineal)

Antes de la ampliación
Precisión del tren: 0,8284910965323337
Precisión de la prueba: 0,851528384279476

Matriz de confusión.
Para datos de trenes Para datos de prueba

Verdadero Negativo: 218 Falsos positivos: 105 Verdadero negativo: 100


Falsos positivos: 39
Falso negativo: 78 Verdadero positivo: 666 Falso negativo: 29 Verdadero
positivo: 290

Informe de clasificación
Para Train Set-
Para Test Set-

Área bajo la curva ROC y puntuación AUC:


Tanto para Formación como para Pruebas:

Puntuación LDA (Tren): 0,877 Puntuación LDA (Test): 0,915

Después de escalar
Precisión del tren: 0,8284910965323337
Precisión de la prueba: 0,851528384279476

Matriz de confusión.
Para datos de trenes Para datos de prueba

Verdadero Negativo: 218 Falsos positivos: 105 Verdadero negativo: 100


Falsos positivos: 39
Falso negativo: 78 Verdadero positivo: 666 Falso negativo: 29 Verdadero
positivo: 290
Informe de clasificación
Para Train Set-

Para Test Set-

Área bajo la curva ROC y puntuación AUC:


Tanto para Formación como para Pruebas:

Puntuación LDA (Tren): 0,877 Puntuación LDA (Test): 0,915

SMOTE -

Sin escalado Con Escala


Precisión del tren: 0,8245967741935484 Precisión del tren: 0,8125
Precisión de la prueba: 0,8427947598253275 Precisión de la prueba: 0,8296943231441049

----------------------------------------------------------------------------------------------------------------------------------------------

KNN (K vecinos más próximos)

Antes de la ampliación
Precisión del tren: 0,8369259606373008
Precisión de la prueba: 0,8165938864628821

Matriz de confusión.
Para datos de trenes Para datos de prueba

Verdadero Negativo: 219 Falsos positivos: 104 Verdadero Negativo: 84


Falsos positivos: 55
Falso negativo: 70 Verdadero positivo: 674 Falso negativo: 29 Verdadero
positivo: 290

Informe de clasificación
Para Train Set-

Para Test Set-

Área bajo la curva ROC y puntuación AUC:


Tanto para Formación como para Pruebas:

Puntuación KNN (Tren): 0,915 Puntuación KNN (Prueba): 0,867

Después de escalar...
Precisión del tren: 0,8603561387066542
Precisión de la prueba: 0,8384279475982532
Matriz de confusión.
Para datos de trenes Para datos de prueba

Verdadero Negativo: 239 Falso positivo: 84 Verdadero negativo: 95


Falsos positivos: 44
Falso negativo: 65 Verdadero positivo: 679 Falso negativo: 30 Verdadero
positivo: 289

Informe de clasificación
Para Train Set-

Para Test Set-


Área bajo la curva ROC y puntuación AUC:
Tanto para Formación como para Pruebas:

Puntuación KNN (Tren): 0,933 Puntuación KNN (Prueba): 0,877

SMOTE -

Sin escalado Con Escala


Precisión del tren: 0,8830645161290323 Precisión del tren: 0,8918010752688172
Precisión de la prueba: 0,8144104803493449 Precisión de la prueba: 0,8231441048034934

Bayes ingenuos

Antes de la ampliación
Precisión del tren: 0,8219306466729147
Precisión de la prueba: 0,8471615720524017

Matriz de confusión.
Para datos de trenes Para datos de prueba

Verdadero Negativo: 223 Falso positivo: 100 Verdadero Negativo: 101


Falsos positivos: 38
Falso negativo: 90 Verdadero positivo: 654 Falso negativo: 32 Verdadero
positivo: 287
Informe de clasificación
Para Train Set-

Para Test Set-

Área bajo la curva ROC y puntuación AUC:


Tanto para Formación como para Pruebas:

NB (Tren) puntuación: 0,874 Puntuación NB (Test): 0,910

Después de escalar...
Precisión del tren: 0,8219306466729147
Precisión de la prueba: 0,8471615720524017

Matriz de confusión.
Para datos de trenes Para datos de prueba

Verdadero Negativo: 223 Falso positivo: 100 Verdadero Negativo: 101


Falsos positivos: 38
Falso negativo: 90 Verdadero positivo: 654 Falso negativo: 32 Verdadero
positivo: 287

Informe de clasificación
Para Train Set-

Para Test Set-

Área bajo la curva ROC y puntuación AUC:


Tanto para Formación como para Pruebas:

NB (Tren) puntuación: 0,874 Puntuación NB (Test): 0,910


SMOTE -

Sin escalado Con Escala


Precisión del tren: 0,8205645161290323 Precisión del tren: 0,8077956989247311
Precisión de la prueba: 0,8362445414847162 Precisión de la prueba: 0,8253275109170306

----------------------------------------------------------------------------------------------------------------------------------------------
Embolsado

Antes de la ampliación
Precisión del tren: 0,8303655107778819
Precisión de la prueba: 0,834061135371179

Matriz de confusión.
Para datos de trenes Para datos de prueba

Verdadero Negativo: 201 Falsos positivos: 122 Verdadero Negativo: 83


Falsos positivos: 56
Falso negativo: 59 Verdadero positivo: 685 Falso negativo: 20 Verdadero
positivo: 299

Informe de clasificación
Para Train Set-

Para Test Set-


Área bajo la curva ROC y puntuación AUC:
Tanto para Formación como para Pruebas:

Puntuación de embolsado (tren): 0,891 Puntuación de la prueba de embolsado: 0,900

Después de escalar...
Precisión del tren: 0,8303655107778819
Precisión de la prueba: 0,834061135371179

Matriz de confusión.
Para datos de trenes Para datos de prueba

Verdadero Negativo: 201 Falsos positivos: 122 Verdadero Negativo: 83


Falsos positivos: 56
Falso negativo: 59 Verdadero positivo: 685 Falso negativo: 20 Verdadero
positivo: 299

Informe de clasificación
Para Train Set-
Para Test Set-

Área bajo la curva ROC y puntuación AUC:


Tanto para Formación como para Pruebas:

Puntuación de embolsado (tren): 0,891 Puntuación de la prueba de embolsado: 0,900

SMOTE -

Sin escalado Con Escala


Precisión del tren: 0,831989247311828 Precisión del tren: 0,8259408602150538
Precisión de la prueba: 0,8078602620087336 Precisión de la prueba: 0,8100436681222707

----------------------------------------------------------------------------------------------------------------------------------------------

Aumento de la ADA

Antes de la ampliación
Precisión del tren: 0,8369259606373008
Precisión de la prueba: 0,8427947598253275

Matriz de confusión.
Para datos de trenes Para datos de prueba

Verdadero Negativo: 224 Falso positivo: 99 Verdadero negativo: 97


Falsos positivos: 42
Falso negativo: 75 Verdadero positivo: 669 Falso negativo: 30 Verdadero
positivo: 289
Informe de clasificación
Para Train Set-

Para Test Set-

Área bajo la curva ROC y puntuación AUC:


Tanto para Formación como para Pruebas:

Puntuación de ADABoost (tren): 0,889 Puntuación de ADABoost (Prueba): 0,906

Después de escalar...
Precisión del tren: 0,8369259606373008
Precisión de la prueba: 0,8427947598253275

Matriz de confusión.
Para datos de trenes Para datos de prueba

Verdadero Negativo: 224 Falso positivo: 99 Verdadero negativo: 97


Falsos positivos: 42
Falso negativo: 75 Verdadero positivo: 669 Falso negativo: 30 Verdadero
positivo: 289

Informe de clasificación
Para Train Set-

Para Test Set-

Área bajo la curva ROC y puntuación AUC:


Tanto para Formación como para Pruebas:

Puntuación de ADABoost (tren): 0,889 Puntuación de ADABoost (Prueba): 0,906


SMOTE -

Sin escalado Con escala


Precisión del tren: 0,842741935483871 Precisión del tren: 0,8185483870967742
Precisión de la prueba: 0,8362445414847162 Precisión de la prueba: 0,8013100436681223

----------------------------------------------------------------------------------------------------------------------------------------------
Refuerzo de gradiente

Antes de la ampliación
Precisión del tren: 0,865979381443299
Precisión de la prueba: 0,8493449781659389

Matriz de confusión.
Para datos de trenes Para datos de prueba
Verdadero Negativo: 229 Falso positivo: 94 Verdadero Negativo: 94
Falsos positivos: 45
Falso negativo: 49 Verdadero positivo: 695 Falso negativo: 24 Verdadero
positivo: 295

Informe de clasificación
Para Train Set-
Para Test Set-

Área bajo la curva ROC y puntuación AUC:


Tanto para Formación como para Pruebas:
Puntuación de Gradient Boost (Train): 0,933 Puntuación de Gradient Boost (Test): 0,915

Después de escalar...
Precisión del tren: 0,865979381443299
Precisión de la prueba: 0,8493449781659389

Matriz de confusión.
Para datos de trenes Para datos de prueba
Verdadero Negativo: 229 Falso positivo: 94 Verdadero Negativo: 94
Falsos positivos: 45
Falso negativo: 49 Verdadero positivo: 695 Falso negativo: 24 Verdadero
positivo: 295

Informe de clasificación
Para Train Set-
Para Test Set-

Área bajo la curva ROC y puntuación AUC:


Tanto para Formación como para Pruebas:

Puntuación de Gradient Boost (Train): 0,933 Puntuación de Gradient Boost (Test): 0,915

SMOTE -

Sin escalado Con Escala


Precisión del tren: 0,8716397849462365 Precisión del tren: 0,8595430107526881
Precisión de la prueba: 0,8296943231441049 Precisión de la prueba: 0,8296943231441049

----------------------------------------------------------------------------------------------------------------------------------------------

XGBoost

Antes de la ampliación
Precisión del tren: 0,8847235238987816
Precisión de la prueba: 0,851528384279476

Matriz de confusión.
Para datos de trenes Para datos de prueba

Verdadero Negativo: 242 Falso positivo: 81 Verdadero negativo: 96


Falsos positivos: 43
Falso negativo: 42 Verdadero positivo: 702 Falso negativo: 25 Verdadero
positivo: 294

Informe de clasificación
Para Train Set-

Para Test Set-

Área bajo la curva ROC y puntuación AUC:


Tanto para Formación como para Pruebas:
Puntuación de XGBoost (tren): 0,941 Puntuación de XGBoost (Prueba): 0,912
Después de escalar...
Precisión del tren: 0,8847235238987816
Precisión de la prueba: 0,851528384279476

Matriz de confusión.
Para datos de trenes Para datos de prueba

Verdadero Negativo: 242 Falso positivo: 81 Verdadero negativo: 96


Falsos positivos: 43
Falso negativo: 42 Verdadero positivo: 702 Falso negativo: 25 Verdadero
positivo: 294

Informe de clasificación
Para Train Set-

Para Test Set-

Área bajo la curva ROC y puntuación AUC:


Tanto para Formación como para Pruebas:

Puntuación de XGBoost (tren): 0,941 Puntuación de XGBoost (Prueba): 0,912


SMOTE -

Sin escalado Con Escala


Precisión del tren: 0,8803763440860215 Precisión del tren: 0,875
Precisión de la prueba: 0,8384279475982532 Precisión de la prueba: 0,8362445414847162

----------------------------------------------------------------------------------------------------------------------------------------------
CATBoost

Antes de la ampliación
Precisión del tren: 0,9381443298969072
Precisión de la prueba: 0,851528384279476

Matriz de confusión.
Para datos de trenes Para datos de prueba
Verdadero Negativo: 281 Falsos positivos: 42 Verdadero negativo: 97
Falsos positivos: 42
Falso negativo: 24 Verdadero positivo: 720 Falso negativo: 26 Verdadero

positivo: 293

Informe de clasificación
Para Train Set-

Para Test Set-

Área bajo la curva ROC y puntuación AUC:


Tanto para Formación como para Pruebas:

CATBoost (Tren) puntuación: 0.978 CATBoost (Test) puntuación: 0,914


Después de escalar...
Precisión del tren: 0,9381443298969072
Precisión de la prueba: 0,851528384279476

Matriz de confusión.
Para datos de trenes Para datos de prueba

Verdadero Negativo: 281 Falsos positivos: 42 Verdadero negativo: 97


Falsos positivos: 42
Falso negativo: 24 Verdadero positivo: 720 Falso negativo: 26 Verdadero
positivo: 293

Informe de clasificación
Para Train Set-

Para Test Set-


Área bajo la curva ROC y puntuación AUC:
Tanto para Formación como para Pruebas:

CATBoost (Tren) puntuación: 0.978 CATBoost (Prueba) puntuación: 0,914

SMOTE -
Sin escalado Con Escala
Precisión del tren: 0,9455645161290323 Precisión del tren: 0,9401881720430108
Precisión de la prueba: 0,834061135371179 Precisión de la prueba:
0,8318777292576419

----------------------------------------------------------------------------------------------------------------------------------------------

Comparación de modelos
Se trata de un proceso mediante el cual compararemos todos los modelos construidos y encontraremos el
mejor optimizado entre ellos. Hay un total de 9 tipos diferentes de modelos, cada uno de los cuales se
construye 4 veces de la siguiente manera -
- Sin escala
- Con escala
- Smote Sin Escala
- Smote With Scale.
En total, 36 modelos.

Las bases sobre las que se evalúan los modelos se conocen como métricas de rendimiento. Las métricas
sobre las que se evaluará el modelo son-
- Precisión
- AUC
- Recordatorio
- Precisión
- Puntuación F1

Sin escalado
De lo anterior-
- Según la precisión, la regresión logística obtuvo mejores resultados que las demás.
- Según la puntuación AUC, la regresión logística obtuvo mejores resultados que las demás.
- Basado en Recall - Bagging obtuvo resultados ligeramente mejores que los demás.
- Basándose en la precisión, Naive Bayes obtuvo resultados ligeramente mejores que los demás.
- Basándose en la puntuación F1-, la regresión logística, junto con algunas otras, obtuvo buenos
resultados.

Todos los modelos funcionaron bien, con ligeras diferencias que oscilan entre el (1-5%).

Con Escala-

De lo anterior-
- Según la precisión, LDA y XGBoost obtuvieron mejores resultados que los demás.
- Basándose en la puntuación AUC, la regresión logística y el LDA obtuvieron mejores resultados
que los demás.
- Basado en Recall - Bagging obtuvo resultados ligeramente mejores que los demás.
- Basándose en la precisión, Naive Bayes obtuvo resultados ligeramente mejores que los demás.
- Basándose en la puntuación F1-, la regresión logística, junto con algunas otras, obtuvo buenos
resultados.

Métricas de rendimiento de Smote-


Aquí, la comparación se basa únicamente en los valores de Precisión. Esto ayudará a comprender si el
uso de Smote tiene un efecto positivo o no.

Smote sin escalar-

De lo anterior-
- En cuanto a la precisión, la regresión logística obtuvo mejores resultados que las demás.

Smote With Scaling-


De lo anterior-
- En cuanto a la precisión, la regresión logística obtuvo mejores resultados que las demás.

Observaciones-
- De las 4 tablas anteriores se puede observar que el uso de smote no aumentó el rendimiento
de los modelos. En general, los modelos sin Smote obtuvieron buenos resultados tanto para los
datos escalados como para los no escalados. Por lo tanto, no sirve de nada aplicar smote aquí.
- En cuanto a los modelos de datos escalados y no escalados, el escalado sólo mejoró el
rendimiento de los algoritmos basados en la distancia para otros disminuyó ligeramente el
rendimiento en general. En este caso, sólo el modelo KNN de datos escalados obtuvo
resultados ligeramente mejores que el modelo KNN sin escalar.
- Modelo mejor optimizado - En base a todas las comparaciones y métricas de rendimiento,
"Regresión logística" sin escalado obtuvo el mejor resultado de todos.

1.8) Basándose en su análisis y trabajando sobre el problema empresarial,


detalle las ideas y recomendaciones apropiadas para ayudar a la dirección a
resolver el objetivo empresarial.

Inferencias
- La regresión logística fue el mejor modelo de todos los construidos.
- Ecuación de regresión logística para el modelo:
(3,05008) * Intercepción + (-0,01891) * edad + (0,41855) * vínculo_económico_nacional +
(0,06714) * vínculo_económico_hogar + (0,62627) * Blair + (-0,83974) * Hague + (- 0,21413) *
Europa + (-0,40331) * conocimiento_político + (0,10881) * sexo

La ecuación anterior ayuda a comprender el modelo y la importancia de las características, cómo


contribuye cada una de ellas al resultado previsto.

Las 5 características principales del modelo de regresión logística en orden decreciente de importancia
son...
1. La Haya : |-0.8181846212178241|
2. Blair : |0.5460018962250501|
3. economic_cond_national : |0.37700497490783885|
4. conocimiento_político : |-0.3459485608005413|
5. Europa : |-0.19691071679312278|

Ideas y recomendaciones

Nuestro principal objetivo de negocio es - "Construir un modelo, para predecir a qué partido votará un
elector en base a la información dada, para crear una encuesta a pie de urna que ayude a predecir la
victoria global y los escaños cubiertos por un partido en particular".

 Utilización del modelo de regresión logística sin escalado para predecir el resultado, ya que
presenta el mejor rendimiento optimizado.
 El ajuste de los hiperparámetros es un aspecto importante de la construcción de modelos. Esto
tiene sus limitaciones, ya que para procesar estas combinaciones se necesita una enorme potencia
de procesamiento. Pero si el ajuste puede hacerse con muchos conjuntos de parámetros, entonces
podríamos obtener resultados aún mejores.
 Recopilar más datos también ayudará a entrenar los modelos y, por tanto, a mejorar su capacidad
de predicción.
 Los modelos de refuerzo también pueden dar buenos resultados, como CATBoost, incluso sin
ajuste. Por lo tanto, si realizamos un ajuste de los hiperparámetros podríamos obtener mejores
resultados.
 También podemos crear una función en la que todos los modelos predigan el resultado de forma
secuencial. Esto ayudará a comprender mejor y la probabilidad de cuál será el resultado.
Problema 2- En este proyecto en particular, vamos a trabajar en los corpus inaugurales del nltk
en Python. Examinaremos los siguientes discursos de los Presidentes de los Estados Unidos de
América:
1. El Presidente Franklin D. Roosevelt en 1941
2. El Presidente John F. Kennedy en 1961
3. El Presidente Richard Nixon en 1973

2.1 Halla el número de caracteres, palabras y frases de los documentos


mencionados.
Personajes
Personajes del discurso de Franklin D. Roosevelt: 7571
Personajes del discurso de John F. Kennedy: 7618
Personajes del discurso de Richard Nixon: 9991

Palabras
Palabras del discurso de Franklin D. Roosevelt: 1536
Palabras del discurso de John F. Kennedy: 1546
Palabras del discurso de Richard Nixon: 20208

Frases
Frases del discurso de Franklin D. Roosevelt: 68
Frases del discurso de John F. Kennedy: 52
Frases del discurso de Richard Nixon: 69

2.2 Elimine todas las stopwords de los tres discursos.


Para eliminar las palabras clave, existe un paquete llamado "stopwords" en la biblioteca nltk.corpus.
Para ello necesitamos importar las siguientes librerías-
- from nltk.corpus import stopwords
- from nltk.stem.porter import PorterStemmer

La biblioteca de stopwords contiene todas las palabras de parada como 'y', 'a', 'es', 'a', 'es', '.', 'de', 'a', etc.,
que normalmente no tienen ninguna importancia para comprender el sentimiento o utilidad en algoritmos
de aprendizaje automático. Estas stopwords presentes en el paquete son stopwords universalmente
aceptadas y podemos añadirlas utilizando la función (.extend()) o eliminarlas según nuestras necesidades.

Además, debemos especificar el lenguaje con el que trabajamos antes de definir las funciones, ya que
existen muchos paquetes de lenguajes. Aquí utilizaremos el inglés.

El "stemming" es un proceso que ayuda al procesador a comprender las palabras que tienen un significado
similar. En este caso, las palabras se reducen a su base o raíz eliminando los afijos. Es muy utilizado en
los motores de búsqueda. Por ejemplo: eating, eats, eaten, todos estos se reducirán a eat después de la
derivación.

Algunas de las palabras eliminadas son


2.3 ¿Qué palabra aparece más veces en el discurso de investidura de cada
presidente? Mencione las tres primeras palabras (después de eliminar las
stopwords)

Resultados después de eliminar las palabras vacías y el stemming.

 Por el discurso de Franklin D. Roosevelt:

Aquí "peopl", "spirit", "life" y "democraci" se encuentran en3er lugar por el mismo número de
apariciones.
Palabra más utilizada: Nación.

 Por el discurso de John F. Kennedy:

La palabra más recurrente: Let.

 Por el discurso de Richard Nixon:

La palabra que más aparece: Nosotros.

2.4 Traza la nube de palabras de cada uno de los discursos de la variable.


(después de eliminar las stopwords)
Nube de palabras es una técnica de visualización de datos utilizada para representar datos de texto en
la que el tamaño de cada palabra indica su frecuencia o importancia. Para generar nubes de palabras
necesitamos el paquete word-cloud. Por defecto no está instalado en el kernel, así que tenemos que
instalarlo.
Una vez importado el paquete, eliminaremos de nuevo las palabras de parada, pero no realizaremos el
stemming. Como la eliminación de las palabras de parada eliminaría el filtro las palabras no deseadas
que posiblemente no tienen análisis de sentimiento.

Nube de palabras del discurso de Roosevelt:

Podemos ver algunas palabras destacadas como "nación", "saber", "pueblo", etc. que observamos como
palabras principales en la pregunta anterior. Esto demuestra que cuanto mayor es el tamaño, mayor es la
frecuencia.
Nube de palabras del discurso de Kennedy:
Nube de palabras del discurso de Nixon:

Perspectivas -
 Nuestro objetivo era examinar los 3 discursos y analizarlos. Encontrar la fuerza y el
sentimiento de los discursos.
 Basándonos en los resultados podemos ver que hay algunas palabras similares que están
presentes en todos los discursos.
 Estas palabras pueden el punto que inspiró a las muchas personas y también conseguir
que el asiento del presidente de los Estados Unidos de América
 Entre todos los discursos, "nación" es la palabra que más se destaca en los tres.

You might also like