Skip to content Skip to footer

AI中涉及到的算法汇总(精华)

AI中涉及到的算法汇总(精华)

涵盖的算法1. 监督学习算法2. 无监督学习算法3. 强化学习算法4. 深度学习算法5. 自然语言处理(NLP)算法6. 图算法7. 进化算法8. 优化算法9. 贝叶斯算法10. 其他算法

转载请标明出处: https://dujinyang.blog.csdn.net/ 本文出自:【奥特曼超人的博客】

优化方面可参考:《人工智能AI的优化与实际应用(Optimization)》

在人工智能(AI)领域,涉及的算法种类非常多,涵盖了不同的任务和应用。以下是一些常见的AI算法类型,仅供参考学习:

涵盖的算法

1. 监督学习算法

这些算法在有标签的数据上进行训练,目标是根据输入数据预测输出标签。常见的监督学习算法包括:

线性回归(Linear Regression)

#KARL-DUJINYANG

from sklearn.linear_model import LinearRegression

from sklearn.model_selection import train_test_split

from sklearn.datasets import make_regression

# 生成一个简单的回归数据集

X, y = make_regression(n_samples=100, n_features=1, noise=0.1)

# 切分数据集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建线性回归模型

model = LinearRegression()

# 训练模型

model.fit(X_train, y_train)

# 预测

y_pred = model.predict(X_test)

# 输出结果

print("模型的权重:", model.coef_)

print("模型的截距:", model.intercept_)

逻辑回归(Logistic Regression)

#KARL-DUJINYANG

from sklearn.linear_model import LogisticRegression

from sklearn.model_selection import train_test_split

from sklearn.datasets import load_iris

from sklearn.preprocessing import LabelBinarizer

# 加载数据集

iris = load_iris()

X = iris.data

y = LabelBinarizer().fit_transform(iris.target)[:, 0] # 转为二分类问题

# 切分数据集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建逻辑回归模型

model = LogisticRegression()

# 训练模型

model.fit(X_train, y_train)

# 预测

y_pred = model.predict(X_test)

# 输出准确率

print("模型准确率:", model.score(X_test, y_test))

支持向量机(SVM, Support Vector Machine)

#KARL-DUJINYANG

from sklearn.svm import SVC

from sklearn.datasets import load_iris

from sklearn.model_selection import train_test_split

# 加载数据集

iris = load_iris()

X = iris.data

y = iris.target

# 切分数据集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建支持向量机模型

model = SVC(kernel='linear')

# 训练模型

model.fit(X_train, y_train)

# 预测

y_pred = model.predict(X_test)

# 输出准确率

print("模型准确率:", model.score(X_test, y_test))

决策树(Decision Trees)

#KARL-DUJINYANG

from sklearn.tree import DecisionTreeClassifier

from sklearn.datasets import load_iris

from sklearn.model_selection import train_test_split

# 加载数据集

iris = load_iris()

X = iris.data

y = iris.target

# 切分数据集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建决策树模型

model = DecisionTreeClassifier()

# 训练模型

model.fit(X_train, y_train)

# 预测

y_pred = model.predict(X_test)

# 输出准确率

print("模型准确率:", model.score(X_test, y_test))

随机森林(Random Forest)

#KARL-DUJINYANG

from sklearn.ensemble import RandomForestClassifier

from sklearn.datasets import load_iris

from sklearn.model_selection import train_test_split

# 加载数据集

iris = load_iris()

X = iris.data

y = iris.target

# 切分数据集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建随机森林模型

model = RandomForestClassifier()

# 训练模型

model.fit(X_train, y_train)

# 预测

y_pred = model.predict(X_test)

# 输出准确率

print("模型准确率:", model.score(X_test, y_test))

k近邻算法(K-Nearest Neighbors, KNN)

#KARL-DUJINYANG

from sklearn.neighbors import KNeighborsClassifier

from sklearn.datasets import load_iris

from sklearn.model_selection import train_test_split

# 加载数据集

iris = load_iris()

X = iris.data

y = iris.target

# 切分数据集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建k近邻算法模型

model = KNeighborsClassifier(n_neighbors=3)

# 训练模型

model.fit(X_train, y_train)

# 预测

y_pred = model.predict(X_test)

# 输出准确率

print("模型准确率:", model.score(X_test, y_test))

神经网络(Neural Networks)

#KARL-DUJINYANG

from sklearn.neural_network import MLPClassifier

from sklearn.datasets import load_iris

from sklearn.model_selection import train_test_split

# 加载数据集

iris = load_iris()

X = iris.data

y = iris.target

# 切分数据集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建神经网络模型

model = MLPClassifier(hidden_layer_sizes=(10,))

# 训练模型

model.fit(X_train, y_train)

# 预测

y_pred = model.predict(X_test)

# 输出准确率

print("模型准确率:", model.score(X_test, y_test))

2. 无监督学习算法

这些算法用于没有标签的数据集,目标是从数据中发现模式或结构。 常见的无监督学习算法包括:

k均值聚类(K-Means Clustering)

#KARL-DUJINYANG

from sklearn.cluster import KMeans

import numpy as np

import matplotlib.pyplot as plt

from sklearn.datasets import make_blobs

# 生成示例数据

X, _ = make_blobs(n_samples=300, centers=4, random_state=42)

# 创建K均值模型,指定聚类的个数为4

kmeans = KMeans(n_clusters=4, random_state=42)

# 训练模型

kmeans.fit(X)

# 获取聚类的标签

y_kmeans = kmeans.predict(X)

# 绘制聚类结果

plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=50, cmap='viridis')

# 绘制聚类中心

centers = kmeans.cluster_centers_

plt.scatter(centers[:, 0], centers[:, 1], c='red', s=200, alpha=0.75, marker='X')

plt.show()

主成分分析(PCA, Principal Component Analysis)

#KARL-DUJINYANG

from sklearn.decomposition import PCA

from sklearn.datasets import load_iris

import matplotlib.pyplot as plt

# 加载数据集

iris = load_iris()

X = iris.data

y = iris.target

# 创建PCA模型,减少到2个主成分

pca = PCA(n_components=2)

# 进行PCA降维

X_pca = pca.fit_transform(X)

# 绘制PCA降维后的数据

plt.figure(figsize=(8,6))

scatter = plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y, cmap='viridis')

# 添加图例

plt.legend(handles=scatter.legend_elements()[0], labels=iris.target_names)

plt.xlabel('PCA Component 1')

plt.ylabel('PCA Component 2')

plt.title('PCA of Iris Dataset')

plt.show()

高斯混合模型(GMM, Gaussian Mixture Models)

#KARL-DUJINYANG

from sklearn.mixture import GaussianMixture

from sklearn.datasets import make_blobs

import numpy as np

import matplotlib.pyplot as plt

# 生成示例数据

X, _ = make_blobs(n_samples=300, centers=4, random_state=42)

# 创建高斯混合模型,假设有4个组件

gmm = GaussianMixture(n_components=4, random_state=42)

# 训练模型

gmm.fit(X)

# 获取聚类标签

y_gmm = gmm.predict(X)

# 绘制聚类结果

plt.scatter(X[:, 0], X[:, 1], c=y_gmm, s=50, cmap='viridis')

# 绘制高斯混合模型的均值

means = gmm.means_

plt.scatter(means[:, 0], means[:, 1], c='red', s=200, alpha=0.75, marker='X')

plt.title('Gaussian Mixture Model Clustering')

plt.show()

自编码器(Autoencoders)

#KARL-DUJINYANG

import numpy as np

from keras.layers import Input, Dense

from keras.models import Model

from sklearn.datasets import load_digits

from sklearn.model_selection import train_test_split

import matplotlib.pyplot as plt

# 加载数据集

digits = load_digits()

X = digits.data

y = digits.target

# 标准化数据-

X = X / 255.0

# 切分数据集

X_train, X_test = train_test_split(X, test_size=0.2, random_state=42)

# 自编码器的网络结构

input_dim = X.shape[1]

encoding_dim = 32 # 压缩后的维度

# 定义编码器

input_layer = Input(shape=(input_dim,))

encoded = Dense(encoding_dim, activation='relu')(input_layer)

# 定义解码器

decoded = Dense(input_dim, activation='sigmoid')(encoded)

# 定义自编码器模型

autoencoder = Model(input_layer, decoded)

# 编译模型

autoencoder.compile(optimizer='adam', loss='mean_squared_error')

# 训练自编码器

autoencoder.fit(X_train, X_train, epochs=50, batch_size=256, shuffle=True, validation_data=(X_test, X_test))

# 使用自编码器进行预测

decoded_imgs = autoencoder.predict(X_test)

# 绘制原始图片与重建后的图片进行比较

n = 10 # 显示前10个测试图片

plt.figure(figsize=(20, 4))

for i in range(n):

ax = plt.subplot(2, n, i + 1)

plt.imshow(X_test[i].reshape(8, 8), cmap='gray')

plt.gray()

ax.set_axis_off()

ax = plt.subplot(2, n, i + 1 + n)

plt.imshow(decoded_imgs[i].reshape(8, 8), cmap='gray')

plt.gray()

ax.set_axis_off()

plt.show()

3. 强化学习算法

强化学习(Reinforcement Learning, RL)通过奖励和惩罚机制来训练智能体,在动态环境中采取最优行动。常见的强化学习算法包括:

Q学习(Q-learning)深度Q网络(DQN, Deep Q Networks)策略梯度方法(Policy Gradient Methods)蒙特卡罗树搜索(MCTS, Monte Carlo Tree Search)

4. 深度学习算法

深度学习是基于神经网络的一个子领域,特别强调层次化的数据表示。常见的深度学习算法包括:

卷积神经网络(CNN, Convolutional Neural Networks)——常用于图像识别和视频分析。循环神经网络(RNN, Recurrent Neural Networks)——用于处理序列数据,如自然语言处理。长短时记忆网络(LSTM, Long Short-Term Memory)——RNN的一种改进,用于更好地处理长序列数据。生成对抗网络(GAN, Generative Adversarial Networks)——用于生成数据,如图像、音频或文本。

5. 自然语言处理(NLP)算法

自然语言处理是AI的一个重要领域,涉及文本和语言的理解和生成。常见的NLP算法包括:

词袋模型(Bag of Words, BoW)TF-IDF(词频-逆文档频率)(Term Frequency-Inverse Document Frequency)Word2Vec 和 GloVe——词嵌入方法BERT(Bidirectional Encoder Representations from Transformers)和GPT(Generative Pretrained Transformer)——用于文本生成和理解的预训练模型

6. 图算法

图算法处理与图结构(节点和边)相关的问题,常见的图算法包括:

Dijkstra算法——求解最短路径问题A*搜索算法——启发式搜索算法,常用于路径规划PageRank——Google的网页排名算法图卷积网络(GCN, Graph Convolutional Networks)

7. 进化算法

进化算法是基于自然选择的启发式优化算法,常用于求解复杂的优化问题。常见的进化算法包括:

遗传算法(Genetic Algorithm)遗传编程(Genetic Programming)差分进化算法(Differential Evolution)

8. 优化算法

这些算法主要用于解决最优化问题,如找到最优解或最小化/最大化某个目标函数。常见的优化算法包括:

梯度下降法(Gradient Descent)牛顿法(Newton’s Method)粒子群优化(PSO, Particle Swarm Optimization)模拟退火(Simulated Annealing),此算法有趣

9. 贝叶斯算法

贝叶斯算法利用概率模型进行推理和预测。常见的贝叶斯算法包括:

朴素贝叶斯分类器(Naive Bayes Classifier)贝叶斯网络(Bayesian Networks)

10. 其他算法

Apriori算法——用于关联规则挖掘,如市场篮分析。AdaBoost 和 XGBoost——集成学习方法,常用于分类问题。隐马尔可夫模型(HMM, Hidden Markov Model)——常用于时间序列分析。

这些算法是人工智能领域中最基础的构成部分,不同的任务和应用可能需要不同类型的算法组合来解决。

感兴趣的后续可以 关注专栏或者公众号 — 《黑客的世界》

作者:奥特曼超人Dujinyang

来源:CSDN

原文:https://dujinyang.blog.csdn.net/

版权声明:本文为博主杜锦阳原创文章,转载请附上博文链接!