数据分析处理回顾

1:直接通过dict将DataFrame格式的数据转化成dict之后

通过type(dict['key'] ) 类型依然是Series;

如果想要用到list,还需嵌套一层list()

2:pca降维算法:

可以直接使用skleran下面的
包的导入是:

from skleran.decompostion import PCA

一般生命一个PCA就PCA(n_components=x)就可以了

然后通过调用fit方法就可以了

例子:https://blog.csdn.net/weixin_38859557/article/details/84950654

3:python 的几个生成式:

https://blog.csdn.net/weixin_38859557/article/details/84951225

4:关于python几种数据类型的合并:

https://blog.csdn.net/weixin_38859557/article/details/84951471

5:关于AI中的类比型变量:

把类别型的变量分开进行预测是没有用的,因为算法内部本身就是分开处理的,计算值的时候还是使用的数值特征计算的值;

6:python 创建文件夹

os.mkdir(filepath+filename)

7:业务相关的处理:

1:对整体数据的大致了解

2:利用保存数据的多少作为阈值,

3:异常值检测

包括,盒图,iforest,分位点,正态分布的3σ原则

4:get_dummies(one_hot编码)

5:label encode(这个需要注意测试数据和预测数据编码需要统一,最好的方式是测试数据和预测数据合并之后在编码,然后分开;

6:然后是分开类别进行预测

https://blog.csdn.net/weixin_38859557/article/details/84957679

8:些许感悟:

在数据处理当中,要时刻于业务逻辑相结合,(但这不是绝对的,如果数据质量不高那么可能出现的问题就是于实际业务逻辑相违背的,比如房价这个label,一般在其他条件相同的情况下,房屋面积增加,房价肯定是增加的,但是由于各种原因,可能会出现于实际生活相违背的东西,)所以数据挖掘过程需要结合实际生活(也就是业务逻辑),这样能够或多或少的减少一些挖掘的步骤;但是这个或许也是检测数据质量是否高的一个依据;实际结合业务逻辑可以检测出一些异常值;

必须要留意数据的格式,是连续型的还是离散型的,对于离散性的数据,如果根据他的类别进行分模型有时候没有必要,因为一些算法的内部也是根据这个来分的,但是如果出现这样一种情况:比如两种类别出现的特征个数不同,那么这个时候可能需要考虑分模型的情况了,因为再进行一起预测,可能数据并不是很好处理,如房屋的售卖和出租,对于出租来说,可能就有出租时间,但是对于售卖来说就没有,如果这两个类别不分开进行预测,对于售卖来说可能就需要将出租时间记为0,但是这个并不能从实际生活上去解释这个字段,所以有时候将整个数据集分模型进行预测是有必要的;还有就是对于离散型的特征,如果其他特征不变的情况下,分类别模型预测合并之后最终结果和没有分开的结果一样,至少在xgboost的回归任务里面是这样的,可能对于深度神经网络可能有不同;(目前还没实际进行过测试,因为树的算法和神经网络的矩阵运算算法不一样)类别型的数据本身是没有大小差距的,所以转化成one_hot编码是最好的结果,但是如果类别过多的化,转化之后维度过高消耗的计算资源太大,

这里需要一个平衡;

对于数值型的数据的处理就更为的复杂,考虑到分布情况,对于回归预测,如果标签贴合正太分布,对预测效果会更好,所以这里就涉及到了log变换,box-cox变换,偏度和峰值的处理,(还有一种方法忘记了是把label转化成一条直线,线越值越好)但是他也是通过log等一下变化来达到的;

还有就是异常值的检测和处理:

异常值检测最难的就是确定一个阈值,这个需要不断的测试,但是也可以用一些聚类和无监督的算法;如iforest等,但是还是需要涉及一些参数的调试;

下面是关于一些算法和框架的使用:

1:tensorflow

最先使用的就是tensorflow的框架,没有使用高级的api,自己构建的dnn网络,

2:使用了tensorflow中的一些高级用法,如feature_column 和wide and deep model

3:cNN

4:RNN

5:xgboost

6:keras 框架

7:auto_ml

8:sklearn

其中最好用的就是auto_ml了,但是好用是好用,但是精度就不是特别高了,肯定没有结合业务测试出来的参数好,框架都是设置一些适合大众用的参数,所以框架越高级可能越好用,但是可能精度就有问题;

但是auto_ml 结合xgboost算法在数据挖掘过程中时间效率上很高,如果使用tensorflow则在计算的消耗上就会很长;

猜你喜欢

转载自blog.csdn.net/weixin_38859557/article/details/84949776
今日推荐