原创链接: https://blog.csdn.net/weixin_44675384/article/details/93910125
监督学习有训练集与测试样本,在训练中找规律,有目标值和特征值
非监督学习没有训练集,只有一组数据,在组内寻找数据
分类与聚类
聚类分析是一种分类的多元统计分析方法。按照个体或样品的特征将它们 分类,使同一类别内的个体具有尽可能高的同质性,而不同类别 之间则应具有尽可能高的异质性。
聚类分析在没有训练集的条件下把样本划分若干类,自动标记确定
分类分析类是确定的要做的是将每条记录标记出来
1 k-means算法
原理:
1随机选择k个点作为初始聚类中心
2对剩下的点,计算其到各个聚类中心的距离,根据与聚类中心的距离,将其归入最近族
3对每个族计算所有点的均值,作为新的聚类中心
4重复2,3,直到质心不在发生变化
代码实现
需要导入的库from sklearn.cluster import KMeans
k=3
#实例化一个Kmeans对象
km=KMeans(n_clusters=k)
km.fit(data)#训练数据
y_predict=km.predict(data)
# print(y_predict)#进行预测
center=km.cluster_centers_#确定聚类中心
- 1
- 2
- 3
- 4
- 5
- 6
- 7
应用场景:信号处理,聚类分析等
优缺点
优点:1收敛速度快,效率高 2聚类效果较优
缺点:1 k值选取不好选择 2 对噪音和异常点比较敏感
优化k-means++
使初始聚类中心尽量分散开来,减少迭代次数,加快运行速度
2KNN(K-近邻)算法
属于监督学习,分类算法
原理:
1计算已知类别数据集中的点与当前点的距离(测试集与训练集数据)
2 按照距离大小排序
3选择与当前距离最小的k个点(依情况定k)
4确定k个点所在类别的出现频率
5返回前k个点出现频率最高(求前k个数据众数)
优缺点:1 knn算法复杂度高(每个点都会求距离,遍历整个训练集)2 k不同分类结果可能显著不同 3 样本数量不平衡,误差较大
优化:将样本按近邻分成组,给出每组质心,以质心作为代表点,和未知样本计算距离,选出最近一个或若干组在组范围应用一般knn算法
3贝叶斯算法
分类算法,朴素贝叶斯
原理:基于朴素贝叶斯公式和独立特征假设,对给出的类待分项,求解此项出现条件下各个类别出现的概率,哪个最大,就属于哪类。
应用场景:1文本数据2情感预测3推荐系统
优点:
1有稳定的分类效率
2适用于处理小规模数据
3常用语文本分析
缺点:
1对输入数据表达形式很敏感
2独立假设现实中往往不成立
3样本分布不均,会导致先验概率测不准
from sklearn.feature_extraction.text import CountVectorizer 统计词频数量
import jieba 分词库
from sklearn.naive_bayes import MultinomialNB 贝叶斯分类器库
4回归算法
线性回归的求解
梯度下降法
Normal Equation(也叫普通最小二乘法)
局部加权线性回归
岭回归(ridge regression)和缩减方法
回归模型性能度量