十种机器学习算法:代码示例和可视化

机器学习是数据科学的一个核心领域,涉及多种算法和方法。本文旨在提供十种常用机器学习算法的代码示例,使用Python的Scikit-Learn库,并展示简单的数据集,使代码可直接运行并跑出可视化结果。

1. 线性回归 (Linear Regression)
线性回归是一种预测连续值的算法,非常适合用于回归问题。

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

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

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

#预测
predictions = model.predict(X)

#可视化
plt.scatter(X, y, color=‘blue’)
plt.plot(X, predictions, color=‘red’)
plt.title(‘Linear Regression’)
plt.xlabel(‘X’)
plt.ylabel(‘y’)
plt.show()

2. 逻辑回归 (Logistic Regression)
逻辑回归通常用于分类问题,尤其是二分类问题。

from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt

#加载Iris数据集
X, y = load_iris(return_X_y=True)
y = y[:100] # 只选取前两类花
X = X[:100, :2]

#创建并训练模型
model = LogisticRegression()
model.fit(X, y)

#预测
predictions = model.predict(X)

#可视化
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.title(‘Logistic Regression’)
plt.xlabel(‘Feature 1’)
plt.ylabel(‘Feature 2’)
plt.show()

3.决策树 (Decision Tree)
决策树是一种常用于分类和回归的算法,易于理解和解释。

from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt

#加载数据集
X, y = load_iris(return_X_y=True)
X = X[:, :2] # 为了可视化,仅使用前两个特征

#创建并训练模型
model = DecisionTreeClassifier()
model.fit(X, y)

#可视化
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.title(‘Decision Tree’)
plt.xlabel(‘Feature 1’)
plt.ylabel(‘Feature 2’)
plt.show()

4. 随机森林 (Random Forest)
随机森林是一种集成学习算法,通常用于分类和回归任务。

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt

#加载Iris数据集
X, y = load_iris(return_X_y=True)
X = X[:, :2] # 为了可视化,仅使用前两个特征

#创建并训练模型
model = RandomForestClassifier()
model.fit(X, y)

#可视化
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.title(‘Random Forest’)
plt.xlabel(‘Feature 1’)
plt.ylabel(‘Feature 2’)
plt.show()

5. K-最近邻 (K-Nearest Neighbors, KNN)
KNN是一种简单的机器学习算法,通常用于分类。

from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt

#加载数据集
X, y = load_iris(return_X_y=True)
X = X[:, :2] # 为了可视化,仅使用前两个特征

#创建并训练模型
model = KNeighborsClassifier()
model.fit(X, y)

#可视化
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.title(‘K-Nearest Neighbors’)
plt.xlabel(‘Feature 1’)
plt.ylabel(‘Feature 2’)
plt.show()

6. 支持向量机 (Support Vector Machine, SVM)
支持向量机是一种强大的分类算法,适用于复杂数据集。

from sklearn.svm import SVC
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt

#加载数据集
X, y = load_iris(return_X_y=True)
X = X[:, :2] # 为了可视化,仅使用前两个特征

#创建并训练模型
model = SVC()
model.fit(X, y)

#可视化
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.title(‘Support Vector Machine’)
plt.xlabel(‘Feature 1’)
plt.ylabel(‘Feature 2’)
plt.show()

7. 朴素贝叶斯 (Naive Bayes)
朴素贝叶斯是一种基于贝叶斯定理的简单概率分类器,常用于文本分类。

from sklearn.naive_bayes import GaussianNB
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt

#加载数据集
X, y = load_iris(return_X_y=True)
X = X[:, :2] # 为了可视化,仅使用前两个特征

#创建并训练模型
model = GaussianNB()
model.fit(X, y)

#可视化
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.title(‘Naive Bayes’)
plt.xlabel(‘Feature 1’)
plt.ylabel(‘Feature 2’)
plt.show()

8. K-均值聚类 (K-Means Clustering)
K-均值是一种流行的聚类算法,用于将数据分组成多个簇。

from sklearn.cluster import KMeans
import numpy as np
import matplotlib.pyplot as plt

#创建一些简单的数据
X = np.array([[1, 2], [1, 4], [1, 0],
[4, 2], [4, 4], [4, 0]])

#创建并训练模型
kmeans = KMeans(n_clusters=2)
kmeans.fit(X)

#可视化
plt.scatter(X[:, 0], X[:, 1], c=kmeans.labels_)
plt.title(‘K-Means Clustering’)
plt.xlabel(‘X’)
plt.ylabel(‘y’)
plt.show()

9. 主成分分析 (Principal Component Analysis, PCA)
PCA是一种用于降维的技术,可以提取数据中最重要的特征。

from sklearn.decomposition import PCA
import numpy as np
import matplotlib.pyplot as plt

#创建一些简单的数据
X = np.random.rand(50, 3)

#创建并应用PCA
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)

#可视化
plt.scatter(X_pca[:, 0], X_pca[:, 1])
plt.title(‘Principal Component Analysis’)
plt.xlabel(‘Component 1’)
plt.ylabel(‘Component 2’)
plt.show()

10. 梯度提升机 (Gradient Boosting Machine, GBM)
梯度提升机是一种用于回归和分类的强大的集成学习方法。

from sklearn.ensemble import GradientBoostingClassifier
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt

#加载数据集
X, y = load_iris(return_X_y=True)
X = X[:, :2] # 为了可视化,仅使用前两个特征

#创建并训练模型
model = GradientBoostingClassifier()
model.fit(X, y)

#可视化
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.title(‘Gradient Boosting Machine’)
plt.xlabel(‘Feature 1’)
plt.ylabel(‘Feature 2’)
plt.show()

以上是十种常见的机器学习算法的简介、代码示例和可视化。这些示例提供了每种算法的基本应用,帮助理解它们在实际问题中的运用。

  • 34
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值