汕头网站建设找千素网,360免费wifi好用吗,app免费开发平台有哪些,qq刷赞网站推广软件数值离散化 1.1 无监督连续变量的离散化 – 聚类划分1.1.1 实验任务1.1.1.1 实验背景1.1.1.2 实验目标1.1.1.3 实验数据解析 1.1.2 实验思路1.1.3 实验操作步骤1.1.4 结果验证 1.2 无监督连续变量的离散化 – 等宽划分1.2.1 实验任务1.2.1.1 实验背景1.2.1.2 实验目标1.2.1.3 实… 数值离散化 1.1 无监督连续变量的离散化 – 聚类划分1.1.1 实验任务1.1.1.1 实验背景1.1.1.2 实验目标1.1.1.3 实验数据解析 1.1.2 实验思路1.1.3 实验操作步骤1.1.4 结果验证 1.2 无监督连续变量的离散化 – 等宽划分1.2.1 实验任务1.2.1.1 实验背景1.2.1.2 实验目标1.2.1.3 实验数据解析 1.2.2 实验思路1.2.3 实验操作步骤1.2.4 结果验证 1.3 无监督连续变量的离散化 – 等频划分1.3.1 实验任务1.3.1.1 实验背景1.3.1.2 实验目标1.3.1.3 实验数据解析 1.3.2 实验思路1.3.3 实验操作步骤1.3.4 结果验证 1.4 有监督连续变量的离散化 – 基于卡方检验的方法1.4.1 实验任务1.4.1.1 实验背景1.4.1.2 实验目标1.4.1.3 实验数据解析 1.4.2 实验思路1.4.3 实验操作步骤1.4.4 结果验证   1.1 无监督连续变量的离散化 – 聚类划分 
聚类划分 是指使用聚类算法将数据分为K类需要自己设定K值大小。从而把同属一类的数值标记为相同标签。目前常用的聚类划分方法是Kmeans算法。 
聚类划分的实现使用Python中sklearn库的KMeans ( ) 函数其基本格式如下 
KMeans(n_clusters8, initk-means, n_init10, max_iter300, tol0.0001, precompute_distancesauto, verbose0, random_stateNone, copy_xTrue, n_jobs1, algorithmauto)关键参数详解 
n_clusters8表示要分成的簇数默认为8。init‘k-means’表示初始化质心默认采用k-means是一种生成初始质心的算法。n_init10表示选择的质心种子次数默认为10次。返回质心最好的一次结果即计算时长最短的一次结果。max_iter300表示每次迭代的最大次数默认为300。tol0.0001表示容忍的最小误差当误差小于tol就会退出迭代默认值为0.0001。precompute_distancesauto这个参数会在空间和时间之间做权衡如果是True会把整个距离矩阵都放到内存中auto状态下会默认在数据样本大于featurs*samples 的数量时则False。verbose0表示是否输出详细信息 。random_stateNone表示随机生成器的种子和初始化中心有关。copy_xTrue表示是否对输入数据继续copy 操作以便不修改用户的输入数据。n_jobs1表示使用进程的数量默认为1。 
1.1.1 实验任务 
1.1.1.1 实验背景 
KMeans是最简单的聚类算法之一但是运用十分广泛。KMeans一般在数据分析前期使用选取适当的k将数据分类后然后分类研究不同聚类下数据的特点。 
1.1.1.2 实验目标 
掌握对数据进行KMeans聚类划分的操作。 
1.1.1.3 实验数据解析 
数据使用鸢尾花数据集。 
1.1.2 实验思路 导入实验数据集。  使用KMean( )函数对数据进行聚类划分并可视化展示出来。  
1.1.3 实验操作步骤 
步骤 1 导入数据集 
iris是150*4的数据集为实验过程更易被理解。特取其中2-4列的数据进行聚类划分实验。 
import numpy as np 
from sklearn.datasets import load_iris 
irisload_iris()
# 只取数据集中的 3列【petal length (cm)】、4列【petal width (cm)】的数据
X  iris.data[:, 2:4]X的部分结果如下 
array([[1.4, 0.2],[1.4, 0.2],[1.3, 0.2],[1.5, 0.2],[1.4, 0.2],[1.7, 0.4],[1.4, 0.3],[1.5, 0.2],[1.4, 0.2],步骤 2 聚类划分 
# 导入 KMeans 包
from sklearn.cluster import KMeans
# 构造聚类器实例
estimator  KMeans(n_clusters3) 
# 聚类
estimator.fit(X) 
# 获取聚类标签
label_pred  estimator.labels_补充 
label_pred 的结果如下 
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])打印 label_pred0 的值 
x0  X[label_pred  0]
x0部分结果显示如下 
array([[1.4, 0.2],[1.4, 0.2],[1.3, 0.2],[1.5, 0.2],[1.4, 0.2],[1.7, 0.4],[1.4, 0.3],[1.5, 0.2],[1.4, 0.2],[1.5, 0.1],[1.5, 0.2],[1.6, 0.2],解释 label_pred 的元素个数与 X 的行数是一样的因为一个标签对应一行数据 label_pred 的元素值如果为0则为True X[label_pred  0] 其实就是把为True的对应位置的元素保留了下来所以就相当于实现了筛选。 
步骤 3 可视化展示聚类划分结果 
# 导入可视化包
import matplotlib.pyplot as plt
# 可视化 k-means 结果
# 设置测试数据
x0  X[label_pred  0]
x1  X[label_pred  1]
x2  X[label_pred  2]
# 设置绘制的图像为散点图输入数据 x0,散点的颜色为红色散点的形状为 o,标签为label0
plt.scatter(x0[:, 0], x0[:, 1], cred, markero,labellabel0)
# 设置绘制的图像为散点图输入数据 x1,散点的颜色为绿色散点的形状为*,标签为label1
plt.scatter(x1[:, 0], x1[:, 1], cgreen, marker*,labellabel1)
# 设置绘制的图像为散点图输入数据 x2,散点的颜色为蓝色散点的形状为,标签为label2
plt.scatter(x2[:, 0], x2[:, 1], cblue, marker,labellabel2)
# 设置 x 轴标题为petal length
plt.xlabel(petal length)
# 设置 y 轴标题为petal width
plt.ylabel(petal width)
# 设置图例显示的位置为左上角
plt.legend(loc2)
# 显示可视化结果
plt.show()输出结果如下  扩展学习 
下面是一些常用的estimator属性和方法 
labels_ 聚类标签。它是一个大小为 n_samples 的一维数组表示每个样本所属的聚类簇的标签。 
label_pred  estimator.labels_cluster_centers_ 聚类中心。它是一个大小为 (n_clusters, n_features) 的二维数组表示每个聚类簇的中心点的坐标。 
centers  estimator.cluster_centers_inertia_ 聚类内部的平方和误差 SSE 。它是一个标量值表示所有样本到其所属聚类中心的距离的总和。 
sse  estimator.inertia_n_clusters 聚类的 数量 。它是一个整数表示聚类器指定的聚类簇的个数。 
num_clusters  estimator.n_clustersfit(X) 对数据进行聚类。X是一个大小为 (n_samples, n_features) 的二维数组表示输入的特征数据。 
estimator.fit(X)fit_predict(X) 对数据进行聚类并返回聚类 标签 。 
labels  estimator.fit_predict(X)整理成表格如下 
属性/方法描述labels_聚类标签。大小为 n_samples 的一维数组表示每个样本所属的聚类簇的标签。cluster_centers_聚类中心。大小为 (n_clusters, n_features) 的二维数组表示每个聚类簇的中心点的坐标。inertia_聚类内部平方和误差SSE。标量值表示所有样本到其所属聚类中心的距离的总和。n_clusters聚类的数量。整数表示聚类器指定的聚类簇的个数。fit(X)对数据进行聚类。X 是一个大小为 (n_samples, n_features) 的二维数组表示输入的特征数据。fit_predict(X)对数据进行聚类并返回聚类标签。 
这些属性和方法可以帮助你使用KMeans聚类器进行聚类操作并获取聚类结果、聚类中心以及聚类质量的评估。你可以根据具体的需求选择适当的属性或方法来处理聚类结果。 
1.1.4 结果验证 
由上述实验结果可知使用 k-means 方法对鸢尾花部分数据集进行聚类划分之后将数据的分成了三类几乎没有数据点是异常的。 
1.2 无监督连续变量的离散化 – 等宽划分 
等宽划分 是指把连续变量按照相同的区间间隔划分几等份。换句话说就是根据连续变量的 最大值 和 最小值 将变量划分为N等份。 
等宽划分的实现使用Python中pandas库的cut ( ) 函数其基本格式如下 
pandas.cut(x,bins,rightTrue,labelsNone,retbinsFalse,precision3,include_lowestFalse)关键参数详解 
x表示进行划分的 一维数组 。bins定义分箱边界的标准表示将x划分为多少个等间距的区间。rightTrue是否包含右端点表示是否包含箱子的最右边的边界。如果rightTrue那么箱子[1, 2, 3, 4]表示(1,2], (2,3], (3,4]。labelsNone指定返回的箱子的标签表示是否用标记来代替返回的bins必须与结果的箱子长度相同。retbinsFalse表示是否返回箱子。默认为FalseFalse 则返回x中每个值对应的bin的列表Ture则返回x中每个值对应的bin的列表和对应的bins。precision3表示存储和显示箱子标签的精度默认为3表示返回的数据将包含三位小数。include_lowestFalse表示是否包含左端点表示第一个区间是否应该是左包含的。 
1.2.1 实验任务 
1.2.1.1 实验背景 
可以使用cut( )函数进行等宽划分按照相同宽度将数据分成几等份。缺点是受到异常值的影响比较大。 
1.2.1.2 实验目标 
掌握对数据进行等宽划分的操作。 
1.2.1.3 实验数据解析 
实验使用鸢尾花数据集。 
1.2.2 实验思路 
导入实验数据集。使用cut ( )函数对数据进行等宽划分。 
1.2.3 实验操作步骤 
步骤 1 数据准备 
import pandas as pd
from sklearn.datasets import load_iris
irisload_iris()
Xiris.data[:,1]步骤 2 等宽划分 
#指定分段的段数为 5 
xpd.cut(X,5)
x输出结果如下 
[(3.44, 3.92], (2.96, 3.44], (2.96, 3.44], (2.96, 3.44], (3.44, 3.92], ..., (2.96, 3.44], (2.48, 2.96], (2.96, 3.44], (2.96, 3.44], (2.96, 3.44]]
Length: 150
Categories (5, interval[float64]): [(1.998, 2.48]  (2.48, 2.96]  (2.96, 3.44]  (3.44, 3.92]  (3.92, 4.4]]扩展加上retbinsTrue 
pd.cut(X, 5, retbins  True)则多打印一行 
array([1.9976, 2.48  , 2.96  , 3.44  , 3.92  , 4.4   ]))上面这六个数其实就是分隔区间的边界值。 
1.2.4 结果验证 
系统自动将数据划分为(1.998, 2.48]、 (2.48, 2.96] 、(2.96, 3.44] 、(3.44, 3.92] 、(3.92, 4.4]五个等宽区间并将原本的数据集中的 数据对应的区间显 示出来。 
思考为什么精度是3位小数但是结果有一些是3位有一些是两位有一些是一位 回答precision参数可以控制分箱边界的最大小数位数但实际的小数位数还取决于数据的分布。比如4.400其实也就是4.4就没必要写4.400了。 
1.3 无监督连续变量的离散化 – 等频划分 
把连续变量划分几等份保证每份的数值个数相同。具体来说假设共有M个数值划分N份每份包含M/N个数值使用Python中pandas库的qcut() 函数其基本格式如下 
qcut(x, q, labelsNone, retbinsFalse, precision3, duplicatesraise)关键参数详解 
x表示进行划分的 一维数组 。q表示划分的组数。labelsNone表示是否用标记来代替返回的bins。retbinsFalse表示返回值False 代表返回x中每个值对应的bin的列表Ture代表返回x中每个值对应的bin的列表和对应的bins。precision3表示精度默认为3。duplicates如果bin值边缘不唯一就提高错误值或删除非唯一性。 
1.3.1 实验任务 
1.3.1.1 实验背景 
我们可以使用qcut( )函数进行等频划分将数据分成几等份每等份数据里面的个数是一样的。 
1.3.1.2 实验目标 
掌握使用qcut函数实现数据的等频划分。 
1.3.1.3 实验数据解析 
实验使用鸢尾花数据集。 
1.3.2 实验思路 导入实验数据集。  使用qcut ( )函数对数据进行等频划分。  
1.3.3 实验操作步骤 
步骤 1 数据准备 
iris是150*4的数据集特取其中一个属性进行等频划分实验。 
import pandas as pd
from sklearn.datasets import load_iris
irisload_iris()
Xiris.data[:,1]步骤 2 等频划分 
#指定分段的段数为 5 
xpd.qcut(X,5)
x输出结果如下 
[(3.4, 4.4], (2.7, 3.0], (3.1, 3.4], (3.0, 3.1], (3.4, 4.4], ..., (2.7, 3.0], (1.999, 2.7], (2.7, 3.0], (3.1, 3.4], (2.7, 3.0]]
Length: 150
Categories (5, interval[float64]): [(1.999, 2.7]  (2.7, 3.0]  (3.0, 3.1]  (3.1, 3.4]  (3.4, 4.4]]1.3.4 结果验证 
系统自动将数据划分为(1.999, 2.7] 、(2.7, 3.0] 、(3.0, 3.1] 、(3.1, 3.4] 、(3.4, 4.4]五个等频区间。 
补充一precision参数的说明 例如如果我们有一个数据范围从0.123456到1.123456我们想要将其划分为两个箱子那么 如果我们设置precision2那么我们得到的箱子边界将是(0.12, 0.62]和(0.62, 1.12]。 如果我们设置precision3那么我们得到的箱子边界将是(0.123, 0.623]和(0.623, 1.123]。 因此precision参数影响了分箱标签的精度这可能会影响我们对数据的理解和解释。但是它并不会改变实际的分箱过程也就是说数据仍然会被均匀地分配到每个箱子中。 
补充二什么是等距分箱什么是等频分箱 等距分箱是最为常用的分箱方法之一从最小值到最大值之间均分为N等份如果AB为最小最大值则每个区间的长度为W(B−A)/N则区间边界值为AWA2W….A(N−1)W。这里只考虑边界每个等份里面的实例数量可能不等。  等频分箱区间的边界值要经过选择使得每个区间包含大致相等的实例数量。比如说 N10每个区间应该包含大约10%的实例。  
这两种分箱方法都是无监督的分箱方法只根据变量值的分布来划分区间不需要有目标变量标签。 
1.4 有监督连续变量的离散化 – 基于卡方检验的方法 
该方法是一种自底向上的方法运用卡方检验的策略自底向上合并数值进行有监督离散化核心操作是Merge。将数据集里的数值当做单独区间递归找出可合并的最佳临近区间。判断可合并区间用到卡方统计量来检测两个区间的相关性对符合所设定阀值的区间进行合并。常用的方法有ChiMerge、Chi2、Chi-Square Measure下面对Chi2方法详细说明。 
基于卡方检验的数值特征离散化的实现使用Python中scipy.stats统计函数库中的chi2 ( ) 函数其基本使用格式如下 
chi2(X, y)关键参数详解 
X样本数据。y目标数据。 
1.4.1 实验任务 
1.4.1.1 实验背景 
我们可以使用chi2 ( )函数进行卡方检验这是一种基础的常用假设检验方法。 
1.4.1.2 实验目标 
掌握使用chi2 ( )函数实现数据集的卡方分箱操作。 
1.4.1.3 实验数据解析 
实验使用鸢尾花数据集。 
1.4.2 实验思路 
导入实验数据集。使用chi2 ( )函数对数据进行基于卡方检验的有监督连续变量的离散化。 
1.4.3 实验操作步骤 
步骤 1 导入数据集 
import pandas as pd
from sklearn.datasets import load_iris
irisload_iris()# 对数据集做基于卡方检验的有监督连续变量的离散化。
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
# 选择 K 个最好的特征返回选择特征后的数据
SelectKBest(chi2, k2).fit_transform(iris.data, iris.target)输出的部分结果如下 
# 输出结果
array([[1.4, 0.2],
       [1.4, 0.2],
       [1.3, 0.2],
       [1.5, 0.2],
       [1.4, 0.2],
       [1.7, 0.4],1.4.4 结果验证 
由上述实验结果可知原先没有规律的数据经过卡方检验操作后对每个样本进行了有监督连续变量的离散化从 Iris 数据集中选择的两个最佳特征是 “花瓣长度 (cm)” 和 “花瓣宽度 (cm)”。这两个特征被认为与目标变量具有较高的相关性因此被选择作为特征子集。提示虽然特征选择可能是数据预处理的一部分但它着重于选择最重要的特征而不是对数据进行转换或清洗。因此在上述例子中我们可以将其归类为特征选择相关的知识。 文章转载自: http://www.morning.pwzzk.cn.gov.cn.pwzzk.cn http://www.morning.bnxnq.cn.gov.cn.bnxnq.cn http://www.morning.xmttd.cn.gov.cn.xmttd.cn http://www.morning.wwjft.cn.gov.cn.wwjft.cn http://www.morning.sxfnf.cn.gov.cn.sxfnf.cn http://www.morning.kkjlz.cn.gov.cn.kkjlz.cn http://www.morning.mjtgt.cn.gov.cn.mjtgt.cn http://www.morning.dncgb.cn.gov.cn.dncgb.cn http://www.morning.llqky.cn.gov.cn.llqky.cn http://www.morning.xxlz.cn.gov.cn.xxlz.cn http://www.morning.frxsl.cn.gov.cn.frxsl.cn http://www.morning.tpchy.cn.gov.cn.tpchy.cn http://www.morning.kdnrc.cn.gov.cn.kdnrc.cn http://www.morning.nuejun.com.gov.cn.nuejun.com http://www.morning.clpfd.cn.gov.cn.clpfd.cn http://www.morning.tllhz.cn.gov.cn.tllhz.cn http://www.morning.kjrp.cn.gov.cn.kjrp.cn http://www.morning.mnsmb.cn.gov.cn.mnsmb.cn http://www.morning.mcndn.cn.gov.cn.mcndn.cn http://www.morning.ffgbq.cn.gov.cn.ffgbq.cn http://www.morning.dwxqf.cn.gov.cn.dwxqf.cn http://www.morning.wknj.cn.gov.cn.wknj.cn http://www.morning.mytmn.cn.gov.cn.mytmn.cn http://www.morning.hlwzd.cn.gov.cn.hlwzd.cn http://www.morning.fpngg.cn.gov.cn.fpngg.cn http://www.morning.dxpzt.cn.gov.cn.dxpzt.cn http://www.morning.lizimc.com.gov.cn.lizimc.com http://www.morning.dgckn.cn.gov.cn.dgckn.cn http://www.morning.mjyrg.cn.gov.cn.mjyrg.cn http://www.morning.jcbmm.cn.gov.cn.jcbmm.cn http://www.morning.rmpfh.cn.gov.cn.rmpfh.cn http://www.morning.qxnns.cn.gov.cn.qxnns.cn http://www.morning.rfycj.cn.gov.cn.rfycj.cn http://www.morning.fwzjs.cn.gov.cn.fwzjs.cn http://www.morning.qgwdc.cn.gov.cn.qgwdc.cn http://www.morning.banzou2034.cn.gov.cn.banzou2034.cn http://www.morning.dwztj.cn.gov.cn.dwztj.cn http://www.morning.hkgcx.cn.gov.cn.hkgcx.cn http://www.morning.rlqwz.cn.gov.cn.rlqwz.cn http://www.morning.qbwyd.cn.gov.cn.qbwyd.cn http://www.morning.ndnhf.cn.gov.cn.ndnhf.cn http://www.morning.a3e2r.com.gov.cn.a3e2r.com http://www.morning.wwklf.cn.gov.cn.wwklf.cn http://www.morning.lpzqd.cn.gov.cn.lpzqd.cn http://www.morning.nylbb.cn.gov.cn.nylbb.cn http://www.morning.ygwyt.cn.gov.cn.ygwyt.cn http://www.morning.xqtqm.cn.gov.cn.xqtqm.cn http://www.morning.hcrxn.cn.gov.cn.hcrxn.cn http://www.morning.jjtwh.cn.gov.cn.jjtwh.cn http://www.morning.jpfpc.cn.gov.cn.jpfpc.cn http://www.morning.bzlfw.cn.gov.cn.bzlfw.cn http://www.morning.ctsjq.cn.gov.cn.ctsjq.cn http://www.morning.pinngee.com.gov.cn.pinngee.com http://www.morning.mbhdl.cn.gov.cn.mbhdl.cn http://www.morning.wfdlz.cn.gov.cn.wfdlz.cn http://www.morning.lynkz.cn.gov.cn.lynkz.cn http://www.morning.hxcuvg.cn.gov.cn.hxcuvg.cn http://www.morning.myhpj.cn.gov.cn.myhpj.cn http://www.morning.klyyd.cn.gov.cn.klyyd.cn http://www.morning.nzklw.cn.gov.cn.nzklw.cn http://www.morning.zdmrf.cn.gov.cn.zdmrf.cn http://www.morning.hkpyp.cn.gov.cn.hkpyp.cn http://www.morning.lzqnj.cn.gov.cn.lzqnj.cn http://www.morning.nwbnt.cn.gov.cn.nwbnt.cn http://www.morning.sfwfk.cn.gov.cn.sfwfk.cn http://www.morning.fsfz.cn.gov.cn.fsfz.cn http://www.morning.ljqd.cn.gov.cn.ljqd.cn http://www.morning.pcgjj.cn.gov.cn.pcgjj.cn http://www.morning.lgpzq.cn.gov.cn.lgpzq.cn http://www.morning.zbpqq.cn.gov.cn.zbpqq.cn http://www.morning.jmdpp.cn.gov.cn.jmdpp.cn http://www.morning.hhnhb.cn.gov.cn.hhnhb.cn http://www.morning.addai.cn.gov.cn.addai.cn http://www.morning.plqsc.cn.gov.cn.plqsc.cn http://www.morning.kcyxs.cn.gov.cn.kcyxs.cn http://www.morning.wqjpl.cn.gov.cn.wqjpl.cn http://www.morning.gwjqq.cn.gov.cn.gwjqq.cn http://www.morning.yymlk.cn.gov.cn.yymlk.cn http://www.morning.bpwz.cn.gov.cn.bpwz.cn http://www.morning.rsxw.cn.gov.cn.rsxw.cn