龙岗网络营销网站制作哪里好,.aspx网站开发pdf,wordpress 块,企业网站建设推广公司数据挖掘全流程解析
数据指标选择
在这一阶段#xff0c;使用直方图和柱状图的方式对数据进行分析#xff0c;观察什么数据属性对于因变量会产生更加明显的结果。
如何绘制直方图和条形统计图
数据清洗
观察数据是否存在数据缺失或者离群点的情况。
数据异常的两种情况…
数据挖掘全流程解析
数据指标选择
在这一阶段使用直方图和柱状图的方式对数据进行分析观察什么数据属性对于因变量会产生更加明显的结果。
如何绘制直方图和条形统计图
数据清洗
观察数据是否存在数据缺失或者离群点的情况。
数据异常的两种情况
1、不完整缺少属性值
2、含有噪音数据错误或者离群 缺失数据的处理方法
1、忽略元组当每个属性的缺失值比例比较大时效果非常差直接删除处理
2、手动填写缺失值工作量会比较大
3、自动填写使用属性的缺失值进行填充仅对于连续性数值类型的数值适用假如数据是离散标签类型数据则使用相应的众数进行填充。 噪音数据的处理方法使用3sigma原则或者箱线图发现离群点再进行删除操作
1、正态分布的3sigma原则 2、箱线图进行监测发现离群数据进一步删除离群点箱线图又称为五分位图其中含有离群点、最大值、最小值、四分之一位数、四分之三位数、中位数。 上述图中的最小值和最大值不一定会指的是数据中的真正的最小值和最大值因为数据中真正的最小值和最大值可能是离群点。怎样求最小值和最大值捏使用下面公式进行判断
我们计四分之一位数为Q1四分之三位数为Q3。
首先计算四分之一极差
四分之一极差 IQRQ3-Q1
最大值Q31.5*极差
最小值Q1-1.5*极差 离群点通常情况下的一个值高于1.5倍的极差或者低于1.5倍的极差。.
使用下面代码即可绘制箱线图
import pandas as pd
import numpy as np
import matplotlib.pyplot as pl
from sklearn.impute import Simplelmputer
data url train.csv
df pd.read_csv(data_url)
imp SimpleImputer(missing_values np.nan, strategy mean)
imp.fit(df.iloc[:,5:6))
pl.boxplot(imp.transform(df.iloc[:,5:6])
pl.xlabel(data)
pl.show() 数据转换
数据中既有字符串也有数值、且数值量纲不统一。
需要统一化字符数值统一化
需要规范化统一量纲
离散数据特征的二进制编码
对于标称类无序离散数据连续化特征构造通常采用二进制编码方法
对于序数类离散数据连续化特征构造可以直接使用[0,m-1]的整数
数据规范化
最小最大规范化
z-分数规范化 小数定标移动属性A的小数点位置移动位数依赖于属性A的最大值vv/10^j , j为使Max(|v|)1的最小整数 二进制编码方式
1代码实现sklearn中的OneHotEncoder(独热编码)-二进制中只允许一位为1
import pandas as pd
from sklearn import preprocessing
data_url train.csv
df pd.read_esv(data_url)
X df.iloc[:,4:5]
enc preprocessing.OneHotEncoder()
y enc.fit_transform(X).toarray()
print(y) 上述代码是将序数类型的数据编码成[0,m-1]范围内的整数 哑编码允许多个位为一
哑编码需要更少的二进制编码独热编码需要更多的二进制编码因为独热编码只允许一个二进制为1所以没有哑编码的表现力那么强需要更多的二进制编码。
import pandas as pd
data_url train.csv
df pd.read_csv(data_url)
X df.iloc[:,11:12]
y pd.get_dummies(X,drop_firstTrue)
print(y)
drop_firstTrue 为哑编码
drop_firstFalse 为独热编码
上面的代码既可以做独热编码也可以做哑编码
两种规范化函数
最小最大规范化函数
from sklearn import preprocessing
data_url train.csv
df pd.read_csv(data_url)
imp Simplelmputer(missing_values np.nan, strategy mean)
imp.fit(df.iloc[:,5:6])
X imp.transform(df.iloc[:,5:6])
min_max_scaler preprocessing.MinMaxScaler()
X_train_minmax min_max_scaler.fit_transform(X)
print(X_train_minmax) 当获得的数据属于数值类型数据时可以在建模之前使用最小最大规范化函数对量纲作一个统一。同时我们也可以使用下面的方法进行量纲的统一。
z得分规范化
import pandas as pd
import numpy as np
from sklearn.impute import Simplelmputer
from sklearn import preprocessing
data_url train.csv
df pd.read_csv(data_url)
imp Simplelmputer(missing_values np.nan, strategy mean)
imp.fit(df.iloc[:,5:6])
X imp.transform(df.iloc[:,5:6])
scaler preprocessing.scale(X)
print(scaler) 数据降维
散点图分析如何绘制散点图
用来显示两组数据的相关性分布 PCA主成分分析
直观理解坐标轴的旋转 在普通的XY轴坐标系我们对每个点求方差会发现方差比较大也就意味着在X、Y轴上的信息量都比较大。因此不管舍弃哪一维都会损失数据的信息量。
通过PCA旋转我们可以看到下面的图片在长轴上数据的方差依然非常大但是在短轴上方差非常小。方差小说明信息量就比较小。在这时假如我们保留长轴数据去掉短轴数据对数据量的丢失也不会出现很明显的现象。
总的来说PCA分析法就是通过坐标轴的旋转将每个坐标轴信息量比较大的数据经过旋转使得在长轴上的信息量比较大。短轴上的信息量比较小。实现了一种线性变换
最终得到的结果形如
Z10.78*x10.01*x20.56*x30.067*x4
Z20.086*x10.76*x20.45*x30.97*x4
上面的主成分Z1、Z2分别由原来的四维数据四种变量降维得到。我们可以看到对于上面的二维数据我们可以看出来每种主成分中对应的变量的权值系数的不同。 权值系数的求解过程了解即可 对数据的相关矩阵求特征值特征向量最后得到相应的权值 from sklearn.decomposition import PCA
import pandas as pd
data_url iris_train.csv
df pd.read_csv(data_url)
X df.iloc[:,1:5]
ydf.iloc[:,5]
pca PCA(n_components4)
pca.fit(X)
print(pca.explained_variance_ratio_)
绘制相关性矩阵图片热力图
使用热力图可以对相关性进行更清晰的描述和直观理解
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
train csv trainOX.csv
train data pdread csv(train_csv)
train data.drop([ID,date,hour],axis1,inplaceTrue)
corrmat train_data.corr()
f;ax plt.subplots(figsize(12,8))
sns.heatmap(corrmat, vmax0.8, squareTrue)
plt.show() 准确率评价
混淆矩阵
对于准确率的评价可以使用混淆矩阵的方法进行评估 上述公式是准确率的计算公式
对应的左侧对应一列为样本中数据的真实类别。上边一行对应的是样本中数据的预测数据。
a对应的又称为真阳例True Positive、b对应的又称为假阴例False Negative、c对应的又称为假阳例False Negative、d对应的为真阴例True Negative。
对于各个类别的相关解释
真阳例指的是实际数据与预测数据结果相同的情况数据本身为正类我们把它预测为正类。比如一部分用户是生病的我们将其也预测为生病的这样的用户数目即为真阳例
假阴例一个用户是生病的但是通过模型预测的结果是没有生病的。
假阳例本身是一个没有生病的客户但是通过模型进行预测的结果为一个生病的客户故为假阳例。
真阴例客户没有生病使用模型进行预测也没有生病。
显而易见上述混淆矩阵中TP与TN是预测正确的本身是正确的和本身不是正确的都预测准确了。 对于数据检验部分我们往往会将数据七三分为训练集和测试集两部分。
除此之外我们往往也会使用K折交叉验证的方法对数据进行相关的验证。
K折交叉验证
在数据检验时使用数据集中的倒数第k份数据进行检验例如第一次使用倒数第1份数据进行检验第二次检验使用倒数第2份数据进行检验第三次使用倒数第3份数据进行检验....最多进行十折交叉验证。 知识点补充
K-Means算法
优点 聚类时间快 当结果簇是密集的而簇与簇之间区别明显时效果较好 相对可扩展和有效能对大数据集进行高效划分
缺点 用户必须事先指定聚类簇的个数 常常终止于局部最优 只适用于数值属性聚类(计算均值有意义) 对噪声和异常数据也很敏感 不同的初始值结果可能不同 不适合发现非凸面形状的簇