当前位置: 首页 > wzjs >正文

wordpress图片页面模板唐山网站建设方案优化

wordpress图片页面模板,唐山网站建设方案优化,wordpress连接微博专业版 下载,电影网站建设方案ppt目录 一、使用sklearn转换器处理数据 (一)、加载datasets模块中的数据集 (二)、将数据集划分为训练集和测试集 ​编辑 train_test_spli (三)、使用sklearn转换器进行数据预处理与降维 PCA 二、 构…

目录

一、使用sklearn转换器处理数据

(一)、加载datasets模块中的数据集

(二)、将数据集划分为训练集和测试集 

​编辑 train_test_spli

(三)、使用sklearn转换器进行数据预处理与降维 

PCA 

二、 构建并评价聚类模型

(一)、使用sklearn估计器构建聚类模型

 (二)、使用sklearn转换器进行数据预处理与降维

TSNE类

(三)、评价聚类模型


一、使用sklearn转换器处理数据

(一)、加载datasets模块中的数据集

sklearn库的datasets模块集成了部分数据分析的经典数据集,读者可以使用这些数据集进行数据预处理、建 模等操作,以及熟悉sklearn的数据处理流程和建模流程。

datasets模块常用数据集的加载函数及其解释,如下表所示。

使用sklearn进行数据预处理需要用到sklearn提供的统一接口——转换器(Transformer)。

如果需要加载某个数据集,那么可以将对应的函数赋值给某个变量。加载diabetes数据集,如以下代码

 

(二)、将数据集划分为训练集和测试集 

 train_test_spli

 在sklearn的model_selection模块中提供了train_test_split函数,可实现对数据集进行拆分,train_test_split函数 的基本使用格式如下。

sklearn.model_selection.train_test_split(*arrays, test_size=None, train_size=None, random_state=None, shuffle=True, stratify=None)

train_test_split函数是最常用的数据划分方法,在model_selection模块中还提供了其他数据集划分的函数,如PredefinedSplit函数、ShuffleSplit函数等。读者可以通过查看官方文档学习其使用方法。 

数值型数据类型

说明

*arrays

接收list、numpy数组、scipy-sparse矩阵、Pandas数据帧。表示需要划分的数据集。若为分类回归,则分别传入数据和标签;若为聚类,则传入数据。无默认值

test_size

接收float、int。表示测试集的大小。若传入为float型参数值,则应介于0~1之间,表示测试集在总数据集中的占比;若传入为int型参数值,则表示测试样本的绝对数量。默认为None

train_size

接收float、int。表示训练集的大小,传入的参数值说明与test_size参数的参数值说明相似。默认为None

random_state

接收int。表示用于随机抽样的伪随机数发生器的状态。默认为None

shuffle

接收bool。表示在拆分数据集前是否对数据进行混洗。默认为True

stratify

接收array。表示用于保持拆分前类的分布平衡。默认为None

 train_test_split函数可分别将传入的数据集划分为训练集和测试集。

如果传入的是一组数据集,那么生成的就是这一组数据集随机划分后的训练集和测试集,总共两组。

如果传入的是两组数据集,则生成的训练集和测试集分别两组,总共4组。

将breast_cancer数据集划分为训练集和测试集,如以下代码。

(三)、使用sklearn转换器进行数据预处理与降维 

为了帮助用户实现大量的特征处理相关操作,sklearn将相关的功能封装为转换器。 转换器主要包括3个方法:fit()、transform()和fit_transform()。转换器的3种方法及其说明如下表所示。

方法名称

方法说明

fit()

主要通过分析特征和目标值提取有价值的信息,这些信息可以是统计量、权值系数等。fit() 方法用于从数据中学习参数,不进行实际的数据转换。

transform()

主要用于对特征进行转换。transform() 方法使用已经学习到的参数对数据进行转换,因此在调用 transform() 之前必须先调用 fit()。

fit_transform()

即先调用fit()方法,然后调用transform()方法

sklearn除了提供离差标准化函数MinMaxScaler外,还提供了一系列数据预处理函数,如下表所示。

函数名称

函数说明

StandardScaler

对特征进行标准差标准化

Normalizer

对特征进行归一化

Binarizer

对定量特征进行二值化处理

OneHotEncoder

对定性特征进行独热编码处理

FunctionTransformer

对特征进行自定义函数变换

PCA 

sklearn除了提供基本的特征变换函数外,还提供了降维算法、特征选择算法,这些算法的使用也是通过转换器的方式进行的。

sklearn的decomposition模块中提供了PCA类,可实现对数据集进行PCA降维,PCA类的基本使用格式如下。 

 class sklearn.decomposition.PCA(n_components=None, *, copy=True, whiten=False, svd_solver='auto', tol=0.0, iterated_power='auto', random_state=None)

参数名称

参数说明

n_components

接收int、float、'mle'。表示降维后要保留的特征纬度数目。若未指定参数值,则表示所有特征均会被保留下来;若传入为int型参数值,则表示将原始数据降低到n个维度;若传入为float型参数值,则将根据样本特征方差来决定降维后的维度数;若赋值为“mle”,则将会使用MLE算法来根据特征的方差分布情况自动选择一定数量的主成分特征来降维。默认为None

copy

接收bool。表示是否在运行算法时将原始训练数据进行复制。若为True,则运行算法后原始训练数据的值不会有任何改变;若为False,则运行算法后原始训练数据的值将会发生改变。默认为True

whiten

接收bool。表示对降维后的特征进行标准化处理,使得具有相同的方差。默认为False

svd_solver

接收str。表示使用的SVD算法,可选randomized、full、arpack、auto。randomized一般适用于数据量大,数据维度多,同时主成分数目比例又较低的PCA降维。full是使用SciPy库实现的传统SVD算法。arpack和randomized的适用场景类似,区别在于,randomized使用的是sklearn自己的SVD实现,而arpack直接使用了SciPy库的sparse SVD实现。auto则代表PCA类会自动在上述3种算法中去权衡,选择一个合适的SVD算法来降维。默认为auto

二、 构建并评价聚类模型

(一)、使用sklearn估计器构建聚类模型

聚类的输入是一组未被标记的样本,聚类根据数据自身的距离或相似度将它们划分为若干组,划分的原则是组内(内部)距离最小化,而组间(外部)距离最大化,如图所示。

常用的聚类算法及其类别如下表所示。

算法类别

包括的主要算法

划分(分裂)方法

K-Means算法(K-平均)、K-MEDOIDS算法(K-中心点)和CLARANS算法(基于选择的算法)

层次分析方法

BIRCH算法(平衡迭代规约和聚类)、CURE算法(代表点聚类)和CHAMELEON算法(动态模型)

基于密度的方法

DBSCAN算法(基于高密度连接区域)、DENCLUE算法(密度分布函数)和OPTICS算法(对象排序识别)

基于网格的方法

STING算法(统计信息网络)、CLIOUE算法(聚类高维空间)和WAVE-CLUSTER算法(小波变换)

 sklearn常用的聚类算法模块cluster提供的聚类算法及其适用范围如下表所示。

算法名称

参数

适用范围

距离度量

K-Means

簇数

可用于样本数目很大、聚类数目中等的场景

点之间的距离

Spectral clustering

簇数

可用于样本数目中等、聚类数目较小的场景

图距离

Ward hierarchical clustering

簇数

可用于样本数目较大、聚类数目较大的场景

点之间的距离

Agglomerative clustering

簇数、链接类型、距离

可用于样本数目较大、聚类数目较大的场景

任意成对点线图间的距离

聚类算法模块cluster提供的聚类算法及其适用范围续表。

算法名称

参数

适用范围

距离度量

DBSCAN

半径大小、最低成员数目

可用于样本数目很大、聚类数目中等的场景

最近的点之间的距离

Birch

分支因子、阈值、可选全局集群

可用于样本数目很大、聚类数目较大的场景

点之间的欧式距离

聚类算法实现需要使用sklearn估计器(estimator)。

sklearn估计器拥有fit()和predict()两个方法,其说明如下表所示。

方法名称

方法说明

fit()

fit()方法主要用于训练算法。该方法可接收用于有监督学习的训练集及其标签两个参数,也可以接收用于无监督学习的数据

predict()

predict()方法用于预测有监督学习的测试集标签,亦可以用于划分传入数据的类别

 (二)、使用sklearn转换器进行数据预处理与降维

TSNE类

使用customer数据集,通过sklearn估计器构建K-Means聚类模型,对客户群体进行划分。

并使用sklearn的manifold模块中的TSNE类可实现多维数据的可视化展现功能,查看聚类效果,TSNE类的基本使用格式如下。

class sklearn.manifold.TSNE(n_components=2, *, perplexity=30.0, early_exaggeration=12.0, learning_rate=200.0, n_iter=1000, n_iter_without_progress=300, min_grad_norm=1e-07, metric='euclidean', init='random', verbose=0, random_state=None, method='barnes_hut', angle=0.5, n_jobs=None, square_distances='legacy')

import pandas as pd
from sklearn.manifold import TSNE
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt# 读取数据集
filepath = 'D:\Desktop\data\customer.csv'
customer = pd.read_csv(filepath, encoding='gbk')
customer_data = customer.iloc[:, :-1]
customer_target = customer.iloc[:, -1]
# Kmeans聚类
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=6,random_state=6).fit(customer_data)
# 使用TSNE进行数据降维,降成两维
tsne = TSNE(n_components=2, init='random',random_state=2).fit(customer_data)
df = pd.DataFrame(tsne.embedding_)  # 将原始数据转
df['labels'] = kmeans.labels_  # 将聚类结果存储进df
# 提取不同标签的数据
df1 = df[df['labels'] == 0]
df2 = df[df['labels'] == 1]
df3 = df[df['labels'] == 2]
df4 = df[df['labels'] == 3]
df5 = df[df['labels'] == 4]
df6 = df[df['labels'] == 5]# 绘制图形
fig = plt.figure(figsize=(9, 6))  # 设定空白画布,为
# 用不同的颜色表示不同数据
plt.plot(df1[0], df1[1], 'bo', df2[0], df2[1], 'r*',df3[0], df3[1], 'gD', df4[0], df4[1], 'kD',df5[0], df5[1], 'ms', df6[0], df6[1], 'co' )
plt.show()  # 显示图片

(三)、评价聚类模型

除了轮廓系数评价法以外的评价方法,在不考虑业务场景的情况下都是得分越高,其效果越好,最高分值为1。

而轮廓系数评价法则需要判断不同类别数目情况下的轮廓系数的走势,寻找最优的聚类数目。

综合以上聚类评价方法,在真实值作为参考的情况下,几种方法均可以很好地评估聚类模型。

在没有真实值作为参考的时候,轮廓系数评价法和Calinski-Harabasz指数评价法可以结合使用。 

from sklearn.metrics import fowlkes_mallows_score
for i in range(1, 7):# 构建并训练模型kmeans = KMeans(n_clusters=i, random_state=6).fit(customer_data) score = fowlkes_mallows_score(customer_target, kmeans.labels_)print('customer数据聚%d类FMI评价分值为:%f' % (i, score))from sklearn.metrics import silhouette_score
silhouettteScore = []
for i in range(2, 10):# 构建并训练模型kmeans = KMeans(n_clusters=i,random_state=6).fit(customer_data) score = silhouette_score(customer_data, kmeans.labels_)silhouettteScore.append(score)
plt.figure(figsize=(10, 6))
plt.plot(range(2, 10), silhouettteScore,
linewidth=1.5, linestyle='-')plt.show()

 

http://www.dtcms.com/wzjs/51113.html

相关文章:

  • 网站后台管理系统php太原首页推广
  • 电子商务网站的设计要求seo优化网站优化
  • 西宁做网站需要多少钱怎么制作网页推广
  • wordpress后台演示系统360搜索优化
  • wordpress界面只有文字北京seo顾问
  • 企业网站 联系我们山西百度推广开户
  • ios风格网站模板长沙关键词优化方法
  • 做网站的计划书搭建网站需要什么技术
  • 无锡阳山镇网站建设注册网站流程
  • 网站手机版管理链接搜索引擎推广案例
  • 不关站备案wordpress快速网站推广
  • 地方网站还有得做吗个人网站制作
  • 公司网站重新建站通知一个企业seo网站的优化流程
  • 建程网工程信息是否可靠网站seo平台
  • 海洋网站建设网络建站公司最新报价
  • 如何对自己建设的网站进行推广北京百度总部
  • 电子商务网站建设的整体规划seo推广一个月见效
  • 泰安信息平台体温曹操seo博客
  • 广东微信网站制作费用专业百度seo排名优化
  • 太原工程建设招投标信息网站seo具体seo怎么优化
  • 做网站有一个火箭回顶部百度指数官网
  • 电子商务网站怎么做素材包怎样在网上做推广
  • 三种常用的网站设计软件百度关键词推广公司哪家好
  • 做薪酬调查的网站域名注册服务机构
  • 手机如何制作一个网站中国最新军事新闻
  • 云南建设投资控股集团有限公司网站石家庄最新消息
  • 市场营销网站建设新型网络搜索引擎
  • 支付网站设计网站ip查询
  • 网站开发公司气氛十大搜索引擎排名
  • 做网站 做app有没有好用的网站推荐