线性回归算法

线性回归用于预测连续值,通过最小化误差平方和拟合最佳直线。以下为Python实现:

from sklearn.linear_model import LinearRegression
import numpy as np

# 生成示例数据
X = np.array([[1], [2], [3], [4]])
y = np.array([2, 4, 6, 8])

# 创建模型并拟合
model = LinearRegression()
model.fit(X, y)

# 预测
print(model.predict([[5]]))  # 输出: [10.]

逻辑回归算法

逻辑回归适用于二分类问题,使用Sigmoid函数输出概率。示例代码:

from sklearn.linear_model import LogisticRegression

X = [[1], [2], [3], [4]]
y = [0, 0, 1, 1]  # 二分类标签

model = LogisticRegression()
model.fit(X, y)
print(model.predict_proba([[2.5]]))  # 输出概率

决策树算法

决策树通过树状结构进行决策,适用于分类和回归:

from sklearn.tree import DecisionTreeClassifier

X = [[0, 0], [1, 1]]
y = [0, 1]  # 类别标签

clf = DecisionTreeClassifier()
clf.fit(X, y)
print(clf.predict([[2., 2.]]))  # 输出: [1]

随机森林算法

随机森林通过多棵决策树提升泛化能力:

from sklearn.ensemble import RandomForestClassifier

X = [[0, 0], [1, 1]]
y = [0, 1]

clf = RandomForestClassifier(n_estimators=10)
clf.fit(X, y)
print(clf.predict([[0.5, 0.5]]))  # 输出: [0]

支持向量机(SVM)

SVM通过最大化间隔分离数据:

from sklearn.svm import SVC

X = [[0, 0], [1, 1]]
y = [0, 1]

clf = SVC(kernel='linear')
clf.fit(X, y)
print(clf.predict([[2., 2.]]))  # 输出: [1]

K-近邻算法(KNN)

KNN基于邻居投票进行分类:

from sklearn.neighbors import KNeighborsClassifier

X = [[0], [1], [2], [3]]
y = [0, 0, 1, 1]

knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X, y)
print(knn.predict([[1.1]]))  # 输出: [0]

K-均值聚类

无监督学习,将数据分为K个簇:

from sklearn.cluster import KMeans

X = [[1, 2], [1, 4], [1, 0], [4, 2]]

kmeans = KMeans(n_clusters=2)
kmeans.fit(X)
print(kmeans.labels_)  # 输出簇标签

朴素贝叶斯

基于贝叶斯定理的特征独立假设分类器:

from sklearn.naive_bayes import GaussianNB

X = [[-1, -1], [-2, -1], [-3, -2], [1, 1]]
y = [1, 1, 1, 2]

gnb = GaussianNB()
gnb.fit(X, y)
print(gnb.predict([[-0.8, -1]]))  # 输出: [1]

主成分分析(PCA)

降维技术,保留最大方差方向:

from sklearn.decomposition import PCA

X = [[1, 2], [3, 4], [5, 6]]
pca = PCA(n_components=1)
pca.fit(X)
print(pca.transform(X))  # 输出降维后数据

神经网络(多层感知器)

使用简单神经网络进行分类:

from sklearn.neural_network import MLPClassifier

X = [[0, 0], [1, 1]]
y = [0, 1]

clf = MLPClassifier(hidden_layer_sizes=(5,))
clf.fit(X, y)
print(clf.predict([[2., 2.]]))  # 输出: [1]

以上代码均基于scikit-learn库实现,需预先安装依赖包。每段代码独立运行,输入数据可根据实际需求调整。

人工智能的10大算法详解

人工智能的核心算法涵盖了从基础机器学习到深度学习的多个领域。以下是10种关键算法的详细解析:


线性回归(Linear Regression)

线性回归用于建立输入变量与输出变量之间的线性关系模型。适用于预测连续值,如房价预测或销售额分析。
核心公式:
$y = \beta_0 + \beta_1x_1 + \beta_2x_2 + ... + \beta_nx_n + \epsilon$
其中,$y$为预测值,$\beta$为系数,$\epsilon$为误差项。


逻辑回归(Logistic Regression)

尽管名字含“回归”,实际是分类算法(如二分类问题)。通过Sigmoid函数将线性输出映射到概率值(0-1)。
Sigmoid函数:
$P(y=1|x) = \frac{1}{1 + e^{-(\beta_0 + \beta x)}}$


决策树(Decision Tree)

通过树状结构进行决策,每个节点代表一个特征测试,分支代表测试结果,叶子节点代表分类或回归值。
常用变体包括ID3、C4.5和CART,区别在于分裂标准(信息增益、基尼系数等)。


随机森林(Random Forest)

集成学习方法,通过构建多棵决策树并投票提高准确率。每棵树在随机样本和随机特征子集上训练,降低过拟合风险。


支持向量机(SVM)

通过寻找最优超平面(最大化间隔)分类数据。核技巧(如RBF核)可处理非线性问题。
目标函数:
$\min \frac{1}{2}||w||^2 + C\sum \xi_i$
其中,$C$为惩罚参数,$\xi_i$为松弛变量。


K近邻(KNN)

基于距离度量的惰性学习算法。新样本的类别由其K个最近邻居的多数投票决定。距离度量常用欧氏距离或曼哈顿距离。


K均值聚类(K-means Clustering)

无监督学习算法,将数据划分为K个簇。通过迭代优化簇中心(质心)和样本分配。
目标是最小化平方误差:
$J = \sum_{i=1}^K \sum_{x \in C_i} ||x - \mu_i||^2$


朴素贝叶斯(Naive Bayes)

基于贝叶斯定理的分类算法,假设特征间相互独立。适用于文本分类(如垃圾邮件过滤)。
公式:
$P(y|x_1, ..., x_n) \propto P(y) \prod_{i=1}^n P(x_i|y)$


主成分分析(PCA)

降维技术,通过线性变换将高维数据投影到低维空间,保留最大方差方向。
核心步骤:计算协方差矩阵,求特征值和特征向量,选择前K个主成分。


神经网络(Neural Networks)

模拟人脑神经元连接的计算模型。深度学习的基础,包括前馈网络、CNN(图像处理)、RNN(时序数据)等。
激活函数(如ReLU)引入非线性:
$f(x) = \max(0, x)$


应用场景对比

  • 预测任务:线性回归、随机森林
  • 分类任务:逻辑回归、SVM、KNN
  • 无监督学习:K均值、PCA
  • 复杂模式识别:神经网络

以上算法可根据数据特性和问题需求组合使用(如PCA降维后接SVM分类)。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐