【数据可视化】Data Reduction和加利福尼亚的房价数据集数据可视化以及Kettle的初步介绍

news2024/11/14 21:15:54

一.数据归约Data Reduction

  • 对海量数据进行复杂的数据分析和机器学习将需要很长时间,使得这种分析不现实或不可行。
  • 数据归约技术可以用来得到数据集的归约表示,它小得多,但仍接近保持原数据的完整性。
  • 对归约后的数据集计算将更有效,并产生相同(或几乎相同)的结果。

1.1数据归约

数据归约策略: (1)数据立方聚集:对数据立方做聚集操作

(2)维度归约:删除不重要的属性

(3)数值归约: 一用规模较小的数据表示、替换或估计原始数据

(4)数据压缩 (5)离散化和概念分层(concept hierarchy)-属性的原始数值用区间值或较高层的概念替换

1.2 概念分层

1.3数据立方体聚集

  • 数据立方体存储多维聚集信息,提供对预计算的汇总数据进行快速访问。 如:立方体内存储季度销售额,若对年销售额感兴趣,可对数据执行聚集操作,例如sum()等。

1.4属性子集选择(维度归约)

  • 通过删除不相关或冗余的属性(或维)减小数据集。

  • 其目标是找出最小属性集,使得数据类的概率分布尽可能地接近使用所有属性得到的原分布。

  • 通过穷举搜索找出有属性的最佳子集是不现实的。通常采用压缩搜索空间的启发式算法。如贪心算法:从局部最优到全局最优。 -逐步向前选择

    -逐步向后删除

    -向前选择和向后删除的结合

    -决策树归纳

1.5维度归约

维度归约使用数据编码或变换,以便得到原数据的归约或““压缩”表示。分为无损和有损两种

  • 主要方法:
    • 中-串压缩:无损,但只允许有限的数据操作。
    • 小波变换((DWT) :有损,适合高维数据。
    • -主成分分析(PC A) :有损,能更好地处理稀疏数据。

1.6 数值归约

1.通过选择替代的、"较小的"数据表示形式来减少数据量。 2.可以分为参数方法和非参数方法。

  • 参数方法:回归(regression)和对数线性模型

  • 非参数方法:直方图、聚类、抽样

1.6.1 抽样

用数据的小得多的随机样本(子集)代替大型数据集。

抽样方法

  • s个样本无放回简单随机抽样(SRSWOR)

  • s个样本有放回简单随机抽样(SRSWR)

  • 聚类抽样

  • 分层抽样

二.加利福尼亚的房价数据集数据可视化

采用加利福尼亚的房价数据集,准备工作:

from sklearn.datasets import fetch_california_housing
import pandas as pd
housing = fetch_california_housing()
X = housing.data
y = housing.target
df=pd.DataFrame()
for i in range(8):
    df[housing["feature_names"][i]]=X[:,i]
df["target"]=y
# df.to_csv("fetch_california_housing.csv",index=None)
pd.set_option('display.max_column', None)
df.describe()
复制代码

进行绘图

feature = 1
feature_other = 2
# feature_o=0
plt.figure(figsize=(18,18))
feature_max_num=X.shape[1]
for feature in range(feature_max_num):
    for feature_other in range(feature_max_num):
        plt.subplot(feature_max_num,feature_max_num,feature*feature_max_num+feature_other+1,frame_on=True)
        if feature==feature_other:
            plt.hist(X[:,feature])
        else:
            plt.scatter(X[:,feature], X[:, feature_other], color='green', marker='o',label='class_0')
plt.show()
复制代码

运行截图如下:

散点图如下

new_subset=df.copy()

for col in new_subset.columns:
    if col == "target":
        next
    else:
        new_subset["sqrt_"+col]=np.sqrt(abs(new_subset[col]))
        new_subset["log_" + col] = np.log(abs(new_subset[col]))

pd.plotting.scatter_matrix(df,figsize=(18,18))
plt.show()
复制代码

运行结果如下:

热力图:

上面的图只能看出个大概轮廓来, 看不出别的什么信息。我们可以将alpha选项(透明度) 设置成0.1.这样能够区分出高密度数据点的位置

绘制Longitude与Latitude的散点图。alpha设置的越小透明度越低

plt.figure(figsize=(12, 12))
plt.scatter(new_subset['Longitude'], new_subset['Latitude'] , alpha=0.1)
plt.xlabel("Longitude",size=20)
plt.ylabel('Latitude',size=20)
plt.title('Longitude vs Latitude',size=20)
plt.show()
复制代码

运行结果如下:

现在可以清楚的看到哪里是高密度的区域了。除了区域密度,我们更关心房价的分布。

plt.figure(figsize=(12,12))

scatter=plt.scatter(x = df['Longitude'], y = df['Latitude'], label = "Population",
                      c=df['target'], s = df['Population']/100,
                    cmap=plt.get_cmap('jet'))
plt.legend()
plt.colorbar(scatter).set_label("Median_house_value")
plt.show()
复制代码

运行结果如下:

三. Kettle

3.1 什么是Kettle?

Kettle是一款开源的ETL工具,纯java编写,可以在Window、Linux、 Unix上运行,绿色无需安装,数据抽取高效稳定ETL: Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程对各种数据进行处理、转换、迁移,需要掌握一种ETL工具的使用,我们要学习的ETLT具是Kettle

Kettle中文名称叫水壶,该项目的主程序员MATT希望把各种数据放到一个壶里,然后以一种指定的格式流出2006年,Pentaho公司收购了Kettle项目,原Kettle项目发起人Matt Casters加入了Pentaho团队Kettle现在已经更名为PDI:Pentaho Data Integration,即Pentaho数据集成。

3.2 Data Integration

3.3 Kettle界面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/57079.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]计算机毕业设计JAVA校园拓展活动管理系统

[附源码]计算机毕业设计JAVA校园拓展活动管理系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM my…

[附源码]Python计算机毕业设计Django基于vue的软件谷公共信息平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

A-Level化学例题解析及练习Co-ordinate bond

今日知识点:Co-ordinate bond (or Dative covalent bond)例题 Q: When solid aluminium chloride is heated, Al2Cl6 is formed. Which bonding is present in Al2Cl6? A Covalent and co-ordinate (dative covalent) B Covalent only C Ionic and co-ordina…

MySQL8高级_读写分离和分库分表

MySQL8高级_读写分离和分库分表 第01章 高性能架构模式 互联网业务兴起之后,海量用户加上海量数据的特点,单个数据库服务器已经难以满足业务需要,必须考虑数据库集群的方式来提升性能。高性能数据库集群的第一种方式是“读写分离”&#xff…

你知道MySQL锁,到底在锁什么吗?

前言 MySQL锁写过不少,那么这篇文章还是来和大家聊一聊MySQL的锁。 只要学计算机,「锁」永远是一个绕不过的话题。MySQL锁也是一样。 一句话解释MySQL锁: MySQL锁是解决资源竞争的一种方案。 短短一句话却包含了3点值得我们注意的事情&a…

C++——隐式类型转换

隐式类型转换&#xff08;构造函数的隐式调用&#xff09; 先看一下隐式类型转换如何发生吧&#xff1a; #include <iostream> using namespace std;class point {public:int x,y;point(int x0, int y0):x(x),y(y) {} }void displayPoint(const point &p) {cout &l…

基于场景分析法的电动车优化调度(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f389;作者研究&#xff1a;&#x1f3c5;&#x1f3c5;&#x1f3c5;主要研究方向是电力系统和智能算法、机器学…

计算机图形学中的曲线问题

文章目录免责前言拉格朗日插值多项式第一步&#xff1a;得到一个基函数第二步&#xff1a;得到所有基函数第三步&#xff1a;对所有基函数进行线性组合举例验证三次埃尔米特插值多项式第一步&#xff1a;得到第一维基函数第二步&#xff1a;得到第二维基函数第三步&#xff1a;…

【Linux03-基本工具之make和makefile】Linux下的项目构建工具+进度条小程序

前言 接上篇&#xff0c;接着学习基本工具。 博主水平有限&#xff0c;不足之处望请斧正。 三、make和makefile 是什么 makefile(Makefile)&#xff1a;用来写入 依赖关系和依赖方法 的文件。 make&#xff1a;用来执行 makefile 的命令。 为什么 允许我们自动化构建项目…

必看知识点:Redis 中的原子操作(1)-Redis 中命令的原子性

必看知识点&#xff1a;Redis 中的原子操作(1)-Redis 中命令的原子性 Redis 如何应对并发访问 Redis 中处理并发的方案 业务中有时候我们会用 Redis 处理一些高并发的业务场景&#xff0c;例如&#xff0c;秒杀业务&#xff0c;对于库存的操作。。。 先来分析下&#xff0c…

CMake中add_executable的使用

CMake中的add_executable命令用于使用指定的源文件向项目(project)添加可执行文件&#xff0c;其格式如下&#xff1a; add_executable(<name> [WIN32] [MACOSX_BUNDLE][EXCLUDE_FROM_ALL][source1] [source2 ...]) # Normal Executables add_executable(<name> I…

芯片漫游指南(1)-- UVM世界观

目录1 uvm中的学习内容2 类库地图3 工厂机制3.1 工厂的意义3.2 工厂提供的便利3.3 覆盖方法4 核心基类4.1 uvm_object4.2 域的自动化4.3 拷贝&#xff08;copy&#xff09;4.4 比较4.5 打印4.6 打包和解包5 phase机制5.1 概述5.2 phase的九个执行机制5.3 UVM仿真顺序6 config机…

Jenkins安装和配置 (一)

(一) 环境准备 准备一台linux虚拟机&#xff0c;我这里选择的是Ubuntu&#xff0c;安装jdk、maven、git环境 Ubuntu 16.04 虚拟机JDK 1.8MAVEN 3.3.9GIT (二) Jenkins下载安装 Jenkins安装支持以下几种方式&#xff1a; npm包下载安装war包下载安装docker镜像下载安装 这里我…

开发一个简单的http模板之序章

流程 1.当通过开发HTTP模块来实现产品功能时&#xff0c;是可以完全享用Nginx的优秀设计所带来的、 与官方模块相同的高并发特性的。不过&#xff0c;如何开发一个充满异步调用、无阻塞的HTTP模块 呢2. 需要把程序嵌入到Nginx中&#xff0c;也就是说&#xff0c;最终编译出的二…

考虑阶梯式碳交易机制与电制氢的综合能源系统热电优化(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f4dd;目前更新&#xff1a;&#x1f31f;&#x1f31f;&#x1f31f;电力系统相关知识&#xff0c;期刊论文&…

【YOLO系列改进NO.45】首发最新特征融合技术RepGFPN(DAMO-YOLO)

文章目录前言一、解决问题二、基本原理三、​添加方法四、总结前言 作为当前先进的深度学习目标检测算法YOLOv7&#xff0c;已经集合了大量的trick&#xff0c;但是还是有提高和改进的空间&#xff0c;针对具体应用场景下的检测难点&#xff0c;可以不同的改进方法。此后的系列…

[附源码]计算机毕业设计springboot云南美食管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

语义分割在线标注思路

语义分割选择使用多边形框标注&#xff0c;相对于物体检测它多了一项计算mask掩膜的需求。 一个图片&#xff0c;可能会进行多项标注。每项标注里面都会在物体检测的格式基础上增加mask属性&#xff0c;mask解释为图像掩膜&#xff0c;里面存与图像宽高对应大小的二维数组。 此…

什么是蛋白质组学?

导读 本文[1] 将从蛋白质组学的定义&#xff0c;蛋白质组包含的类型&#xff0c;常用技术&#xff0c;面临的挑战等方面&#xff0c;对蛋白质组学进行一个简要的介绍。 1. 定义 “蛋白质组学”一词于 1995 年首次出现&#xff0c;被定义为对细胞系、组织或生物体所有蛋白质的大…

Vue-router 路由间参数传递看完让你明明白白!

目录概述路由传参的两大载体分类声明式路由 【router-link 】编程式路由 【this.$router.push()】传参的方式1. 通过 params 传递参数配置路由参数字段占位&#xff08;编程式路由实现&#xff09;配置路由参数字段占位&#xff08;声明式路由实现&#xff09;无需配置路由参数…