机器学习中的聚类与降维技术:K-means和PCA详解
1. K-means聚类用于特征学习
在半监督学习问题中,我们可以将聚类与分类相结合。通过对无标签数据进行聚类来学习特征,然后利用这些学习到的特征构建有监督的分类器。
假设你有一只猫和一只狗,并且用智能手机拍摄了很多它们的照片。你希望将猫和狗的照片分开,但手动分类很繁琐。下面我们将构建一个半监督学习系统来对猫和狗的图像进行分类。
传统的图像分类方法是使用所有像素的强度或亮度作为特征,但这种方法会产生高维特征向量,且对图像的光照、尺度和方向敏感。我们将从图像中提取SURF描述符并进行聚类,以学习特征表示。SURF描述符对图像的尺度、旋转和光照具有一定的不变性。
我们将使用Kaggle的猫狗竞赛训练集中的1000张猫的图像和1000张狗的图像。将猫标记为正类,狗标记为负类。由于我们的特征向量不代表像素,所以不需要将图像调整为相同的尺寸。我们使用前60%的图像进行训练,后40%进行测试。
以下是实现代码:
import numpy as np
import mahotas as mh
from mahotas.features import surf
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import *
from sklearn.cluster import MiniBatchKMeans
import glob
首先,加载图像,将其转换为灰度图,并提取SURF描述
超级会员免费看
订阅专栏 解锁全文
2万+

被折叠的 条评论
为什么被折叠?



