网站优化推广 视屏,机器人编程培训机构,制作网站软件,做导航网站不侵权吗1. 线性回归#xff08;Linear Regression#xff09;
用于建立自变量#xff08;特征#xff09;和因变量#xff08;目标#xff09;之间的线性关系。
核心公式#xff1a;
简单线性回归的公式为#xff1a; , 其中 是预测值#xff0c; 是截距#xff0c; 是斜…1. 线性回归Linear Regression
用于建立自变量特征和因变量目标之间的线性关系。
核心公式
简单线性回归的公式为 , 其中 是预测值 是截距 是斜率 是自变量。
代码案例
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().fit(X, y)# 预测
y_pred model.predict(X)print(预测值:, y_pred) 2. 逻辑回归Logistic Regression
用于处理分类问题通过一个 S 形的函数将输入映射到 0 到 1 之间的概率。
核心公式
逻辑回归的公式为 其中 是给定输入 下预测 为 1 的概率是截距 是权重 是自然常数。
代码案例
from sklearn.linear_model import LogisticRegression
import numpy as np# 创建一些随机数据
X np.array([[1], [2], [3], [4]])
y np.array([0, 0, 1, 1])# 拟合模型
model LogisticRegression().fit(X, y)# 预测
y_pred model.predict(X)print(预测值:, y_pred) 3. 决策树Decision Tree
通过一系列决策来学习数据的分类规则或者数值预测规则可解释性强。
核心公式
决策树的核心在于树的构建和节点分裂的规则其本身没有明确的数学公式。
代码案例
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score# 载入数据
iris load_iris()
X iris.data
y iris.target# 划分训练集和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 训练模型
model DecisionTreeClassifier()
model.fit(X_train, y_train)# 预测
y_pred model.predict(X_test)# 评估准确率
accuracy accuracy_score(y_test, y_pred)
print(准确率:, accuracy)
4. 支持向量机Support Vector MachineSVM
用于分类和回归分析的监督学习模型能够在高维空间中构造超平面或超平面集合实现对数据的有效分类。
核心公式
SVM 的目标是找到一个最优超平面使得两个类别的间隔最大化。分类器的决策函数为
。 其中 是要分类的样本 是支持向量 是对应支持向量的系数 是支持向量的标签 是核函数 是偏置。
代码案例
from sklearn.svm import SVC
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score# 载入数据
iris load_iris()
X iris.data
y iris.target# 划分训练集和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 训练模型
model SVC()
model.fit(X_train, y_train)# 预测
y_pred model.predict(X_test)# 评估准确率
accuracy accuracy_score(y_test, y_pred)
print(准确率:, accuracy) 5. 朴素贝叶斯Naive Bayes
基于贝叶斯定理和特征条件独立假设的分类算法常用于文本分类和垃圾邮件过滤。
核心公式
朴素贝叶斯分类器基于贝叶斯定理计算后验概率其公式为其中是给定特征下类别的后验概率是类别的先验概率是在类别下特征的条件概率是特征 的联合概率。
代码案例
from sklearn.naive_bayes import GaussianNB
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score# 载入数据
iris load_iris()
X iris.data
y iris.target# 划分训练集和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 训练模型
model GaussianNB()
model.fit(X_train, y_train)# 预测
y_pred model.predict(X_test)# 评估准确率
accuracy accuracy_score(y_test, y_pred)
print(准确率:, accuracy)
6. K近邻算法K-Nearest NeighborsKNN
一种基本的分类和回归方法它的基本假设是“相似的样本具有相似的输出”。
核心公式
KNN 的核心思想是根据输入样本的特征在训练集中找到与之最接近的 个样本然后根据这 个样本的标签来预测输入样本的标签。没有明确的数学公式其预测公式可以简单表示为投票机制。
代码案例
from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score# 载入数据
iris load_iris()
X iris.data
y iris.target# 划分训练集和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 训练模型
model KNeighborsClassifier()
model.fit(X_train, y_train)# 预测
y_pred model.predict(X_test)# 评估准确率
accuracy accuracy_score(y_test, y_pred)
print(准确率:, accuracy) 7. 聚类算法Clustering
聚类是一种无监督学习方法将数据集中的样本划分为若干组使得同一组内的样本相似度较高不同组之间的样本相似度较低。
核心公式
常见的聚类算法包括 K 均值聚类和层次聚类等它们的核心在于距离计算和簇的更新规则。
代码案例
这里以 K 均值聚类为例。
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt# 创建一些随机数据
X, _ make_blobs(n_samples300, centers4, cluster_std0.60, random_state0)# 训练模型
model KMeans(n_clusters4)
model.fit(X)# 可视化聚类结果
plt.scatter(X[:, 0], X[:, 1], cmodel.labels_, s50, cmapviridis)
centers model.cluster_centers_
plt.scatter(centers[:, 0], centers[:, 1], cred, s200, alpha0.5)
plt.show()
8. 神经网络Neural Networks
神经网络是一种模拟人脑神经元网络的计算模型通过调整神经元之间的连接权重来学习数据的复杂关系。
核心公式
神经网络的核心在于前向传播和反向传播过程其中涉及到激活函数、损失函数等。
代码案例
这里以使用 TensorFlow 实现一个简单的全连接神经网络为例。
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score# 创建一些随机数据
X, y make_classification(n_samples1000, n_features20, n_classes2, random_state42)# 划分训练集和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 构建神经网络模型
model Sequential([Dense(64, activationrelu, input_shape(20,)),Dense(64, activationrelu),Dense(1, activationsigmoid)
])# 编译模型
model.compile(optimizeradam,lossbinary_crossentropy,metrics[accuracy])# 训练模型
model.fit(X_train, y_train, epochs10, batch_size32, validation_data(X_test, y_test))# 评估模型
loss, accuracy model.evaluate(X_test, y_test)
print(准确率:, accuracy) 9. 集成方法Ensemble Methods
集成方法通过组合多个基分类器或回归器的预测结果来改善泛化能力和准确性。
核心公式
集成方法的核心在于不同的组合方式常见的包括 Bagging、Boosting 和随机森林等。
代码案例
这里以随机森林为例。
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score# 载入数据
iris load_iris()
X iris.data
y iris.target# 划分训练集和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 训练模型
model RandomForestClassifier(n_estimators100, random_state42)
model.fit(X_train, y_train)# 预测
y_pred model.predict(X_test)# 评估准确率
accuracy accuracy_score(y_test, y_pred)
print(准确率:, accuracy) 10. 降维算法Dimensionality Reduction
降维算法用于减少数据集的维度保留数据集的重要特征可以用于数据可视化和提高模型性能。
核心公式
主成分分析PCA是一种常用的降维算法其核心是通过线性变换将原始数据映射到一个新的坐标系中选择新坐标系上方差最大的方向作为主要特征。
代码案例
from sklearn.decomposition import PCA
from sklearn.datasets import load_iris# 载入数据
iris load_iris()
X iris.data# 使用 PCA 进行降维
pca PCA(n_components2)
X_pca pca.fit_transform(X)print(降维后的数据维度:, X_pca.shape)
11. 主成分分析Principal Component AnalysisPCA
主成分分析是一种常用的降维算法用于发现数据中的主要特征。
核心公式
PCA 的核心是特征值分解将原始数据的协方差矩阵分解为特征向量和特征值通过选取特征值较大的特征向量进行降维。
代码案例
import numpy as np
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.datasets import load_iris# 载入数据
iris load_iris()
X iris.data
y iris.target# 使用 PCA 进行降维
pca PCA(n_components2)
X_pca pca.fit_transform(X)# 可视化降维结果
plt.figure(figsize(8, 6))
for i in range(len(np.unique(y))):
plt.scatter(X_pca[y i, 0], X_pca[y i, 1], labeliris.target_names[i])
plt.xlabel(Principal Component 1)
plt.ylabel(Principal Component 2)
plt.title(PCA of IRIS dataset)
plt.legend()
plt.show() 12. 支持向量回归Support Vector RegressionSVR
SVR 是一种使用支持向量机SVM进行回归分析的方法能够有效处理线性和非线性回归问题。
核心公式
SVR 的核心在于损失函数的定义和对偶问题的求解其目标是最小化预测值与真实值之间的误差同时保持预测值尽可能接近真实值。具体公式比较复杂无法简单表示。
代码案例
from sklearn.svm import SVR
import numpy as np
import matplotlib.pyplot as plt# 创建一些随机数据
X np.sort(5 * np.random.rand(100, 1), axis0)
y np.sin(X).ravel()# 添加噪声
y[::5] 3 * (0.5 - np.random.rand(20))# 训练模型
model SVR(kernelrbf, C100, gamma0.1, epsilon.1)
model.fit(X, y)# 预测
X_test np.linspace(0, 5, 100)[:, np.newaxis]
y_pred model.predict(X_test)# 可视化结果
plt.scatter(X, y, colordarkorange, labeldata)
plt.plot(X_test, y_pred, colornavy, lw2, labelprediction)
plt.xlabel(data)
plt.ylabel(target)
plt.title(Support Vector Regression)
plt.legend()
plt.show() 13. 核方法Kernel Methods
核方法是一种通过在原始特征空间中应用核函数来学习非线性模型的方法常用于支持向量机等算法。
核心公式
核方法的核心在于核函数的选择和应用常见的核函数包括线性核、多项式核和高斯核等其具体形式取决于核函数的选择。
代码案例
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
import matplotlib.pyplot as plt
import numpy as np# 创建一些随机数据
X, y make_classification(n_samples100, n_features2, n_informative2, n_redundant0, random_state42)# 划分训练集和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 定义一个高斯核支持向量机模型
model SVC(kernelrbf, gammascale, random_state42)# 训练模型
model.fit(X_train, y_train)# 可视化决策边界
plt.figure(figsize(8, 6))
h .02
x_min, x_max X[:, 0].min() - 1, X[:, 0].max() 1
y_min, y_max X[:, 1].min() - 1, X[:, 1].max() 1
xx, yy np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
Z model.predict(np.c_[xx.ravel(), yy.ravel()])
Z Z.reshape(xx.shape)
plt.contourf(xx, yy, Z, cmapplt.cm.coolwarm, alpha0.8)
plt.scatter(X[:, 0], X[:, 1], cy, cmapplt.cm.coolwarm)
plt.xlabel(Feature 1)
plt.ylabel(Feature 2)
plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())
plt.title(SVM with RBF Kernel)
plt.show()
13. 核方法Kernel Methods
核方法是一种通过在原始特征空间中应用核函数来学习非线性模型的方法常用于支持向量机等算法。
核心公式
核方法的核心在于核函数的选择和应用常见的核函数包括线性核、多项式核和高斯核等其具体形式取决于核函数的选择。
代码案例
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
import matplotlib.pyplot as plt
import numpy as np# 创建一些随机数据
X, y make_classification(n_samples100, n_features2, n_informative2, n_redundant0, random_state42)# 划分训练集和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 定义一个高斯核支持向量机模型
model SVC(kernelrbf, gammascale, random_state42)# 训练模型
model.fit(X_train, y_train)# 可视化决策边界
plt.figure(figsize(8, 6))
h .02
x_min, x_max X[:, 0].min() - 1, X[:, 0].max() 1
y_min, y_max X[:, 1].min() - 1, X[:, 1].max() 1
xx, yy np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
Z model.predict(np.c_[xx.ravel(), yy.ravel()])
Z Z.reshape(xx.shape)
plt.contourf(xx, yy, Z, cmapplt.cm.coolwarm, alpha0.8)
plt.scatter(X[:, 0], X[:, 1], cy, cmapplt.cm.coolwarm)
plt.xlabel(Feature 1)
plt.ylabel(Feature 2)
plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())
plt.title(SVM with RBF Kernel)
plt.show() 15. 随机森林Random Forest
随机森林是一种集成学习方法通过构建多个决策树来提高分类性能具有良好的抗过拟合能力和稳定性。
核心公式
随机森林的核心在于决策树的集成方式和随机性的引入具体公式比较复杂涉及到决策树的建立和集成规则。
代码案例
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score# 载入数据
iris load_iris()
X iris.data
y iris.target# 划分训练集和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 定义一个随机森林模型
model RandomForestClassifier(n_estimators100, random_state42)# 训练模型
model.fit(X_train, y_train)# 预测
y_pred model.predict(X_test)# 评估准确率
accuracy accuracy_score(y_test, y_pred)
print(准确率:, accuracy)16. 梯度提升Gradient Boosting
梯度提升是一种集成学习方法通过逐步训练新模型来改善已有模型的预测能力通常使用决策树作为基础模型。
核心公式
梯度提升的核心在于损失函数的优化和模型的更新规则其核心思想是在每一步迭代中拟合一个新模型来拟合之前模型的残差从而逐步减小残差。
代码案例
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score# 载入数据
iris load_iris()
X iris.data
y iris.target# 划分训练集和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 训练模型
model GradientBoostingClassifier(n_estimators100, learning_rate0.1, random_state42)
model.fit(X_train, y_train)# 预测
y_pred model.predict(X_test)# 评估准确率
accuracy accuracy_score(y_test, y_pred)
print(准确率:, accuracy)
17. AdaBoostAdaptive Boosting
AdaBoost 是一种集成学习方法通过串行训练多个弱分类器并加大误分类样本的权重来提高分类性能。
核心公式
AdaBoost 的核心在于样本权重的更新规则和基分类器的组合方式具体公式涉及到样本权重的调整和分类器权重的更新。
代码案例
from sklearn.ensemble import AdaBoostClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score# 载入数据
iris load_iris()
X iris.data
y iris.target# 划分训练集和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 训练模型
model AdaBoostClassifier(n_estimators100, learning_rate0.1, random_state42)
model.fit(X_train, y_train)# 预测
y_pred model.predict(X_test)# 评估准确率
accuracy accuracy_score(y_test, y_pred)
print(准确率:, accuracy)18. 深度学习Deep Learning
深度学习是一种基于人工神经网络的机器学习方法其核心思想是通过多层非线性变换来学习数据的表示。
核心公式
深度学习涉及到多层神经网络的构建和优化其中包括前向传播和反向传播等过程具体公式和算法较为复杂。
代码案例
这里以使用 TensorFlow 实现一个简单的深度神经网络多层感知器为例。
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score# 创建一些随机数据
X, y make_classification(n_samples1000, n_features20, n_classes2, random_state42)# 划分训练集和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 构建深度神经网络模型
model Sequential([Dense(64, activationrelu, input_shape(20,)),Dense(64, activationrelu),Dense(1, activationsigmoid)
])# 编译模型
model.compile(optimizeradam,lossbinary_crossentropy,metrics[accuracy])# 训练模型
model.fit(X_train, y_train, epochs10, batch_size32, validation_data(X_test, y_test))# 评估模型
loss, accuracy model.evaluate(X_test, y_test)
print(准确率:, accuracy)