一、前情提要
在机器学习中的算法及Python3实现(上) 中,我们介绍了常见的监督学习算法的Python实现,可以实现对数据的分析。但通常情况下,我们会面对一堆原始数据,而我们尚未给这些数据一个标签,却又想知道这些数据的分布情况,这时候需要对数据进行聚类,这就是非监督学习的一个主要目标。
二、非监督学习
非监督学习主要有两种应用:聚类与数据变换。
简而言之,聚类是将数据集按照某些相似特点聚成许多类(主成分分析等);数据变换通常是数据预处理的一部分,常见应用是降维。
很明显,由于我们并没有事先告诉模型我们想要的是什么,所以当数据被聚类之后我们无法判断这个模型的好坏,可能刚好是想要的,但也可能不是。除了人工检查之外,并没有什么好的方法判断模型优劣。数据预处理方式
# 利用数据集的最大最小值进行缩放
from sklearn.preprocessing import MinMaxScaler
# 对数据集进行标准缩放
from sklearn.preprocessing import StandardScaler
# 使用one-hot编码,将一个分类特征变成多个二分类特征(0/1)
from sklearn.preprocessing import OneHotEncoder
# 多项式特征分类,用于扩展连续特征
from sklearn.preprocessing import PolynomialFeatures
假定有一个数据集X,对其进行标准化则需要先对其调用fit, 然后才能使用transform方法进行转化。
from sklearn.preprocessing