【机器学习】任务二:波士顿房价的数据与鸢尾花数据分析及可视化

本文主要是介绍【机器学习】任务二:波士顿房价的数据与鸢尾花数据分析及可视化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.实验知识准备

1.1 NumPy

1.2 Matplotlib 库

1.3 scikit-learn 库:

1.4 TensorFlow

1.5 Keras

2.波士顿房价的数据分析及可视化

2.1波士顿房价的数据分析

2.1.1 步骤一:导入所需的模块和包

2.1.2 步骤二:从 Keras 库中加载波士顿房价数据集

2.1.3 步骤三:加载本地 CSV 数据集

2.1.4 步骤四:划分特征和目标变量

2.1.5 步骤五:划分训练集和测试集

2.1.6 步骤六:查看数据集的特征值和标签值的类型

2.1.7 步骤七:查看数据集的特征值和标签值的属性

2.1.8 步骤八:显示数据集的部分数据

2.2 数据可视化

2.2.1步骤一:设置图形属性

2.2.2步骤二:绘制特征与房价的散点图

2.3 总体代码与结果

2.3.1代码

2.3.2结果

3.鸢尾花数据分析及可视化

3.1鸢尾花数据分析及可视化

3.1.1 步骤一:使用 load_iris() 函数导入 scikit-learn 库中的鸢尾花数据集

3.1.2 步骤二:获取特征值和标签值

3.1.3. 步骤三:访问数据集数据

3.1.4 步骤四:显示数据集的前10条特征值和标签值数据

3.1.5 步骤五:绘制花瓣长度和花瓣宽度与鸢尾花品种的散点图

3.2总体代码和效果

3.2.1代码

3.2.2效果


1.实验知识准备

1.1 NumPy

  • 简介:NumPy 是一个高性能科学计算和数据分析的基础库,提供了多维数组对象(ndarray)及其操作函数。它极大地简化了多维数组的操作和处理过程,在数据处理、科学计算、机器学习等领域广泛使用。
  • 关键功能:数组创建、数组运算、线性代数、数组形状变换、随机数生成等。

1.2 Matplotlib 库

  • 简介:Matplotlib 是 Python 的一个 2D 绘图库,广泛用于数据可视化。借助 Matplotlib,可以绘制各种图表,如折线图、散点图、直方图、饼图、热图等。
  • 关键功能:图形绘制、坐标轴设置、图形美化、图例添加、子图排列、图形保存等。

1.3 scikit-learn 库

  • 简介:scikit-learn 是基于 NumPy、Matplotlib 和 SciPy 的机器学习算法库,封装了大量的机器学习算法(包括有监督学习、无监督学习及半监督学习),并内置了许多标准数据集。
  • 关键功能:数据预处理(如归一化、标准化)、模型训练、模型选择、模型评估、模型调优等。

1.4 TensorFlow

  • 简介:TensorFlow 是一个以张量(Tensor)为基础,并对其进行各种运算的深度学习框架。它是由谷歌开发的开源软件库,广泛用于机器学习和深度学习应用。
  • 关键功能:张量定义与运算、自动求导、构建神经网络模型、训练与评估模型等。

1.5 Keras

  • 简介:Keras 是一个使用 Python 编写的开源人工神经网络库,作为 TensorFlow 的高阶应用程序接口,简化了深度学习模型的设计、调试、评估、应用和可视化等过程。
  • 关键功能:模型构建(Sequential API 和 Functional API)、模型编译、模型训练与评估、模型保存与加载等。

2.波士顿房价的数据分析及可视化

        机器学习的项目中都需要大量的数据,这些数据来源于现实生活、scikit-learn库或 Keras 库等,然后对数据进行探索是训练模型的必修课。因此,本次实验打 算从波士顿房价数据集入手,开始学习这部分内容波士顿房价数据集统计的是 20 世纪 70 年代中期波士顿郊区的房屋数据。该数据集一共有 506 条数据,每条数据包含 13 个特征值和 1 个标签值。特征值包括城镇人均犯罪率、住宅用地所占比例、每栋住宅的平均房间数、到达高速公路的便利指数、城镇非零售业的商业用地所占比例等。标签值是房价的平均值。数据集中各列说明如表 1 所示。

2.1波士顿房价的数据分析

2.1.1 步骤一:导入所需的模块和包

import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf

解释

  • matplotlib.pyplot:用于绘制数据图表,如散点图、柱状图等。
  • numpy:用于处理数值计算和数组操作。
  • tensorflow:用于加载数据集,并构建和训练机器学习模型。

2.1.2 步骤二:从 Keras 库中加载波士顿房价数据集

(x_train, y_train), (_, _) = tf.keras.datasets.boston_housing.load_data(test_split=0)

解释

  • tf.keras.datasets.boston_housing.load_data():加载波士顿房价数据集。
  • test_split=0:表示不保留测试集,所有数据都作为训练集使用。
  • (x_train, y_train):接收训练集的数据,包括特征(x_train)和目标值(y_train)。
  • (_, _):忽略返回的测试集数据,因为我们在此实验中不需要测试集。

2.1.3 步骤三:加载本地 CSV 数据集

import pandas as pd
from sklearn.model_selection import train_test_splitfile_path = r'E:/AI/Jupyter/实验任务/实验任务二/data/boston_housing.csv'
boston_data = pd.read_csv(file_path)print(boston_data.columns)
print(boston_data.head())

解释

  • pandas (pd):用于数据处理,特别是读取 CSV 文件和操作结构化数据。
  • train_test_split:用于将数据集划分为训练集和测试集。
  • pd.read_csv(file_path):从指定路径加载 CSV 文件为 DataFrame 格式(boston_data)。
  • boston_data.columns:输出数据集的列名。
  • boston_data.head():显示数据集的前五行,帮助我们快速查看数据结构和内容。

2.1.4 步骤四:划分特征和目标变量

X = boston_data.drop('MEDV', axis=1) # 特征 y = boston_data['MEDV'] # 目标变量

解释

  • X = boston_data.drop('MEDV', axis=1):从数据集中删除 MEDV 列(即房价),其余列作为特征变量 X
  • y = boston_data['MEDV']:将 MEDV 列单独提取出来,作为目标变量 yMEDV 通常表示房屋的中位价格。

2.1.5 步骤五:划分训练集和测试集

x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

解释

  • train_test_split(X, y, test_size=0.2, random_state=42):将数据集划分为训练集和测试集。
    • test_size=0.2:表示20%的数据将用于测试,其余80%用于训练。
    • random_state=42:设置随机种子,保证每次划分结果一致。
  • 返回值
    • x_train:训练集的特征数据。
    • x_test:测试集的特征数据。
    • y_train:训练集的目标数据(房价)。
    • y_test:测试集的目标数据(房价)。

2.1.6 步骤六:查看数据集的特征值和标签值的类型

print("特征值的类型:", type(x_train)) 
print("标签值的类型:", type(y_train))

解释

  • type(x_train)type(y_train):分别输出特征值和标签值的类型,通常为 pandas.DataFramepandas.Series

2.1.7 步骤七:查看数据集的特征值和标签值的属性

print("特征值的维度:", x_train.ndim)
print("标签值的维度:", y_train.ndim)
print("特征值的形状:", x_train.shape)
print("标签值的形状:", y_train.shape)
print("特征值的元素类型:", x_train.dtypes)
print("标签值的元素类型:", y_train.dtype)

解释

  • x_train.ndimy_train.ndim:分别显示特征值和标签值的维度。
  • x_train.shapey_train.shape:显示特征值和标签值的形状,帮助我们了解数据的结构。
  • x_train.dtypesy_train.dtype:查看特征和标签的数据类型,通常为 float64

2.1.8 步骤八:显示数据集的部分数据

print("特征值的最后6行数据:")
print(x_train.tail(6))  # 使用 tail() 显示最后几行数据
print("标签值的最后6行数据:")
print(y_train.tail(6))

解释

  • x_train.tail(6)y_train.tail(6):分别显示训练集特征值和标签值的最后6行数据,帮助我们了解数据集的末尾数据。

2.2 数据可视化

2.2.1步骤一:设置图形属性

plt.rcParams['font.sans-serif'] = ['SimHei']

解释

  • plt.rcParams['font.sans-serif'] = ['SimHei']:设置 Matplotlib 图表中的字体为“黑体”,以便显示中文标签。

2.2.2步骤二:绘制特征与房价的散点图

titles = ["CRIM", "ZN", "INDUS", "CHAS", "NOX", "RM", "AGE", "DIS", "RAD", "TAX", "PTRATIO", "B", "LSTAT", "MEDV"]# 创建画布并设置画布的大小
plt.figure(figsize=(16, 16))# 绘制子图
for i in range(13):plt.subplot(4, 4, (i+1))plt.scatter(x_train.iloc[:, i], y_train)plt.xlabel(titles[i])plt.ylabel("Price ($1000's)")plt.title(str(i+1) + ". " + titles[i] + "-Price")# 自动调整子图参数,使之填充整个图像区域
plt.tight_layout()
plt.show()

解释

  • titles:存储每个特征的名称,用于设置子图的标题。
  • plt.figure(figsize=(16, 16)):创建一个16x16的画布。
  • for i in range(13):循环遍历13个特征,并为每个特征绘制一个散点图。
    • plt.subplot(4, 4, (i+1)):将画布划分为4x4的网格,并选择当前的子图位置。
    • plt.scatter(x_train.iloc[:, i], y_train):绘制散点图,x轴为特征值,y轴为房价。
    • plt.xlabel(titles[i])plt.ylabel("Price ($1000's)"):分别设置x轴和y轴的标签。
    • plt.title(str(i+1) + ". " + titles[i] + "-Price"):设置每个子图的标题。
  • plt.tight_layout():自动调整子图参数,使之填充整个图像区域。
  • plt.show():显示绘制的图表。

2.3 总体代码与结果

2.3.1代码

# 参考代码
# 导入所需要的模块与包
import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf# 导入波士顿房价数据集
(x_train, y_train), (_, _) = tf.keras.datasets.boston_housing.load_data(test_split=0)# 继续导入所需的库
import pandas as pd
from sklearn.model_selection import train_test_split# 替换为你的文件路径
file_path = r'E:/AI/Jupyter/实验任务/实验任务二/data/boston_housing.csv'
boston_data = pd.read_csv(file_path)# 查看数据集的列名和前几行数据
print(boston_data.columns)
print(boston_data.head())# 假设目标变量是房价,特征变量是其他列
X = boston_data.drop('MEDV', axis=1)  # 特征
y = boston_data['MEDV']  # 目标变量# 划分训练集和测试集
x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 查看数据集特征值和标签值的类型
print("特征值的类型:", type(x_train))
print("标签值的类型:", type(y_train))# 查看数据集特征值和标签值的属性
print("特征值的维度:", x_train.ndim)
print("标签值的维度:", y_train.ndim)
print("特征值的形状:", x_train.shape)
print("标签值的形状:", y_train.shape)
print("特征值的元素类型:", x_train.dtypes)  # 使用 dtypes 来查看每一列的数据类型
print("标签值的元素类型:", y_train.dtype)# 显示数据集的部分数据
print("特征值的最后6行数据:")
print(x_train.tail(6))  # 使用 tail() 显示最后几行数据
print("标签值的最后6行数据:")
print(y_train.tail(6))# 参考代码
# 设置图形中的中文字体为“黑体”
plt.rcParams['font.sans-serif'] = ['SimHei']
titles = ["CRIM", "ZN", "INDUS", "CHAS", "NOX", "RM", "AGE", "DIS", "RAD", "TAX", "PTRATIO", "B", "LSTAT", "MEDV"]# 创建画布并设置画布的大小
plt.figure(figsize=(16, 16))# 绘制子图
for i in range(13):plt.subplot(4, 4, (i+1))plt.scatter(x_train.iloc[:, i], y_train)plt.xlabel(titles[i])plt.ylabel("Price ($1000's)")plt.title(str(i+1) + ". " + titles[i] + "-Price")# 自动调整子图参数,使之填充整个图像区域
plt.tight_layout()
plt.show()

2.3.2结果

Index(['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX','PTRATIO', 'B', 'LSTAT', 'MEDV'],dtype='object')CRIM    ZN  INDUS  CHAS    NOX     RM   AGE     DIS  RAD  TAX  PTRATIO  \
0  0.00632  18.0   2.31     0  0.538  6.575  65.2  4.0900    1  296     15.3   
1  0.02731   0.0   7.07     0  0.469  6.421  78.9  4.9671    2  242     17.8   
2  0.02729   0.0   7.07     0  0.469  7.185  61.1  4.9671    2  242     17.8   
3  0.03237   0.0   2.18     0  0.458  6.998  45.8  6.0622    3  222     18.7   
4  0.06905   0.0   2.18     0  0.458  7.147  54.2  6.0622    3  222     18.7   B  LSTAT  MEDV  
0  396.90   4.98  24.0  
1  396.90   9.14  21.6  
2  392.83   4.03  34.7  
3  394.63   2.94  33.4  
4  396.90   5.33  36.2  
特征值的类型: <class 'pandas.core.frame.DataFrame'>
标签值的类型: <class 'pandas.core.series.Series'>
特征值的维度: 2
标签值的维度: 1
特征值的形状: (404, 13)
标签值的形状: (404,)
特征值的元素类型: CRIM       float64
ZN         float64
INDUS      float64
CHAS         int64
NOX        float64
RM         float64
AGE        float64
DIS        float64
RAD          int64
TAX          int64
PTRATIO    float64
B          float64
LSTAT      float64
dtype: object
标签值的元素类型: float64
特征值的最后6行数据:CRIM    ZN  INDUS  CHAS    NOX     RM   AGE     DIS  RAD  TAX  \
71    0.15876   0.0  10.81     0  0.413  5.961  17.5  5.2873    4  305   
106   0.17120   0.0   8.56     0  0.520  5.836  91.9  2.2110    5  384   
270   0.29916  20.0   6.96     0  0.464  5.856  42.1  4.4290    3  223   
348   0.01501  80.0   2.01     0  0.435  6.635  29.7  8.3440    4  280   
435  11.16040   0.0  18.10     0  0.740  6.629  94.6  2.1247   24  666   
102   0.22876   0.0   8.56     0  0.520  6.405  85.4  2.7147    5  384   PTRATIO       B  LSTAT  
71      19.2  376.94   9.88  
106     20.9  395.67  18.66  
270     18.6  388.65  13.00  
348     17.0  390.94   5.99  
435     20.2  109.85  23.27  
102     20.9   70.80  10.63  
标签值的最后6行数据:
71     21.7
106    19.5
270    21.1
348    24.5
435    13.4
102    18.6
Name: MEDV, dtype: float64

3.鸢尾花数据分析及可视化

        导入 scikit-learn 库中的鸢尾花数据集,显示数据集特征值和标签值的类型、属性和部分数据,并绘制花瓣长度和花瓣宽度与鸢尾花品种的散点图。鸢尾花数据集各列说明如表 2 所示。
        鸢尾花数据集中共有 150 条数据,分为 3 类,每类 50 条数据,每条数据包含 4个特征值和 1 个标签值,其中特征值分别是花萼长度、花萼宽度、花瓣长度和花瓣宽度,标签值表示鸢尾花的种类,分别是 Setosa Versicolor Virginica ,用整数 0 1 2 表示

3.1鸢尾花数据分析及可视化

3.1.1 步骤一:使用 load_iris() 函数导入 scikit-learn 库中的鸢尾花数据集

from sklearn.datasets import load_iris
# 使用 load_iris() 函数导入鸢尾花数据集
iris = load_iris()

解释

  • load_iris()scikit-learn 提供的函数,用于加载鸢尾花数据集。该数据集包含 150 个样本,每个样本有 4 个特征(花萼长度、花萼宽度、花瓣长度、花瓣宽度),以及对应的标签(鸢尾花的品种:Setosa、Versicolor、Virginica)。

3.1.2 步骤二:获取特征值和标签值

features = iris.data # 特征值
labels = iris.target # 标签值

解释

  • iris.data:存储鸢尾花数据集的特征值,形状为 (150, 4),每个样本有 4 个特征。
  • iris.target:存储鸢尾花数据集的标签值,形状为 (150,),表示 150 个样本的类别标签。

3.1.3. 步骤三:访问数据集数据

查看数据集的特征值和标签值的类型

print("特征值的类型:", type(features))
print("标签值的类型:", type(labels))

解释

  • type(features)type(labels):输出特征值和标签值的类型,通常为 numpy.ndarray

查看数据集的特征值和标签值的属性

print("特征值的维度:", features.ndim)
print("标签值的维度:", labels.ndim)
print("特征值的形状:", features.shape)
print("标签值的形状:", labels.shape)
print("特征值的元素类型:", features.dtype)
print("标签值的元素类型:", labels.dtype)

解释

  • features.ndimlabels.ndim:查看特征值和标签值的维度。特征值通常为二维(2D),标签值为一维(1D)。
  • features.shapelabels.shape:显示特征值和标签值的形状,帮助了解数据集的大小和结构。
  • features.dtypelabels.dtype:查看数据元素的类型,通常特征值为浮点数 (float64),标签值为整数 (int64)。

3.1.4 步骤四:显示数据集的前10条特征值和标签值数据

print("前10条特征值数据:")
print(features[:10])
print("前10条标签值数据:")
print(labels[:10])

解释

  • features[:10]labels[:10]:分别显示数据集中前 10 个样本的特征值和对应的标签值,帮助快速了解数据的内容。

3.1.5 步骤五:绘制花瓣长度和花瓣宽度与鸢尾花品种的散点图

import matplotlib.pyplot as plt# 创建绘图窗口
plt.figure(figsize=(8, 6))# 设置颜色映射,分别表示Setosa, Versicolor, Virginica
colors = ['blue', 'red', 'green']
for i in range(3):plt.scatter(features[labels == i, 2], features[labels == i, 3], c=colors[i], label=iris.target_names[i])# 设置图形的标题和标签
plt.title('鸢尾花数据集\n(蓝色->Setosa | 红色->Versicolor | 绿色->Virginica)', fontsize=14)
plt.xlabel('花瓣长度 (cm)', fontsize=12)
plt.ylabel('花瓣宽度 (cm)', fontsize=12)# 添加图例
plt.legend()# 显示图形
plt.show()

解释

  • plt.figure(figsize=(8, 6)):创建一个 8x6 英寸的图形窗口。
  • colors = ['blue', 'red', 'green']:定义颜色列表,分别代表 Setosa(蓝色)、Versicolor(红色)、Virginica(绿色)三种鸢尾花品种。
  • for i in range(3):循环遍历三种鸢尾花品种,并绘制对应的散点图。
    • features[labels == i, 2]features[labels == i, 3]:分别提取第 i 种鸢尾花品种的花瓣长度和宽度。
    • c=colors[i]:为不同品种的鸢尾花设置不同的颜色。
    • label=iris.target_names[i]:为不同的品种添加标签。
  • plt.xlabel()plt.ylabel():分别设置 x 轴和 y 轴的标签为花瓣长度和花瓣宽度。
  • plt.title():设置图形的标题,并注明颜色与品种的对应关系。
  • plt.legend():添加图例,显示每种颜色代表的鸢尾花品种。
  • plt.show():显示绘制的散点图。

3.2总体代码和效果

3.2.1代码

# 导入所需的库
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
import numpy as np# 步骤一:使用 load_iris() 函数导入 scikit-learn 库中的鸢尾花数据集
iris = load_iris()
features = iris.data  # 特征值
labels = iris.target  # 标签值# 步骤二:查看数据集的特征值和标签值的类型
print("特征值的类型:", type(features))
print("标签值的类型:", type(labels))# 步骤三:查看数据集的特征值和标签值的属性
print("特征值的维度:", features.ndim)
print("标签值的维度:", labels.ndim)
print("特征值的形状:", features.shape)
print("标签值的形状:", labels.shape)
print("特征值的元素类型:", features.dtype)
print("标签值的元素类型:", labels.dtype)# 步骤四:显示数据集的前10条特征值和标签值数据
print("前10条特征值数据:")
print(features[:10])
print("前10条标签值数据:")
print(labels[:10])# 步骤五:绘制花瓣长度和花瓣宽度与鸢尾花品种的散点图
plt.figure(figsize=(8, 6))# 设置颜色映射,分别表示Setosa, Versicolor, Virginica
colors = ['blue', 'red', 'green']
for i in range(3):plt.scatter(features[labels == i, 2], features[labels == i, 3], c=colors[i], label=iris.target_names[i])# 设置图形的标题和标签
plt.title('鸢尾花数据集\n(蓝色->Setosa | 红色->Versicolor | 绿色->Virginica)', fontsize=14)
plt.xlabel('花瓣长度 (cm)', fontsize=12)
plt.ylabel('花瓣宽度 (cm)', fontsize=12)# 添加图例
plt.legend()# 显示图形
plt.show()

3.2.2效果

特征值的类型: <class 'numpy.ndarray'>
标签值的类型: <class 'numpy.ndarray'>
特征值的维度: 2
标签值的维度: 1
特征值的形状: (150, 4)
标签值的形状: (150,)
特征值的元素类型: float64
标签值的元素类型: int32
前10条特征值数据:
[[5.1 3.5 1.4 0.2][4.9 3.  1.4 0.2][4.7 3.2 1.3 0.2][4.6 3.1 1.5 0.2][5.  3.6 1.4 0.2][5.4 3.9 1.7 0.4][4.6 3.4 1.4 0.3][5.  3.4 1.5 0.2][4.4 2.9 1.4 0.2][4.9 3.1 1.5 0.1]]
前10条标签值数据:
[0 0 0 0 0 0 0 0 0 0]

这篇关于【机器学习】任务二:波士顿房价的数据与鸢尾花数据分析及可视化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1127339

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;