数据分析

技术数据分析 数据分析数据预处理
在本次数据分析过程中,缺失数据将被进一步划分成为三个部分,一类数据是数据为0的情况,一类是数据为空值的情况,一类是数据为特殊符号,例如“--”的数据。
针对不同的数据缺

数据分析

数据预处理

在这个数据分析过程中,缺失的数据会进一步分为三个部分,一是当数据为0时,二是当数据为空时,三是当数据带有特殊符号,如“-”时。

对于不同的数据缺失情况,本次分析将采用不同的处理方法:

1.对于数值为0的情况,需要进行实际分析,并返回原始数据,以确定数据为0时是否具有实际意义。如果没有,将其作为缺失值删除。

2.如果数据为空,如果该特征的缺失数据小于10%,将根据该特征的重要性进行综合判断。如果字段重要性较低,考虑直接删除;如果该字段的重要性较高,则使用插值或数据平均值来填充。

3.鉴于数据是一种特殊的符号,需要结合原始数据来判断数据是否缺失或异常。如果它是一个丢失的值,它将作为1操作处理。如果是异常值,将进行异常值处理,具体的异常值处理过程将在下面描述。

综合表:

XXX=pd.merge(XX,XX,how='left ',on='user_id ')

失踪率是:

total=df.isnull()。总和()。sort_values(升序=False)

百分比=df.isnull()。sum()/df.isnull()。count())。sort_values(升序=False)

missing _ data=PD . concat([合计,百分比],轴=1,键=['合计','百分比'])

missing_data.head(50)

XXX . apply(lambda x : sum(x . is null())/len(x))

缺失率可视化:

将missingno作为msno导入

%matplotlib内联

msno.matrix(XXX)

msno.bar(XXX)

删除XX中具有空值的行

XXX=XXX.dropna(轴=0,子集=['XX'])

填充空值

df1.fillna(0,inplace=True)

2.dffillna(方法=' pad') #用以前的值填充。

df2.fillna(方法='bfill ',极限=2,轴=1)

使用pandas_profiling生成各个领域的详细报告:

导入熊猫_简介

熊猫_侧写。简档报告(XXX)

相关热图:

msno .热图(XXX)

两个变量的无效相关范围是从-1(如果一个变量出现,另一个肯定不出现)到0(如果一个变量出现或不出现,对彼此没有影响)到1(如果一个变量出现,另一个肯定出现)。

数据缺失或缺失对相关性没有意义,所以图中没有相关性。在图中,大于-1和小于1表示强正相关和负相关,但因为有少量脏数据,所以不是绝对的。在处理数据时,需要注意其中的一些例外。

观察两个变量之间的相关性很方便,但是当数据集变大时,这个结论的可解释性就会变差。

msno .树木图(XXX)

树形图使用scipy提供的层次聚类算法,通过变量的无效相关性(根据二进制距离度量)将变量相互添加。在树的每一步中,变量根据哪个组合最小化剩余聚类的距离来划分。变量集的单调,它们的总距离越接近零,它们的平均距离越接近零。

距离为0的变量可以相互预测。当一个变量被填充时,另一个总是空的或填充的,或者两者都是空的。

叶子的高度显示了预测误差的频率。

异常值:

图,ax=plt .子图(1,1,figsize=(8,5))

df.boxplot(列='Volume ',ax=ax)

plt.show()

s=df[

'Volume']
print(s.describe())
df_= df.copy()
mean1 = df['Volume'].quantile(q=0.25)#下四分位差
mean2 = df['Volume'].quantile(q=0.75)#上四分位差
mean3 = mean2-mean1#中位差
topnum2 = mean2+1.5*mean3
bottomnum2 = mean2-1.5*mean3
print("正常值的范围:",topnum2,bottomnum2)
print("是否存在超出正常范围的值:",any(df['Volume']topnum2))
print("是否存在小于正常范围的值:",any(df['Volume']bottomnum2))
import matplotlib.pyplot as plt
plt.boxplot(x=df['Volume'])
plt.show()
replace_value1=df['Volume'][df['Volume']topnum2].max()
df.loc[df['Volume']topnum2,'Volume']=replace_value1
replace_value2=df['Volume'][df['Volume']bottomnum2].min()
df.loc[df['Volume']bottomnum2,'Volume']=replace_value2

综合模型

import time
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import os
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
from matplotlib import rcParams
from sklearn.linear_model import LinearRegression
from sklearn.neighbors import KNeighborsRegressor
from sklearn.svm import SVR
from sklearn.linear_model import Lasso
from sklearn.linear_model import Ridge
from sklearn.neural_network import MLPRegressor
from sklearn.tree import DecisionTreeRegressor
from sklearn.tree import ExtraTreeRegressor
from pylab import mpl
import sklearn as sns
from scipy.stats import norm
from scipy import stats
import warnings
warnings.filterwarnings("ignore")
%matplotlib inline
from sklearn.ensemble import RandomForestRegressor
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.ensemble import BaggingRegressor
x1=df1.loc[:,df1.columns!='总价']
y1=df1.loc[:,'总价']
x_dum=pd.get_dummies(x1)
scale_x=StandardScaler()
x2=scale_x.fit_transform(x_dum)
scale_y=StandardScaler()
y1=np.array(y1).reshape(-1,1)
y2=scale_y.fit_transform(y1)
y2=y2.ravel()
y_log=np.log(y)
x3_train,x3_test,y3_train,y3_test = train_test_split(x_dum,y_log,test_size = 0.3,random_state = 1)
from xgboost import XGBRegressor
models=[DecisionTreeRegressor(),RandomForestRegressor(),GradientBoostingRegressor(),BaggingRegressor()]
models_str=['DecisionTree', ' XGBoost','RandomForest' , ' GradientBoost',' Bagging']
score_adapt=[]
ypred=np.zeros(x3_test.shape[0],)
for name, model in zip(models_str, models) :
print('开始训练模型:'+name+'平滑处理')
model=model#平熠处理=logy
model.fit (x3_train,y3_train)
y_pred=model.predict(x3_test)
score=model.score(x3_test,y3_test)
ypred_original=np.e**y_pred
ypred_original=ypred_original*0.2
ypred+=ypred_original
score_adapt. append(str(score)[:5])

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/100414.html

(0)

相关推荐

  • Hive数据倾斜的示例分析

    技术Hive数据倾斜的示例分析这篇文章将为大家详细讲解有关Hive数据倾斜的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、离线数据的主要挑战:“数据倾斜”首先介绍 “数据倾

    攻略 2021年12月10日
  • C++中怎么使用工厂函数

    技术C++中怎么使用工厂函数本篇内容介绍了“C++中怎么使用工厂函数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!如果在

    攻略 2021年11月29日
  • Expanse shopify主题模板修改

    技术Expanse shopify主题模板修改 Expanse shopify主题模板修改Expanse是一个现代的Shopify主题,通过自定义的促销活动、直观的导航、简洁的设计和奇妙的移动体验来增强

    礼包 2021年10月19日
  • 荞麦面条怎么做才好吃,莜面粉怎么做成好吃的东西

    技术荞麦面条怎么做才好吃,莜面粉怎么做成好吃的东西这个我最清楚了荞麦面条怎么做才好吃,因为俺家就产莜面的 1、用开水活面,一定用刚烧开的水,(会出来一种很香的味)你可以把他搓成一根一根(要尽快的搓,凉了就不好搓了,搓不

    生活 2021年11月1日
  • Fixed Table统计信息

    技术Fixed Table统计信息 Fixed Table统计信息Fixed Table统计信息
    2 YEARS AGOORACLEOracle有大量的内部视图供DBA使用,这些视图底层表以X$开头,F

    礼包 2021年11月19日
  • APK反编译怎么实现源码阅读

    技术APK反编译怎么实现源码阅读APK反编译怎么实现源码阅读,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1什么是反编译?我们编写源程序经过编译变成可执行文

    攻略 2021年11月16日