Basado en el caso de Python Random Forest: Dar amor a los demás

Todos sabemos que el amor no solo debe tener el corazón para amarte, sino también leña, arroz, aceite y sal. El mejor amor no es el viento y la nieve, sino el carbón en la nieve. Si un día amas no lo vas a creer. No sé a dónde deberías ir en los próximos días. Debes confiar en el amigo del analista de datos que tienes a tu lado. ¿Usará los datos para decirte a dónde ir enamorado?

1. Antecedentes del caso

案例背景

Un día, el primo de Xiao C, Xiao Q, fue a ver a Xiao C y le dijo que estaba un poco preocupado. El colega de Xiao Q le presentó al Sr. Z, que tiene 37 años y trabaja como empleado en un gobierno provincial. Trabajo, pero el estándar de Xiao Q para elegir un cónyuge es que el salario mensual de la otra parte es más de 5 w, sin mencionar el culto al dinero de Xiao Q, solo porque el mundo sabe que el arroz suave es fragante, pero no ha pasado mucho tiempo desde que me conocí, así que me avergüenza preguntarle directamente al Sr.z, así que lo acepté. No cambie de opinión sobre la posibilidad de interactuar con Mr.z en profundidad (para decirlo sin rodeos, no sé cuánto dinero tiene Mr.z), así que quiero que Xiao C me ayude a tomar una decisión. Como excelente analista de big data, Xiao C, Xiao C lo pensó durante mucho tiempo y descubrió que este asunto no es simple, sino que también necesita usar Python, pero también necesita construir un modelo, por lo que el pequeño C pensó de repente en el algoritmo del árbol de decisiones, a través de asociaciones, y luego pensó en bosques aleatorios, la inspiración apareció de repente, de repente recordó uno Buena idea, así que empezó. . . .

Preparación del conjunto de datos

Todo el mundo conoce un conjunto de datos bien conocido: el conjunto de datos para adultos, que incluye decenas de millones de datos de muestra. Los datos de muestra generalmente incluyen edad, naturaleza del trabajo, peso estadístico, educación, duración de la educación, estado civil, ocupación, educación familiar, raza, Género, ingresos de activos, pérdida de activos, horas de trabajo semanales, origen, ingresos, etc. Este conjunto de datos debería ser útil, así que descárguelo primero.
Enlace de descarga:
haga clic para descargar los datos de origen y
Inserte la descripción de la imagen aquí
cambiarle el nombre a adult.csv después de la descarga. El sufijo original es data, así que elimínelo directamente y obligue a cambiar a un archivo de formato csv.
Inserte la descripción de la imagen aquí

3. Lee los datos

import pandas as pd
data = pd.read_csv('D:\\Python\\adult.csv',header = None,index_col = False,
                  names = ['年龄','单位性质','权重','学历','受教育时长','婚姻状况','职业',
                           '家庭教育','种族','性别',
                           '资产所得','资产损失','周工作时长','原籍','收入'])
data_lite = data[['年龄','单位性质','学历','性别','周工作时长','职业','收入']]
data_lite.head()

Mostrar resultados de ejecución:
Inserte la descripción de la imagen aquí

4. Utilice get_dummies para procesar datos

Porque en el conjunto de datos, podemos ver que la naturaleza de la unidad, educación, ocupación, género e ingresos no son datos enteros, sino una cadena, que es usar get_dummies para agregar variables ficticias al conjunto de datos existente para cambiar el conjunto de datos. En un formato utilizable. Las variables ficticias, también llamadas variables ficticias y códigos de característica discretos, se pueden utilizar para expresar el posible impacto de variables categóricas y factores no cuantitativos.

data_dummies = pd.get_dummies(data_lite)
print('样本原始特征:\n',list(data_lite.columns),'\n')
print('虚拟变量特征:\n',list(data_dummies.columns))

Visualización de los resultados en ejecución:
Inserte la descripción de la imagen aquí
A continuación, podemos ver los datos procesados:

data_dummies.head()

Ejecute los resultados del código:
Inserte la descripción de la imagen aquí

5. Dividir variables de características

Cada columna de datos se asigna al vector de características X y a la etiqueta de clasificación y, el código de entrada es el siguiente:

features = data_dummies.loc[:,'年龄':'职业_ Transport-moving']
X = features.values
y = data_dummies['收入_ >50K'].values #将收入大于50k的作为预测目标
print("代码运行结果:")
print('特征形态:{} 标签形态:{}'.format(X.shape,y.shape))

Visualización de resultado de ejecución de código:
Inserte la descripción de la imagen aquí

6. Cree un modelo de datos

Esta vez construiremos un modelo con un árbol de decisiones, tenemos 32 561 datos de muestra y 44 vectores de características.
1. Divida los datos en conjunto de entrenamiento y conjunto de prueba

from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,random_state = 0)

2. Ajuste los datos con un bosque aleatorio con una profundidad máxima de 5

from sklearn import tree
go_dating_tree = tree.DecisionTreeClassifier(max_depth = 5)
go_dating_tree.fit(X_train,y_train)
print('模型得分:{:.2f}'.format(go_dating_tree.score(X_test,y_test)))

Resultado de la operación: a partir de la
Inserte la descripción de la imagen aquí
predicción del modelo de bosque aleatorio anterior, podemos ver que el modelo obtuvo 0,8 puntos en el conjunto de prueba, lo que se puede decir que es muy bueno, es decir, la precisión de la precisión de la predicción de este modelo es del 80%. Creo que este modelo es para pequeños Q Proporcione suficientes referencias en el amor.

7. Predicción de amor

La predicción es predecir sus ingresos de acuerdo con la situación proporcionada por Xiao Q, a través del modelo construido por el bosque aleatorio, y ver si puede cumplir con el requisito de ingresos de Xiao Q por encima de 50w.
La siguiente es la información básica proporcionada por Xiao Q: El
señor Z tiene 37 años, trabaja en un gobierno provincial, tiene una maestría, es hombre, trabaja 40 horas a la semana y es un empleado profesional. Luego ingresamos los datos correspondientes y hacemos predicciones a través del modelo. Ingrese el código de la siguiente manera:

Mr_z = [[37,40,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0]]
dating_dec = go_dating_tree.predict(Mr_z)
print("代码运行结果:")
print("=================================\n")
if dating_dec ==1:
    print("大胆去追求真爱吧,这哥们牛批!")
else:
    print("不用去了,不满足你的要求!")

resultado de la operación:
Inserte la descripción de la imagen aquí

8. Análisis de resultados

A través de la predicción del modelo de datos, los resultados se muestran de la siguiente manera. Sí, la máquina le dijo fríamente a Xiao Q un hecho cruel de que el Sr. Z no cumplía con sus requisitos. Por supuesto, por sentido común, también sabía que los ingresos del personal civil no superarían los 5 W. Comprenda que no hay corrupción ni soborno en China.

9. Referencias

1. Comprensión profunda de la sección de aprendizaje automático de Python de la mano pequeña.

Supongo que te gusta

Origin blog.csdn.net/qq_44176343/article/details/109769179
Recomendado
Clasificación