机器学习算法实例代码
时间: 2024-12-28 09:18:40 浏览: 5
### 机器学习算法示例代码
为了展示不同类型的机器学习算法,下面提供了一个简单的监督学习例子——K近邻分类器(KNN),以及无监督学习的例子——K均值聚类。
#### K近邻分类 (Supervised Learning)
此部分展示了如何应用Python中的`scikit-learn`库来实现KNN算法。该模型用于预测测试集上的标签,并计算其准确性得分[^4]。
```python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
import numpy as np
# 加载数据集
data = load_iris()
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, stratify=data.target, random_state=0)
# 创建并训练KNN模型
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)
# 测试模型性能
y_pred = knn.predict(X_test)
print("Test set score: {:.2f}".format(np.mean(y_pred == y_test)))
```
这段代码加载了鸢尾花(Iris)数据集,将其划分为训练集和测试集,接着创建了一个具有三个邻居参数的KNN实例化对象来进行拟合操作;最后评估了模型的表现情况。
#### 支持向量机(SVM)简介
对于某些特定的学习任务而言,可能希望采用无限数量特征的情况下来构建更强大的预测能力。这时可以考虑使用支持向量机这样的高级技术[^2]:
```python
from sklearn.svm import SVC
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
pipe_svc = Pipeline([('scl', StandardScaler()), ('clf', SVC(random_state=1))])
pipe_svc.fit(X_train, y_train)
score = pipe_svc.score(X_test, y_test)
print('SVC Test Accuracy:', score)
```
这里通过管道的方式组合标准化处理与SVM分类器,在实际项目中通常会带来更好的泛化效果。
#### K均值聚类 (Unsupervised Learning)
接下来是一个关于无监督学习方法的应用案例-KMeans聚类分析:
```python
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
km = KMeans(n_clusters=3, init='random', n_init=10, max_iter=300, tol=1e-04, random_state=0)
y_km = km.fit_predict(X_train)
plt.scatter(
X_train[y_km == 0, 0], X_train[y_km == 0, 1],
s=50, c='lightgreen',
marker='s', edgecolor='black',
label='cluster 1'
)
plt.scatter(
X_train[y_km == 1, 0], X_train[y_km == 1, 1],
s=50, c='orange',
marker='o', edgecolor='black',
label='cluster 2'
)
plt.scatter(
X_train[y_km == 2, 0], X_train[y_km == 2, 1],
s=50, c='lightblue',
marker='v', edgecolor='black',
label='cluster 3'
)
plt.legend(scatterpoints=1)
plt.grid()
plt.show()
```
上述脚本实现了基于输入样本空间内自动发现潜在结构的过程,即找到最能代表这些点分布模式的一组中心点作为簇心[^3]。
阅读全文