数据分析可以帮助我们从数据中获取有用信息,并为我们的问题提供解决方案。此外,根据观察到的模式,我们可以预测不同业务政策的结果。

理解数据分析的基础

数据

我们在分析过程中处理的数据类型主要是csv(逗号分隔值)格式。通常,csv文件的第一行表示列标题。

可用的包

在Python包中有多种库可供使用,可以在不编写冗长代码的情况下方便地实施。

一些包的示例包括:

  1. 科学计算库,如NumPy、Pandas和SciPy。
  2. 可视化库,如Matplotlib和seaborn。
  3. 算法库,如scikit-learn和statsmodels。

导入和导出数据集

在导入数据集时,我们必须注意的两个关键点是:

  1. 格式 - 它指的是文件的编码方式。突出的格式示例包括.csv、.xlsx、.json等。
  2. 文件路径 - 文件路径指的是文件存储的位置。可以在任何驱动器或某些在线资源中找到。

可以这样完成:

示例 -

import pandas as pd  
path=" "  
df = pd.read_csv(path)  

如果数据集不包含标题行,我们可以这样指定:

df = pd.read_csv(path,header=None)  

要查看数据集的前五行和后五行,可以使用df.head()和df.tail()。

让我们看看如何导出数据,如果我们有一个以.csv格式存在的文件,那么:

path = " "  
df.to_excel(path)  

数据整理

数据整理是将数据从原始格式转换为可用于分析的格式的过程。

让我们看看这部分包括什么内容:

如何处理缺失值?

缺失值 - 由于信息不可用,某些条目为空白。通常用NaN、?或0表示。

让我们讨论如何处理它们:

最佳选择是用平均数替换数值变量,用众数替换分类变量。

有时可能会出现这样的情况,我们必须删除缺失值,可以使用:

df.dropna()   

如果要删除行,必须指定轴为0。如果要删除列,必须指定轴为1。

此外,如果希望这些更改直接应用于数据集,还需指定一个参数 inplace=True

现在让我们看看如何替换值:

语法是:

df.replace(missing value, new value)  

在这里,我们将创建一个变量,并将其存储在属性的平均值中(我们要替换值的属性):

mean=df["attribute name"].mean()  
df["attribute name"].replace(np.nan,mean)  

如何进行数据格式化?

数据格式化是将数据呈现为可理解格式的过程。例如,更改变量名称以使其可理解。

数据归一化

数据集中的特征具有可能导致偏倚预测的值。因此,必须将它们带到可比较的范围内。

为此,我们可以在属性上使用以下技术:

  1. 简单特征缩放 Xn=Xold/Xmax
  2. 最小-最大方法 Xn=Xold-Xmin/Xmax-Xmin
  3. Z分数 Xn=Xold-µ/σ µ - 平均值 σ - 标准差

如何将分类变量转换为数值变量?

在此情况下,我们进行了一个称为“独热编码”的过程,假设有一个包含分类值的属性。我们将从可能性中生成虚拟变量,并根据它们在属性中的出现情况分配0或1。

要将分类变量转换为0或1的虚拟变量,我们将使用:

pandas.get_dummies(df["attribute-name"])  
This will generate the expected results.  

Python中的分箱

这是将数值变量转换为分类变量的过程。

假设我们从数据集中取出了一个属性'price'。我们可以根据范围将其数据分为三个类别,然后用名称表示,例如低价、中价和高价。

我们可以使用 linspace() 方法获取范围:

bin = np.linspace(min(df["attribute-name"]),max(df["attribute-name"]),4)  
cat_names=["low-price","mid-price","high-price"]  
df["bin_name"]=pd.cut(df["attribute-name"],bin,labels=cat_names)  

探索性数据分析

统计信息

我们可以使用 describe() 方法来查看数据集的统计摘要。可以使用 value_counts() 方法总结分类变量。

使用GroupBy

pandas的groupby()方法可应用于分类变量。它根据不同的类别对子集进行分组。可以涉及单个或多个变量。

让我们看一个示例,以帮助我们理解如何在Python中使用它:

df_att=df[['attribute1', 'attribute2', 'attribute3']]  
df_g=df_att.groupby(['attribute1', 'attribute2'], as_index=False).mean()  
df_g 

相关性

相关性度量两个变量相互依赖的程度。

通过可视化来检查两个变量之间存在什么样的相关性。我们可以绘制图形并解释一个属性值的上升如何影响另一个属性。

从统计角度来看,我们可以使用Pearson相关性来获取相关性。它提供了相关性系数和P值。

让我们看看相关性的标准:

相关系数关系
1. 接近+1大正相关
2. 接近-1大负相关
3. 接近0无相关关系存在
P-值确定性
P-值<0.001
P-值<0.05中等
P-值<0.1
P-值>0.1

我们可以使用scipy统计包在我们的代码中使用它。

假设我们想要计算两个属性,属性1和属性2之间的相关性:

pearson_coef,p_value=stats.pearsonr(df["attribute1"],df["attribute2"]).  

此外,要检查所有变量之间的相关性,我们可以创建一个热图。

两个分类变量之间的关系

可以使用卡方方法来计算两个分类变量之间的关系。

scipy.stats.chi2_contingency(cont_table, correction=True)  

如何开发模型?

首先,让我们了解什么是模型?

模型可以指代一个方程,帮助我们预测结果。

  • 线性回归和多元线性回归

线性回归 - 顾名思义,它仅涉及一个独立变量来进行预测。

多元回归 - 它涉及多个独立变量来进行预测。

简单线性回归的方程可以表示为:

y=b0x+b1

在这里,

y-依赖变量

x-独立变量

b0-斜率

b1-截距

要在Python中实施线性回归:

from sklearn.linear_model import LinearRegression  
lm=LinearRegression()  
X=df["attribute-name1"]  
Y=df["attribute-name1"]  
lm.fit(X,Y)  
yp=lm.predict(X)  

使用可视化评估我们的模型

创建图表是一个好的实践,因为它们显示了相关性的强度以及关系的方向是正向还是负向。

让我们看看不同的图表,可以帮助我们评估我们的模型:

1.使用回归图

import seaborn as sns  
sns.regplot(x="attribute1",y="attribute2",data=df)  
plt.ylim(0,)  

2.使用残差图

import seaborn as sns  
sns.residplot(df["attribute1"],df["attribute2"])  

在样本内评估

在这里,我们将讨论如何以数字方式评估我们的模型,以两种方式来完成:

1. 均方误差(MSE)

该方法取实际值与预测值之间的差值,对其平方,然后计算它们的平均值。

在Python中,可以使用以下方式实现:

from sklearn.metrics   
import mean_squared_error  
mean_squared_error(df['target-variable'],Y_predict_simple_fit)  

2. R-平方

R-平方也被称为确定系数。它显示数据与拟合回归线的拟合程度。可以使用 score() 方法在Python中使用它。

X=df["attribute-1"]  
Y=df["attribute-2"]  
lm.fit(X,Y)  
lm.score(X,Y)  

决策制定

简而言之,在评估模型时,我们必须注意以下几点:

  1. 使用可视化
  2. 使用数值评估方法。

如何评估模型?

评估我们的模型是一个重要的元素,因为它告诉我们数据与模型的拟合程度。现在,我们将讨论如何使用训练数据来预测结果。

关键思想是将数据集分为训练集和测试集。训练数据集用于构建模型,测试数据集用于评估模型的性能。

可以在Python中实现它:

from sklearn.model_selection import train_test_split  
_train,y_train,x_test,y_test=train_test_split(x_data,y_data,test_size=' ',random_state=' ')  

过拟合和欠拟合

过拟合- 当模型过于简单以适应数据时的情况。

欠拟合 - 当模型更容易调整噪声因素而不是函数时的情况。

岭回归

当涉及到十次方变量时使用岭回归。在这里,我们引入了一个称为alpha的因子。让我们看看如何在Python中实现它。

from sklearn.linear_model import Ridge  
RModel=Ridge(alpha=0.1)  
RModel.fit(X,Y)  
Yp=RModel.predict(X)  

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程