IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 机器学习——3.回归与聚类算法 -> 正文阅读

[人工智能]机器学习——3.回归与聚类算法

目录

线性回归

应用场景

what?

线性关系

线性模型

线性回归的损失和优化原理

损失函数

优化算法

梯度下降

线性回归API

案例:波士顿房价预测?

回归性能评估

拓展—关于优化方法GD、SGD、SAG

欠拟合与过拟合

原因以及解决办法

正则化类别

带有L2正则化的线性回归—岭回归

API

波士顿房价三种方法汇总?

分类算法—逻辑回归与二分类

逻辑回归的应用场景

逻辑回归的原理

损失以及优化?

API

案例:癌症分类预测-良/恶性乳腺癌肿瘤预测

分类的评估方法

?分类评估报告API

ROC曲线与AUC指标

模型保存和加载

sklearn模型的保存和加载API

无监督学习--K-means算法

无监督学习

无监督学习包含算法

K-means原理

K-means API

案例:k-means对Instacart Market用户聚类

Kmeans性能评估指标

轮廓系数值分析?

结论

?轮廓系数API

K-means总结


线性回归

目标值:连续型的数据

应用场景

  • 房价预测
  • 销售额度预测
  • 金融:贷款额度预测、利用线性回归以及系数分析因子

what?

特征值和目标值之间是一种函数关系

30c3edae12bf4cf39792c4928f744392.png

?a171ec38a6b945e69015d8011cf7e90b.png

线性关系

符合y = kx + b

ba0b635891444285a37a0a1cd739bb62.png

有两个特征 y = w1x1 + w2x2 + b

c8bab8cbdd994bd19e5c8478ba79572b.png?9d08f91277ed4221bd3daa034929a353.png?

线性模型

自变量x一次

y = w1x1 + w2x2 + w3x3 + ... + wnxn + b

参数一次

y = w1x1 + w2x1^2 + w3x1^3 + w4x2^3 + ... + b

线性关系一定是线性模型

线性模型不一定是线性关系

线性回归的损失和优化原理

目标:求模型参数(模型参数能够使得预测准确)

真实关系:真实房子价格 = 0.02*中心区域的距离 + 0.04*城市一氧化氮浓度 + (-0.12*自住房平均房价)+ 0.254*城镇犯罪率

随意假定:预测房子价格 = 0.25*中心区域的距离 + 0.14*城市一氧化氮浓度 + 0.42*自住房平均房价 + 0.34*城镇犯罪率

32bd55e85dfc43a292910d3e80718f7c.png

损失函数

3619f2abe0274e7ab967ec41f0def258.png

优化算法

0235157d0f9d460eb9a27a716e2c99e3.png

梯度下降

444509eb5030452192a6c78cb63c1539.png

?ec56359e16cc4cfe9a15ce736ad6cde4.png

036e1aa1553e432bb4dafa6ff87c7908.png

线性回归API

?16ffa1345c424b1dbecc79dd208e87c9.png

案例:波士顿房价预测?

e0c20c5f83bd4407b28640738c2e80d7.png

5f92ae5d768b443b9fe069d298fa6b00.png

流程

  1. 获取数据集
  2. 划分数据集
  3. 特征工程:无量纲化 -- 标准化
  4. 预估器流程:fit()--> 模型,coef_intercept_
  5. 模型评估
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression, SGDRegressor
# 正规方程的优化方法对波士顿房价进行预测
def  linear_demo():
    # 1.获取数据
    boston = load_boston()
    # 2.划分数据集
    x_train, x_test, y_train, y_test = train_test_split(boston.data, boston.target, random_state=22)
    # 3.特征工程:标准化
    transfer = StandardScaler()
    x_train = transfer.fit_transform(x_train)
    x_test = transfer.transform(x_test)
    # 4.预估器
    estimator = LinearRegression()
    estimator.fit(x_train, y_train)
    # 5.得出模型
    print("权重系数为:\n", estimator.coef_)
    print("偏置为:\n", estimator.intercept_)
    # 6.模型评估

# 梯度下降的优化方法对波士顿房价进行预测
def linear_demo2():
    # 1.获取数据
    boston = load_boston()
    print("特征数量:\n", boston.data.shape)
    # 2.划分数据集
    x_train, x_test, y_train, y_test = train_test_split(boston.data, boston.target, random_state=22)
    # 3.特征工程:标准化
    transfer = StandardScaler()
    x_train = transfer.fit_transform(x_train)
    x_test = transfer.transform(x_test)
    # 4.预估器
    estimator = SGDRegressor()
    estimator.fit(x_train, y_train)
    # 5.得出模型
    print("梯度下降-权重系数为:\n", estimator.coef_)
    print("梯度下降-偏置为:\n", estimator.intercept_)
    # 6.模型评估

if __name__ == "__main__":
    linear_demo()
    linear_demo2()

0e212fd694924dc7978b9eee146e566d.png

5158628a7f6e470eb365446f91e48318.png

回归性能评估

d0d285bcc02246b8957c82a87dd27a07.png

API

0ca8c8540adf44e2b71dacb653647ee5.png

a3c21fa1d735488ba3a1eeed0d32a4fc.png

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression, SGDRegressor
from sklearn.metrics import mean_squared_error
# 正规方程的优化方法对波士顿房价进行预测
def  linear_demo():
    # 1.获取数据
    boston = load_boston()
    # 2.划分数据集
    x_train, x_test, y_train, y_test = train_test_split(boston.data, boston.target, random_state=22)
    # 3.特征工程:标准化
    transfer = StandardScaler()
    x_train = transfer.fit_transform(x_train)
    x_test = transfer.transform(x_test)
    # 4.预估器
    estimator = LinearRegression()
    estimator.fit(x_train, y_train)
    # 5.得出模型
    print("权重系数为:\n", estimator.coef_)
    print("偏置为:\n", estimator.intercept_)
    # 6.模型评估
    y_predict = estimator.predict(x_test)
    print("预测房价:\n", y_predict)
    error = mean_squared_error(y_test, y_predict)
    print("正规方程-均方误差为:\n", error)

# 梯度下降的优化方法对波士顿房价进行预测
def linear_demo2():
    # 1.获取数据
    boston = load_boston()
    print("特征数量:\n", boston.data.shape)
    # 2.划分数据集
    x_train, x_test, y_train, y_test = train_test_split(boston.data, boston.target, random_state=22)
    # 3.特征工程:标准化
    transfer = StandardScaler()
    x_train = transfer.fit_transform(x_train)
    x_test = transfer.transform(x_test)
    # 4.预估器
    estimator = SGDRegressor(learning_rate="constant", eta0=0.01, max_iter=10000)
    estimator.fit(x_train, y_train)
    # 5.得出模型
    print("梯度下降-权重系数为:\n", estimator.coef_)
    print("梯度下降-偏置为:\n", estimator.intercept_)
    # 6.模型评估
    y_predict = estimator.predict(x_test)
    print("预测房价:\n", y_predict)
    error = mean_squared_error(y_test, y_predict)
    print("梯度下降-均方误差为:\n", error)

if __name__ == "__main__":
    linear_demo()
    linear_demo2()

ceff2747518547e5af489abd94d5a392.png

0eae1a3885c740f0894efc1ead8c54a9.png

拓展—关于优化方法GD、SGD、SAG

b42940543898443b984b0e89d8a29ee5.png


欠拟合与过拟合

在测试集上表现的很好,测试集上不太好——过拟合现象

欠拟合:特征太少

过拟合:特征太多

89e8cca0fa3243b4bd1a4bfabf10882d.png

d491504dc1ac4eb5a9f43eaa7b22ca1f.png

?43691ff9c6234e1c8c405c0fa24f5aef.png

acf2754535aa47b6a40b1c8b1c372b56.png

原因以及解决办法

0ac1fb10c7bd41e3b338c7eecb2f9532.png

?07c8484c6e40423fb307c25861bd0a01.png

正则化类别

L1正则化

????????损失函数 + λ惩罚项(w绝对值加在一起)

L2正则化更常用

????????损失函数 + λ惩罚项(使w变小)

afcb9319dcfb443c8eb0b52e1daf7d7c.png


带有L2正则化的线性回归—岭回归

岭回归,其实也是一种线性回归。只不过在算法建立回归方程的时候,加上正则化的限制,从而达到解决过拟合的效果

API

73584075a0b24d1d9b25f26f142f6efb.png

a7599e9fad054b67ab841d9f965608fa.png

波士顿房价三种方法汇总?

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression, Ridge, SGDRegressor
from sklearn.metrics import mean_squared_error
# 正规方程的优化方法对波士顿房价进行预测
def  linear_demo():
    # 1.获取数据
    boston = load_boston()
    # 2.划分数据集
    x_train, x_test, y_train, y_test = train_test_split(boston.data, boston.target, random_state=22)
    # 3.特征工程:标准化
    transfer = StandardScaler()
    x_train = transfer.fit_transform(x_train)
    x_test = transfer.transform(x_test)
    # 4.预估器
    estimator = LinearRegression()
    estimator.fit(x_train, y_train)
    # 5.得出模型
    print("权重系数为:\n", estimator.coef_)
    print("偏置为:\n", estimator.intercept_)
    # 6.模型评估
    y_predict = estimator.predict(x_test)
    print("预测房价:\n", y_predict)
    error = mean_squared_error(y_test, y_predict)
    print("正规方程-均方误差为:\n", error)

# 梯度下降的优化方法对波士顿房价进行预测
def linear_demo2():
    # 1.获取数据
    boston = load_boston()
    print("特征数量:\n", boston.data.shape)
    # 2.划分数据集
    x_train, x_test, y_train, y_test = train_test_split(boston.data, boston.target, random_state=22)
    # 3.特征工程:标准化
    transfer = StandardScaler()
    x_train = transfer.fit_transform(x_train)
    x_test = transfer.transform(x_test)
    # 4.预估器
    # estimator = SGDRegressor(learning_rate="constant", eta0=0.01, max_iter=10000) 默认是l2
    estimator = SGDRegressor(learning_rate="constant", eta0=0.01, max_iter=10000, penalty="l1")
    estimator.fit(x_train, y_train)
    # 5.得出模型
    print("梯度下降-权重系数为:\n", estimator.coef_)
    print("梯度下降-偏置为:\n", estimator.intercept_)
    # 6.模型评估
    y_predict = estimator.predict(x_test)
    print("预测房价:\n", y_predict)
    error = mean_squared_error(y_test, y_predict)
    print("梯度下降-均方误差为:\n", error)

# 岭回归对波士顿房价进行预测
def linear_demo3():
    # 1.获取数据
    boston = load_boston()
    # 2.划分数据集
    x_train, x_test, y_train, y_test = train_test_split(boston.data, boston.target, random_state=22)
    # 3.标准化
    transfer = StandardScaler()
    x_train = transfer.fit_transform(x_train)
    x_test = transfer.transform(x_test)
    # 4.预估器
    # estimator = Ridge()
    estimator = Ridge(alpha=0.5, max_iter=10000)
    estimator.fit(x_train, y_train)
    # 5.得出模型
    print("岭回归-权重系数为:\n", estimator.coef_)
    print("岭回归-偏置为:\n", estimator.intercept_)
    # 6.模型评估
    y_predict = estimator.predict(x_test)
    print("预测房价:\n", y_predict)
    error = mean_squared_error(y_test, y_predict)
    print("岭回归-均方误差为:\n",error)

if __name__ == "__main__":
    linear_demo()
    linear_demo2()
    linear_demo3()

分类算法—逻辑回归与二分类

逻辑回归的应用场景

  • 广告点击率
  • 是否为垃圾邮件
  • 是否患病
  • 金融诈骗
  • 虚假账号

特点:属于/不属于?

逻辑回归的原理

输入

h(w)= w1x1 + w2x2 + w3x3 +...+ b

逻辑回归的输入就是一个线性回归的结果(线性回归的输出就是逻辑回归的输入)

激活函数

6fb3cb2a55d7476492bdc457d2b1c584.png

?e7ff6218db544e5aa57844b593d0f73f.png

损失函数

(y_predict - y_true)平方和/总数

逻辑回归的真实值/预测值 是否属于某个类别

损失以及优化?

损失

逻辑回归的损失,称之为对数似然损失

b154d6639b37485cb34b68a11b55b610.png

?800c4077550f44ff986708bf210caf04.png

80c2adc3f33f45c583b27e539494b6a9.png

d01b08b88c0a44f2b0a82af4ef414460.png

?ec6893bcb79f4192859138694e3e9b2e.png

优化

梯度下降

8e023acf9ea3469290a252c7d03482ee.png

API

7c7b81c9ca28466d90b9bd14ba752d73.png

案例:癌症分类预测-良/恶性乳腺癌肿瘤预测

流程分析

  1. 获取数据:读取的时候加上names
  2. 数据处理:处理缺失值
  3. 数据集划分
  4. 特征工程:无量纲化处理--标准化
  5. 逻辑回归预估器
  6. 模型评估
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression

def  cancer_demo():
    # 1.获取数据
    path = "http..."
    column_name = ['Sample code number', 'Clump Thickness', 'Uniformity of Cell Shape', 'Marginal Adhesion', 'Single Epithelial Cell Size',
    'Bare Nuclei','Bland Chromatin', 'Normal Nucleoli', 'Mitoses', 'Class']
    data = pd.read_csv(path, names=column_name)
    # 2.缺失值处理
    # 1)替换-->np.nan
    data = data.replace(to_replace="?", value=np.nan)
    # 2)删除缺失样本
    data.dropna(inplace=True)
    # 3.划分数据集
    # 筛选特征值和目标值
    x = data.iloc[:, 1:-1]
    y = data["Class"]
    x_train, x_test, y_train, y_test = train_test_split(x, y)
    # 4.标准化
    transfer = StandardScaler()
    x_train = transfer.fit_transform(x_train)
    x_test = transfer.transform(x_test)
    # 5.预估器流程
    estimator = LogisticRegression()
    estimator.fit(x_train, y_train)
    # 逻辑回归的模型参数:回归系数和偏置
    estimator.coef_
    estimator.intercept_
    # 6.模型评估
    # 方法一:直接对比真实值和预测值
    y_predict = estimator.predict(x_test)
    print("y_predict:\n", y_predict)
    print("直接比对真实值和预测值:\n", y_test == y_predict)
    # 方法二:计算准确率
    score = estimator.score(x_test, y_test)
    print("准确率为:\n", score)


if __name__ == "__main__":
    cancer_demo()

分类的评估方法

精确率与召回率

混淆矩阵

f2c8fd3b90b44ccc9661beb4d2e3b6d0.png

精确率:预测结果为正例样本中真实为正例的比例

f1e9cd3e31ae4f20960460dafac91532.png

召回率:真实为正例的样本中预测结果为正例的比例 (看查的全不全,对正样本的区分能力)

a3c5d437ed5b4c828fe6b0b1fa9c9d0b.png

真正患癌症的,能够被检查出来的概率--召回率

F1-score 模型的稳健型

总共有100个人,如果有99个样本癌症,1个样本非癌症---样本不均衡

不管怎样全都预测正例(默认癌症为正例)---不负责任的模型

准确率:99%

召回率:99/99 = 100%

精确率:99%

F1-score:2*99% / 199% = 99.497%

AUC:0.5

????????TPR = 100%

????????FPR = 1 / 1 = 100%

55c983000eed40b085a9a50ce34e8a6d.png

?分类评估报告API

ac268c602b934922b75485db27005862.png

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report

def  cancer_demo():
    # 1.获取数据
    path = "http..."
    column_name = ['Sample code number', 'Clump Thickness', 'Uniformity of Cell Shape', 'Marginal Adhesion', 'Single Epithelial Cell Size',
    'Bare Nuclei','Bland Chromatin', 'Normal Nucleoli', 'Mitoses', 'Class']
    data = pd.read_csv(path, names=column_name)
    # 2.缺失值处理
    # 1)替换-->np.nan
    data = data.replace(to_replace="?", value=np.nan)
    # 2)删除缺失样本
    data.dropna(inplace=True)
    # 3.划分数据集
    # 筛选特征值和目标值
    x = data.iloc[:, 1:-1]
    y = data["Class"]
    x_train, x_test, y_train, y_test = train_test_split(x, y)
    # 4.标准化
    transfer = StandardScaler()
    x_train = transfer.fit_transform(x_train)
    x_test = transfer.transform(x_test)
    # 5.预估器流程
    estimator = LogisticRegression()
    estimator.fit(x_train, y_train)
    # 逻辑回归的模型参数:回归系数和偏置
    estimator.coef_
    estimator.intercept_
    # 6.模型评估
    # 方法一:直接对比真实值和预测值
    y_predict = estimator.predict(x_test)
    print("y_predict:\n", y_predict)
    print("直接比对真实值和预测值:\n", y_test == y_predict)
    # 方法二:计算准确率
    score = estimator.score(x_test, y_test)
    print("准确率为:\n", score)
    # 查看精确率、召回率、F1-score
    report = classification_report(y_test, y_predict, labels=[2, 4], target_names=['良性', '恶性'])
    print(report)

if __name__ == "__main__":
    cancer_demo()

ROC曲线与AUC指标

TPR与FPR

TPR = TP / (TP + FN) --- 召回率

????????所有真实类别为1的样本中,预测类别为1的比例

FPR = FP / (FP + TN)

????????所有真实类别为0的样本中,预测类别为1的比例????????

ROC曲线?

906e9375db2a486dac1c9552b8b7abc3.png

AUC指标

653d346e3ff04ca3839d02d9617e1ddc.png

AUC计算API

57e3c319cb254bbf8c41c234b7054001.png

  • AUC只能用来评价二分类
  • AUC非常适合评价样本不平衡中的分类器性能
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
from sklearn.metrics import roc_auc_score

def  cancer_demo():
    # 1.获取数据
    path = "http..."
    column_name = ['Sample code number', 'Clump Thickness', 'Uniformity of Cell Shape', 'Marginal Adhesion', 'Single Epithelial Cell Size',
    'Bare Nuclei','Bland Chromatin', 'Normal Nucleoli', 'Mitoses', 'Class']
    data = pd.read_csv(path, names=column_name)
    # 2.缺失值处理
    # 1)替换-->np.nan
    data = data.replace(to_replace="?", value=np.nan)
    # 2)删除缺失样本
    data.dropna(inplace=True)
    # 3.划分数据集
    # 筛选特征值和目标值
    x = data.iloc[:, 1:-1]
    y = data["Class"]
    x_train, x_test, y_train, y_test = train_test_split(x, y)
    # 4.标准化
    transfer = StandardScaler()
    x_train = transfer.fit_transform(x_train)
    x_test = transfer.transform(x_test)
    # 5.预估器流程
    estimator = LogisticRegression()
    estimator.fit(x_train, y_train)
    # 逻辑回归的模型参数:回归系数和偏置
    estimator.coef_
    estimator.intercept_
    # 6.模型评估
    # 方法一:直接对比真实值和预测值
    y_predict = estimator.predict(x_test)
    print("y_predict:\n", y_predict)
    print("直接比对真实值和预测值:\n", y_test == y_predict)
    # 方法二:计算准确率
    score = estimator.score(x_test, y_test)
    print("准确率为:\n", score)
    # 查看精确率、召回率、F1-score
    report = classification_report(y_test, y_predict, labels=[2, 4], target_names=['良性', '恶性'])
    print(report)
    # y_true:每个样本的真实类别,必须为0(反例),1(正例)标记
    # 将y_test 转换成0 1
    y_true = np.where(y_test > 3, 1, 0)
    roc_auc_score(y_true, y_predict)

if __name__ == "__main__":
    cancer_demo()

模型保存和加载

sklearn模型的保存和加载API

897c8133355b4e458d1b3e85bc31a1d8.png

import joblib
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression, Ridge, SGDRegressor
from sklearn.metrics import mean_squared_error

# 岭回归对波士顿房价进行预测
def linear_demo3():
    # 1.获取数据
    boston = load_boston()
    # 2.划分数据集
    x_train, x_test, y_train, y_test = train_test_split(boston.data, boston.target, random_state=22)
    # 3.标准化
    transfer = StandardScaler()
    x_train = transfer.fit_transform(x_train)
    x_test = transfer.transform(x_test)
    # 4.预估器
    # estimator = Ridge()
    # estimator = Ridge(alpha=0.5, max_iter=10000)
    # estimator.fit(x_train, y_train)
    # 保存模型
    # joblib.dump(estimator, "my_ridge.pkl")
    # 加载模型
    estimator = joblib.load("my_ridge.pkl")
    # 5.得出模型
    print("岭回归-权重系数为:\n", estimator.coef_)
    print("岭回归-偏置为:\n", estimator.intercept_)
    # 6.模型评估
    y_predict = estimator.predict(x_test)
    print("预测房价:\n", y_predict)
    error = mean_squared_error(y_test, y_predict)
    print("岭回归-均方误差为:\n",error)

if __name__ == "__main__":
    linear_demo3()

无监督学习--K-means算法

无监督学习

没有目标值 -- 无监督学习

0f2b45f111d7495bafb2b7fc0e41b6dc.png

a59ac13284424d72b6bef9255474ce8f.png

无监督学习包含算法

2bb3855e0525401a84108fe4ecbd9de6.png

K-means原理

要几个特征就让k值等于几

?ef5f3bc1bff7483d9c46ffd12050f266.png

1e304b48c1f641ba95463d8e8db5fec5.png

K-means API

314940353a614f4c8ecb0c2ea7159f27.png

案例:k-means对Instacart Market用户聚类

流程分析

降维之后的数据

  • 预估器流程
  • 看结果
  • 模型评估

Kmeans性能评估指标

轮廓系数

bd6dc62d44064f8193fd6ef7237a2db7.png

轮廓系数值分析?

5ff20ef9661e4690b093bb2d4a059889.png

adec296a082144e892edf2183bbe8640.png

结论

a75d9a3d0a12409daae377094fc258cd.png

?轮廓系数API

d13acc86bc9040ac998918508bd6c5c8.png

import pandas as pd
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score

def  linear_demo():
    # 1.获取数据
    order_products = pd.read_csv("F:/Python/order_products__prior.csv")
    products = pd.read_csv("F:/Python/products.csv")
    orders = pd.read_csv("F:/Python/orders.csv")
    aisles = pd.read_csv("F:/Python/aisles.csv")
    # 2.合并表
    table1 = pd.merge(order_products, products, on=["product_id","product_id"])
    table2 = pd.merge(table1, aisles, on=["aisle_id","aisle_id"])
    table = pd.merge(table2, orders, on=["order_id","order_id"])
    # 3.找到user_id和aisle之间的关系
    table = pd.crosstab(tab3["user_id"], tab3["aisle"])
    data = table[:10000]
    # 4.PCA降维
    # 1)实例化一个转换器类
    transfer = PCA(n_components=0.95)
    # 2)调用fit_transform
    data_new = transfer.fit_transform(data)
    # 预估器流程
    estimator = KMeans(n_clusters=3)
    estimator.fit(data_new)
    y_predict = estimator.predict(data_new)
    print(y_predict[:300])
    # 模型评估-轮廓系数
    score = silhouette_score(data_new, y_predict)
    print(score)

if __name__ == "__main__":
    linear_demo()
    

K-means总结

特点分析:采用迭代式算法,直观易懂并且非常实用

缺点:容易收敛到局部最优解(多次聚类)

注:聚类一般做在分类之前

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 20:42:06  更:2022-10-08 20:46:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 22:18:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码