Introducción a conceptos básicos de aprendizaje automático y algoritmos comunes [aprendizaje automático, modelos comunes]

Conceptos básicos y algoritmos del aprendizaje automático.

El aprendizaje automático es una rama de la informática que se centra en dotar a los sistemas informáticos de la capacidad de aprender y mejorar a partir de datos sin tener que programarlos explícitamente. El aprendizaje automático es fundamentalmente diferente de la programación tradicional.

La diferencia entre el aprendizaje automático y la programación tradicional

Programación tradicional:
en la programación tradicional, los desarrolladores escriben reglas e instrucciones detalladas que le indican a la computadora cómo realizar tareas. Las reglas están codificadas y el comportamiento del programa se define de antemano.

def add_numbers(a, b):
    return a + b

En el ejemplo anterior, demostramos 明确指定el comportamiento de una función que realiza una operación de suma de dos números .

Aprendizaje automático:
por el contrario, el aprendizaje automático utiliza datos para entrenar un modelo, que aprende automáticamente tareas basadas en los datos . El comportamiento del modelo se deriva de los datos en lugar de estar codificado. Esto hace que el aprendizaje automático sea muy útil cuando se trata de tareas complejas, ambiguas o que requieren grandes cantidades de datos.

# 一个简单的线性回归模型
from sklearn.linear_model import LinearRegression

model = LinearRegression()
model.fit(X, y)

En este ejemplo, el modelo aprende una relación lineal a partir de los datos sin escribir explícitamente las reglas para la suma.

Aprendizaje supervisado, aprendizaje no supervisado y aprendizaje por refuerzo.

El aprendizaje automático se puede dividir en tres categorías principales:

  • aprendizaje supervisado
  • aprendizaje sin supervisión
  • aprendizaje reforzado

La diferencia entre ellos es 数据y 任务类型.

aprendizaje supervisado

El aprendizaje supervisado es uno de los tipos más comunes de aprendizaje automático. En este caso, el modelo aprende de los datos de entrada y las etiquetas correspondientes (o salidas). La tarea del modelo es predecir etiquetas para datos desconocidos .

Escenario de aplicación:
clasificación de imágenes: el modelo predice los objetos o escenas contenidos en la imagen en función de sus valores de píxeles.

# 一个图像分类示例
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

# 加载手写数字数据集
data = load_digits()
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2)

# 创建一个逻辑回归分类器
classifier = LogisticRegression()
classifier.fit(X_train, y_train)

# 预测测试数据
predictions = classifier.predict(X_test)

aprendizaje sin supervisión

El aprendizaje no supervisado no implica etiquetas; el modelo tiene la tarea de descubrir patrones y estructuras en los datos . Este tipo de aprendizaje se utiliza normalmente para 聚类y 降维.

Casos de uso:
Agrupación: agrupar puntos de datos similares, como segmentación de mercado o análisis de redes sociales.

# 一个K均值聚类示例
from sklearn.cluster import KMeans

# 创建一个K均值聚类器
kmeans = KMeans(n_clusters=3)
kmeans.fit(X)

# 获取每个样本的簇分配
cluster_assignments = kmeans.labels_

aprendizaje reforzado

El aprendizaje por refuerzo implica que un agente aprenda estrategias de comportamiento óptimas a través de la interacción con el entorno. El agente actúa, observa la retroalimentación del entorno y 反馈mejora su comportamiento en consecuencia.

Escenario de aplicación:
Conducción autónoma: los vehículos inteligentes aprenden estrategias de conducción óptimas a través de la interacción con el entorno de la carretera.

# 一个强化学习示例
import gym

# 创建CartPole环境
env = gym.make('CartPole-v1')

# 初始化Q学习表
q_table = np.zeros([env.observation_space.shape[0], env.action_space.n])

# Q学习训练

Algoritmos comunes de aprendizaje automático

Los algoritmos de aprendizaje automático son los componentes básicos de los modelos de aprendizaje automático y se eligen en función de diferentes tareas y tipos de datos. A continuación se muestran algunos algoritmos comunes de aprendizaje automático:

regresión lineal

La regresión lineal se utiliza para modelar la relación lineal entre las variables de entrada y las variables de salida. Es adecuado para problemas de regresión donde las salidas son valores continuos .

Escenario de aplicación:
Predicción del precio de la vivienda: predicción de los precios de la vivienda en función de las características de la misma.

# 一个线性回归示例
from sklearn.linear_model import LinearRegression

# 创建一个线性回归模型
model = LinearRegression()

# 拟合模型
model.fit(X, y)

# 进行预测
predictions = model.predict(new_data)

árbol de decisión

Un árbol de decisión es un modelo similar a un árbol que se utiliza para clasificación y regresión . Divide los datos en múltiples subconjuntos, cada subconjunto correspondiente a una ruta de decisión.

Escenario de aplicación:
Predicción de abandono de clientes: prediga si un cliente abandonará en función de su comportamiento histórico.

# 一个决策树分类示例
from sklearn.tree import DecisionTreeClassifier

# 创建一个决策树分类器
classifier =

 DecisionTreeClassifier()

# 拟合模型
classifier.fit(X, y)

# 进行预测
predictions = classifier.predict(new_data)

Máquinas de vectores de soporte

La máquina de vectores de soporte es un potente algoritmo que se utiliza para clasificación y regresión. Divide los datos encontrando el hiperplano óptimo.

Escenario de aplicación:
Clasificación de texto: clasifique datos de texto en diferentes categorías, como la detección de spam.

# 一个支持向量机分类示例
from sklearn.svm import SVC

# 创建一个支持向量机分类器
classifier = SVC()

# 拟合模型
classifier.fit(X, y)

# 进行预测
predictions = classifier.predict(new_data)

Redes neuronales

Una red neuronal es un 人脑结构modelo inspirado en capas de neuronas, cada una de las cuales contiene múltiples nodos.

Escenario de aplicación:
Reconocimiento de imágenes: identificación de objetos o escenas en imágenes.

# 一个简单的神经网络示例
import tensorflow as tf

# 创建一个神经网络模型
model = tf.keras.Sequential([
    tf.keras.layers.Dense(128, activation='relu', input_shape=(input_dim,)),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dense(output_dim, activation='softmax')
])

# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

# 训练模型
model.fit(X_train, y_train, epochs=10, batch_size=32)

# 进行预测
predictions = model.predict(new_data)

La diferencia entre el aprendizaje profundo y el aprendizaje automático tradicional

El aprendizaje profundo es una rama del aprendizaje automático que utiliza redes neuronales profundas para aprender y representar datos. En comparación con el aprendizaje automático tradicional, el aprendizaje profundo tiene las siguientes diferencias:

  1. Aprendizaje de funciones: el aprendizaje automático tradicional generalmente requiere la selección y extracción manual de funciones, mientras que el aprendizaje profundo puede aprender automáticamente representaciones de funciones a partir de datos, lo que reduce la necesidad de ingeniería de funciones.

  2. Relaciones no lineales complejas: el aprendizaje profundo puede modelar relaciones no lineales complejas, lo que lo convierte en un gran éxito en campos como el reconocimiento de imágenes y el procesamiento del lenguaje natural.

  3. Datos a gran escala: el aprendizaje profundo funciona bien en conjuntos de datos a gran escala, lo que requiere más datos para entrenar redes neuronales grandes.

  4. Recursos informáticos: el entrenamiento de modelos de aprendizaje profundo generalmente requiere una gran cantidad de recursos informáticos (como GPU o TPU) y tiempo, lo que es más intensivo desde el punto de vista computacional que los algoritmos tradicionales de aprendizaje automático.

  5. Naturaleza de caja negra: los modelos de aprendizaje profundo a menudo se consideran modelos de caja negra, lo que dificulta explicar sus procesos de toma de decisiones, mientras que los modelos tradicionales de aprendizaje automático son más fáciles de explicar y comprender.

Supongo que te gusta

Origin blog.csdn.net/qq_22841387/article/details/133432580
Recomendado
Clasificación