Logistic回归和KMEANS算法

Logistic回归算法

损失函数

  • 误差平方和是凸函数,有全局最优解
  • 对数似然损失:多个局部最小值
    梯度下降求解:1.多次随机初始化,多次比较最小值
    2.求解过程当中,调整学习率
  • from sklearn.linear_model import LogisticRegression()

调用方法雷同

log=LogisticRegression()
log.fit(x_train,x_test)
log.coef_ # 返回回归系数
  • eg:替换数据中的?为空值
    df.replace(to_replace=’?’,value= np.nan)

判别模型和生成模型

  • 需要先验概率的是生成模型:朴素贝叶斯,隐马尔可夫模型
  • 不需要的是判别模型,KNN,RF,神经网络等。



KMEANS算法

随机生成N个中心点,每个点与距离最近的中心点归位一个蔟。
重新计算每个蔟的中心点(均值点),以此类推,所有蔟的点不再变化为止。
  • 无监督学习
  • 聚类算法

sklearn.cluster.KMeans

  • 轮廓系数:外部距离最大化,内部距离最小化

sklearn.cluster.KMeans(n_clusters=8,init=‘k-means++’)

n_clusters:开始的聚类中心数量
init:初始化方法,默认为'k-means ++’
labels_:默认标记的类型,可以和真实值比较(不是值比较)

评估轮廓系数:sklearn.metrics.silhouette_score

计算公式:𝑠𝑐_𝑖=  (𝑏_𝑖−𝑎_𝑖)/(max⁡(𝑏_𝑖 ,𝑎_𝑖)) 
  • sklearn.metrics.silhouette_score(X, labels)
    计算所有样本的平均轮廓系数
    X:特征值
    labels:被聚类标记的目标值
    *:对于每个点𝑖 为已聚类数据中的样本 ,𝑏_𝑖 为𝑖 到其它族群的所有样本的平均距离,𝑎_𝑖 为𝑖 到本身簇的距离平均值
    最终计算出所有的样本点的轮廓系数平均值
  1. 如果𝑠𝑐_𝑖 小于0,说明𝑎_𝑖 的平均距离大于最近的其他簇。聚类效果不好
  2. 如果𝑠𝑐_𝑖 越大,说明𝑎_𝑖 的平均距离小于最近的其他簇。聚类效果好
  3. 轮廓系数的值是介于[-1,1],越趋近于1代表内聚度和分离度都相对较优

eg:以riis数据示例

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import load_iris
from sklearn.metrics import silhouette_score

# 导入iris数据
iris=load_iris()

# 实例化KMEANS
result=KMeans(n_clusters=3)
result.fit(iris.data)

# 预测聚类结果
predict=result.predict(iris.data)

# 散点图挑选变量查看聚类情况
plt.figure(figsize=(5,5),dpi=80)
color=['orange','green','blue']
colord=[color[i] for i in predict]
plt.scatter(iris.data[:,2],iris.data[:,3],color=colord)

# 轮廓系数评估
silhouette_score(iris.data,predict)

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值