机器学习中的数据探索与分析技术

在当今这个被称为“数据的新时代”的世界里,数据被视为“新的石油”。如何利用这些数据来解决商业问题呢?通过思考和分析数据,可以从中获得有用的见解,以改善和解决商业问题。本文将讨论机器学习中的基本统计数据分析技术,帮助从数据集中提取有价值的见解。

机器学习流程

机器学习流程是指从定义业务问题到模型部署的机器学习过程的工作流程。在机器学习流程中,数据准备部分是最困难和耗时的,因为数据以非结构化格式存在,需要进行一些清理。本文将深入探讨使用统计学进行数据分析的部分。

机器学习中的数据收集

在21世纪,被称为“数据丰富时代”。数据收集就像收集马赛克碎片一样。机器学习提供了如何安排这些数据以获得有用见解的方法。数据可以从各种数据源获得,如APIs、文件大小、数据库、视频/图像/音频、CSV格式等。CSV格式是逗号分隔值,以文本文件形式表示数据。这里,每一行是一个记录,每个记录有多个列,由逗号(分隔符)分隔。

import pandas as pd dataset = pd.read_csv("filename.csv") dataset.head(5)

数据分析中使用的Python库

数据分析中,有几个Python库是必不可少的。这些库帮助组织数据进行分析。以下是一些常用的库:

SciPy是一个开源库的集合,有助于为分析组织数据。其中包括:

Numpy用于科学计算,如数值分析、线性代数和度量计算。它是机器学习(ML)实现的基本库。

# 导入numpy包 import numpy as np # 创建数组 arr = np.array([0,1,2,3,"hi"]) print(arr) print(type(arr)) print(arr.ndim) print(len(arr))

Matplotlib是一个绘图库,用于生成高质量的图形,如直方图、散点图等。它用于数据可视化。

# 导入matplotlib库 import matplotlib.pyplot as plt # 绘制值 plt.plot([1,2,3],[5,10,15]) plt.title("Linear Relation", fontsize= 16) plt.xlabel("X axis", fontsize = 12) plt.ylabel("Y axis", fontsize = 12) plt.show()

Pandas是一个开源库,具有高性能、易于使用的数据结构和分析工具。它用于数据科学中的统计计算、数据清洗等,但在数据建模和分析中使用较少。

# 导入pandas库 import pandas as pd dataset = pd.read_csv("filename.csv") # 从2个系列定义数据框架 data = { 'cars' : [5,2,3], 'bus':[3,4,0]} # 为行特定的数据框架元素分配索引 vehicles = pd.DataFrame(data, index = ['Sam','Rose', 'Bob']) # 获取有关数据的信息 print(vehicles.info()) print(vehicles.loc['Bob'])

解释性数据分析(EDA)

EDA是分析数据集以总结其主要特征的方法。数据集的总结可以是两种类型之一:

数值总结是以数字形式的总结。例如:均值(平均值)、中位数等。它可以是单变量的——仅依赖于一个变量的度量,或者是双变量的——依赖于两个变量的度量。

图形总结将以图形的形式出现。例如:直方图、箱线图等。

为什么需要数据分析

需要分析数据的原因包括:识别数据集的分布、选择正确的机器学习算法、提取正确的特征、评估机器学习算法并展示结果。

单变量数值分析

均值定义为所有值的总和与总值数量的比率。均值也称为数据集的平均值。

# 导入库 import pandas as pd # 读取数据集 dataset = pd.read_csv("bank_dataset.csv") # 计算均值 def mean(df): return sum(dataset.age)/len(dataset) print(mean(dataset))

注意:不要完全信任均值!

中位数是将数据的下半部分与上半部分分开的值。步骤如下:

  1. 将数据按升序排列
  2. 如果总值数量是奇数:取中间数字作为中位数
  3. 如果是偶数:取中间两个数字的平均值。(即)中位数 = (数字1 + 数字2)/ 2
def median(dataset): median = sorted(dataset) [len(dataset)// 2] return median

百分位数是衡量数据集中一定百分比的值低于该值的指标!例如25%、50%(中位数)、75%。

data = [13,14,15,16,20,95,66,88] # 25th百分位 sort_data = sorted(data) index1 = len(sort_data)*.25 print(index1) # 50th百分位 sort_data = sorted(data) index2 = len(sort_data)*.50 print(index2) # 75th百分位 sort_data = sorted(data) index3 = len(sort_data)*.75 print(index3)

标准差告诉实际值与均值之间的平均差异。

import numpy as np array = [1,2,3,4,5,6] print(numpy.std(array))

最大值和最小值:数据集中的最大和最小数据。计数:计算数据点的总数。众数:指示高频率的值。范围:范围定义为数据中最大值和最小值之间的差异。异常值:异常值定义为与其他数据点异常距离的点。

双变量数值分析

双变量数值分析是识别两个变量之间关系的方法。

相关性是衡量两个或更多变量之间关系的指标。它告诉x和y变量之间的线性关系的百分比。它可以是正的(强)或负的,或者没有相关性。如果相关值范围是:

  • - 0到1之间:正相关
  • - 0:无相关性
  • - -1到0之间:负相关
import pandas as pd # 导入数据集 df = pd.read_csv("filename.csv") print(df.corr(method = "pearson"))
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485