文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python 机器学习中 14 个常用算法实现

2024-11-29 18:17

关注

1. 线性回归

线性回归是预测连续值的一种方法。比如,根据房屋面积预测房价。

代码示例:

import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt

# 创建数据集
X = np.array([[1], [2], [3], [4], [5], [6]])
y = np.array([2, 4, 5, 4, 5, 7])

# 划分训练集和测试集
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)

# 预测
predictions = model.predict(X_test)

# 可视化结果
plt.scatter(X, y, color='blue', label='Actual')
plt.plot(X, model.predict(X), color='red', label='Predicted')
plt.xlabel('Area (sq ft)')
plt.ylabel('Price ($)')
plt.legend()
plt.show()

这段代码展示了如何使用LinearRegression类创建模型。它会根据给定的数据点画出一条直线,尽可能地贴近这些点。

2. 逻辑回归

逻辑回归用于分类问题。比如,判断一封邮件是否为垃圾邮件。

代码示例:

from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 加载数据集
data = load_iris()
X = data.data
y = data.target

# 划分训练集和测试集
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)

# 预测
predictions = model.predict(X_test)

# 模型评估
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy * 100:.2f}%")

这段代码展示了如何使用LogisticRegression类创建模型。accuracy_score函数用来评估模型的准确性。

3. 决策树

决策树可以解决分类和回归问题。比如,决定是否批准一笔贷款。

代码示例:

from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.datasets import load_iris

# 加载数据集
data = load_iris()
X = data.data
y = data.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)

# 预测
predictions = model.predict(X_test)

# 模型评估
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy * 100:.2f}%")

这段代码展示了如何使用DecisionTreeClassifier类创建模型。通过划分数据,模型能够做出决策。

4. 支持向量机(SVM)

支持向量机用于分类和回归问题。比如,识别手写数字。

代码示例:

from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.datasets import load_digits

# 加载数据集
data = load_digits()
X = data.data
y = data.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建模型
model = SVC()

# 训练模型
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)

# 模型评估
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy * 100:.2f}%")

这段代码展示了如何使用SVC类创建模型。SVM会在数据中找到最佳的边界来区分不同类别。

5. K-近邻算法(KNN)

K-近邻算法用于分类和回归问题。比如,判断一款游戏是否受欢迎。

代码示例:

from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.datasets import load_iris

# 加载数据集
data = load_iris()
X = data.data
y = data.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建模型
model = KNeighborsClassifier(n_neighbors=3)

# 训练模型
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)

# 模型评估
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy * 100:.2f}%")

这段代码展示了如何使用KNeighborsClassifier类创建模型。KNN会根据最近的邻居来判断数据点的类别。

6. 随机森林

随机森林是一种集成学习方法,用于分类和回归问题。比如,预测股票价格。

代码示例:

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.datasets import load_iris

# 加载数据集
data = load_iris()
X = data.data
y = data.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建模型
model = RandomForestClassifier(n_estimators=100)

# 训练模型
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)

# 模型评估
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy * 100:.2f}%")

这段代码展示了如何使用RandomForestClassifier类创建模型。随机森林通过多个决策树的投票来做出最终的决策。

7. 主成分分析(PCA)

主成分分析用于降维。比如,简化高维数据集。

代码示例:

from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt

# 加载数据集
data = load_iris()
X = data.data
y = data.target

# 创建PCA模型
pca = PCA(n_components=2)

# 转换数据
X_pca = pca.fit_transform(X)

# 可视化结果
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y, cmap='viridis')
plt.xlabel('First Principal Component')
plt.ylabel('Second Principal Component')
plt.title('PCA of Iris Dataset')
plt.show()

这段代码展示了如何使用PCA类进行数据降维。通过将数据投影到新的坐标轴上,PCA能够保留数据的主要特征。

8. 聚类算法(K-Means)

聚类算法用于无监督学习。比如,将顾客分成不同的群体。

代码示例:

from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt

# 创建数据集
X, _ = make_blobs(n_samples=300, centers=4, random_state=42)

# 创建KMeans模型
kmeans = KMeans(n_clusters=4)

# 训练模型
kmeans.fit(X)

# 预测
labels = kmeans.predict(X)

# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')
centers = kmeans.cluster_centers_
plt.scatter(centers[:, 0], centers[:, 1], c='red', marker='x')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.title('K-Means Clustering')
plt.show()

这段代码展示了如何使用KMeans类进行聚类。通过将数据点分配给最近的质心,K-Means能够将数据分成不同的群组。

9. 梯度提升树(Gradient Boosting)

梯度提升树用于分类和回归问题。比如,预测客户是否会流失。

代码示例:

from sklearn.ensemble import GradientBoostingClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.datasets import load_iris

# 加载数据集
data = load_iris()
X = data.data
y = data.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建模型
model = GradientBoostingClassifier()

# 训练模型
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)

# 模型评估
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy * 100:.2f}%")

这段代码展示了如何使用GradientBoostingClassifier类创建模型。梯度提升树通过组合多个弱模型来提高预测性能。

10. AdaBoost

AdaBoost也是一种集成学习方法,用于分类和回归问题。比如,识别恶意软件。

代码示例:

from sklearn.ensemble import AdaBoostClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.datasets import load_iris

# 加载数据集
data = load_iris()
X = data.data
y = data.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建模型
model = AdaBoostClassifier()

# 训练模型
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)

# 模型评估
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy * 100:.2f}%")

这段代码展示了如何使用AdaBoostClassifier类创建模型。AdaBoost通过赋予错误分类的数据更高的权重来改进模型。

11. XGBoost

XGBoost是另一种梯度提升框架,广泛应用于分类和回归问题。比如,预测股市趋势。

代码示例:

import xgboost as xgb
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.datasets import load_iris

# 加载数据集
data = load_iris()
X = data.data
y = data.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建模型
model = xgb.XGBClassifier()

# 训练模型
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)

# 模型评估
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy * 100:.2f}%")

这段代码展示了如何使用XGBClassifier类创建模型。XGBoost通过优化目标函数来提高模型性能。

12. LightGBM

LightGBM是另一种高效的梯度提升框架,适用于大规模数据集。比如,推荐系统。

代码示例:

import lightgbm as lgb
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.datasets import load_iris

# 加载数据集
data = load_iris()
X = data.data
y = data.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建模型
model = lgb.LGBMClassifier()

# 训练模型
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)

# 模型评估
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy * 100:.2f}%")

这段代码展示了如何使用LGBMClassifier类创建模型。LightGBM通过高效地处理数据来加速训练过程。

13. CatBoost

CatBoost是另一个高效的梯度提升框架,特别适合处理分类特征。比如,预测用户行为。

代码示例:

import catboost as cb
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.datasets import load_iris

# 加载数据集
data = load_iris()
X = data.data
y = data.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建模型
model = cb.CatBoostClassifier()

# 训练模型
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)

# 模型评估
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy * 100:.2f}%")

这段代码展示了如何使用CatBoostClassifier类创建模型。CatBoost通过处理分类特征来提高模型性能。

14. DBSCAN

DBSCAN是一种基于密度的聚类算法,用于发现任意形状的簇。比如,异常检测。

代码示例:

from sklearn.cluster import DBSCAN
from sklearn.datasets import make_moons
import matplotlib.pyplot as plt

# 创建数据集
X, _ = make_moons(n_samples=300, noise=0.1, random_state=42)

# 创建DBSCAN模型
dbscan = DBSCAN(eps=0.2, min_samples=5)

# 训练模型
labels = dbscan.fit_predict(X)

# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.title('DBSCAN Clustering')
plt.show()

这段代码展示了如何使用DBSCAN类进行聚类。DBSCAN通过寻找密度相连的点来发现簇。

总结

本文介绍了14种常用的机器学习算法,并通过实际代码示例展示了它们的基本用法。从简单的线性回归到复杂的集成学习方法,每种算法都有其独特的应用场景。通过理解这些算法的工作原理,读者可以更好地选择合适的工具来解决实际问题。希望本文能帮助大家更深入地掌握机器学习的核心技术。

来源:小白PythonAI编程内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯