您的位置:首页 > 文旅 > 旅游 > 网站规划与设计论文_住房和城乡建设网官网八大员报名_郑州网站推广技术_北京网络营销公司哪家好

网站规划与设计论文_住房和城乡建设网官网八大员报名_郑州网站推广技术_北京网络营销公司哪家好

2024/10/10 18:14:30 来源:https://blog.csdn.net/weixin_52392194/article/details/142688444  浏览:    关键词:网站规划与设计论文_住房和城乡建设网官网八大员报名_郑州网站推广技术_北京网络营销公司哪家好
网站规划与设计论文_住房和城乡建设网官网八大员报名_郑州网站推广技术_北京网络营销公司哪家好

Python 机器学习核心算法实践案例

目录

  1. 📈 回归算法
    • 1.1 线性回归
    • 1.2 逻辑回归
  2. 📊 分类算法
    • 2.1 K近邻
    • 2.2 支持向量机(SVM)
    • 2.3 决策树与随机森林
  3. 🔍 聚类算法
    • 3.1 K均值与层次聚类
    • 3.2 DBSCAN
  4. 🤖 集成学习
    • 4.1 随机森林
    • 4.2 梯度提升机(XGBoost与LightGBM)

1. 📈 回归算法

1.1 线性回归

线性回归是最基础的回归算法,广泛应用于预测问题。模型假设输出变量与输入变量之间存在线性关系。实现时,需注意数据预处理和特征选择。使用 scikit-learn 库进行线性回归的代码如下:

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error# 生成示例数据
np.random.seed(0)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 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)# 计算均方误差
mse = mean_squared_error(y_test, y_pred)
print(f"均方误差: {mse:.2f}")

该代码首先生成了一些示例数据,然后利用线性回归模型进行训练和预测,最后计算预测误差。关键在于数据的分割与模型的训练过程。

1.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# 加载数据
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 = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)# 进行预测
y_pred = model.predict(X_test)# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"准确率: {accuracy:.2f}")

这里通过 scikit-learn 库加载鸢尾花数据集,并应用逻辑回归模型进行训练和测试,准确率是评估模型性能的重要指标。


2. 📊 分类算法

2.1 K近邻

K近邻(KNN)是一种简单且有效的分类算法,其基本思想是通过计算距离来确定分类。以下是K近邻的实现案例:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import classification_report# 加载数据
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 = KNeighborsClassifier(n_neighbors=3)
model.fit(X_train, y_train)# 进行预测
y_pred = model.predict(X_test)# 输出分类报告
print(classification_report(y_test, y_pred))

该示例展示了如何使用K近邻算法进行分类,分类报告提供了更全面的评估指标,包括精确率和召回率。

2.2 支持向量机(SVM)

支持向量机(SVM)是一种强大的分类算法,旨在找到最佳超平面以分离不同类别。以下是SVM的实现示例:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
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_size=0.2, random_state=42)# 创建并训练模型
model = SVC(kernel='linear')
model.fit(X_train, y_train)# 进行预测
y_pred = model.predict(X_test)# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"准确率: {accuracy:.2f}")

该代码通过SVM模型进行分类,使用线性核函数来进行数据拟合,最终评估模型的准确性。

2.3 决策树与随机森林

决策树是一种易于解释的分类算法,而随机森林则是多棵决策树的集成,能有效降低过拟合风险。以下是随机森林的实现示例:

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_size=0.2, random_state=42)# 创建并训练模型
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)# 进行预测
y_pred = model.predict(X_test)# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"准确率: {accuracy:.2f}")

该示例使用随机森林进行分类,通过多棵树的投票机制提高预测的稳健性,并有效降低过拟合。


3. 🔍 聚类算法

3.1 K均值与层次聚类

K均值是一种常用的聚类算法,旨在将数据分为K个簇。层次聚类则提供了不同层次的聚类结果。以下是K均值的实现示例:

from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt# 生成示例数据
X, y_true = make_blobs(n_samples=300, centers=4, cluster_std=0.60, random_state=0)# 创建K均值模型
kmeans = KMeans(n_clusters=4)
y_kmeans = kmeans.fit_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)
plt.show()

在此示例中,首先生成随机数据,并使用K均值算法进行聚类,最后通过可视化展示聚类效果。

3.2 DBSCAN

DBSCAN是一种基于密度的聚类算法,适用于发现形状不规则的簇。以下是DBSCAN的实现示例:

from sklearn.datasets import make_moons
from sklearn.cluster import DBSCAN
import matplotlib.pyplot as plt# 生成示例数据
X, _ = make_moons(n_samples=300, noise=0.1)# 创建DBSCAN模型
dbscan = DBSCAN(eps=0.2, min_samples=5)
y_dbscan = dbscan.fit_predict(X)# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=y_dbscan, s=50, cmap='viridis')
plt.title('DBSCAN Clustering')
plt.show()

此示例通过DBSCAN进行聚类,能够有效发现不规则形状的聚类结构。


4. 🤖 集成学习

4.1 随机森林

随机森林是集成学习的一种形式,通过组合多棵决策树提高预测性能。以下是随机森林的应用示例:

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_size=0.2, random_state=42)# 创建并训练模型
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)# 进行预测
y_pred = model.predict(X_test)# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"准确率: {accuracy:.2f}")

在此示例中,使用随机森林进行分类,显示其在多棵决策树集成后的高效性和准确率。

4.2 梯度提升机(XGBoost与LightGBM)

XGBoost和LightGBM是两种高效的梯度提升框架,广泛应用于机器学习竞赛和实际应用中。以下是XGBoost的实现示例:

import xgboost as xgb
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_size=0.2, random_state=42)# 创建DMatrix
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test)# 设置参数
params = {'objective': 'multi:softmax','num_class': 3,'eta': 0.1,'max_depth': 3
}# 训练模型
bst = xgb.train(params, dtrain, num_boost_round=10)# 进行预测
y_pred = bst.predict(dtest)# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"准确率: {accuracy:.2f}")

该示例展示了如何使用XGBoost进行多分类任务,充分展现了其高效性和灵活性。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com