RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:9:30-18:00
你可能遇到了下面的问题
关闭右侧工具栏

技术支持

机器学习之处理缺失值
  • 作者:成都软件开发
  • 发表时间:2019-03-21 09:00
  • 来源:未知
 
 
为了使用ML代码,库在Python中扮演着非常重要的角色,我们将详细研究它们,但是让我们看一下最重要的一些:
 
NumPy(Numerical Python):它是 Python最伟大的科学和数学计算库之一。像Keras,Tensorflow这样的平台已经在Tensors中嵌入了Numpy操作。我们关注它的功能,易于处理和执行Array操作。
熊猫:这个包在处理数据时非常有用。这使得操作,聚合和可视化数据变得更加容易。
MatplotLib:这个库有助于实现功能强大且非常简单的可视化。
还有更多的库,但它们现在没有用。那么,让我们开始吧。
 
下载数据集:
转到链接并下载Data_for_Missing_Values.csv。
 
Anaconda:
我建议你们在你的系统上安装Anaconda。在您的系统上启动Spyder我们的Jupyter。建议的原因是--Anaconda预先安装了所有基本的Python库。
 
 
 
 
 
 
 
以下是Python代码:
 
filter_none
编辑
play_arrow
 
brightness_4
# Python code explaining How to 
# Handle Missing Value in Dataset 
  
""" PART 1 
    Importing Libraries """
  
import numpy as np 
import matplotlib.pyplot as plt 
import pandas as pd 
  
  
""" PART 2 
    Importing Data """
  
data_sets = pd.read_csv('C:\\Users\\Admin\\Desktop\\Data_for_Missing_Values.csv') 
  
print ("Data Head : \n", data_sets.head()) 
  
print ("\n\nData Describe : \n", data_sets.describe()) 
  
""" PART 3 
    Input and Output Data """
  
# All rows but all columns except last 
X = data_sets.iloc[:, :-1].values 
  
# TES 
# All rows but only last column  
Y = data_sets.iloc[:, 3].values 
                  
print("\n\nInput : \n", X) 
print("\n\nOutput: \n", Y) 
  
  
""" PART 4 
    Handling the missing values """
  
# We will use sklearn library >> preprocessing package 
# Imputer class of that package 
from sklearn.preprocessing import Imputer 
  
# Using Imputer function to replace NaN 
# values with mean of that parameter value 
imputer = Imputer(missing_values = "NaN", 
                  strategy = "mean", axis = 0) 
                    
# Fitting the data, function learns the stats 
imputer = imputer.fit(X[:, 1:3]) 
  
# fit_transform() will execute those 
# stats on the input ie. X[:, 1:3] 
X[:, 1:3] = imputer.fit_transform(X[:, 1:3]) 
  
# filling the missing value with mean 
print("\n\nNew Input with Mean Value for NaN : \n", X) 
输出:
 
数据负责人: 
    购买国家年龄工资
0法国44.0 72000.0没有
1西班牙27.0 48000.0是的
2德国30.0 54000.0没有
3西班牙38.0 61000.0没有
4德国40.0 NaN是的
 
 
数据描述: 
              年龄薪水
数9.000000 9.000000
平均值38.777778 63777.777778
std 7.693793 12265.579662
min 27.000000 48000.000000
25%35.000000 54000.000000
50%38.000000 61000.000000
75%44.000000 72000.000000
最大50.000000 83000.000000
 
 
输入: 
 [['法国'44.0 72000.0]
 ['西班牙'27.0 48000.0]
 ['德国'30.0 54000.0]
 ['西班牙'38.0 61000.0]
 ['德国'40.0南]
 ['France '35.0 58000.0]
 ['西班牙'nan 52000.0]
 ['France '48.0 79000.0]
 ['德国'50.0 83000.0]
 ['France '37.0 67000.0]]
 
 
输出: 
 ['否''是''否''否''是''是''否''是''否''是']
 
 
NaN均值的新输入: 
 [['法国'44.0 72000.0]
 ['西班牙'27.0 48000.0]
 ['德国'30.0 54000.0]
 ['西班牙'38.0 61000.0]
 ['德国'40.0 63777.77777777778]
 ['France '35.0 58000.0]
 ['西班牙'38.77777777777778 52000.0]
 ['France '48.0 79000.0]
 ['德国'50.0 83000.0]
 ['France '37.0 67000.0]]
 
代码说明:
 
第1部分 - 导入库:在上面的代码中,导入了numpy,pandas和matplotlib,但我们只使用了pandas。
第2部分 - 导入数据:
Data_for_Missing_Values.csv通过给pandas read_csv函数的路径导入。现在“data_sets”是一个DataFrame(具有标记行和列的二维表格数据结构)。
然后使用head()函数打印数据帧的前5个数据条目。可以更改条目数,例如对于前3个值,我们可以使用dataframe.head(3)。同样,也可以使用tail()函数获取最后的值。
然后使用describe()函数。它给出了数据的统计汇总,包括每个参数值的最小值,最大值,百分位数(.25,.5,.75),平均值和标准差。
第3部分 - 输入和输出数据:我们将数据帧分为输入和输出。
第4部分 - 处理缺失值:使用sklearn.preprocessing包中的Imputer()函数。
 
IMPUTER:
Imputer(missing_values=’NaN’, strategy=’mean’, axis=0, verbose=0, copy=True)是来自sklearn.preprocessing包的Imputer类的函数。它的作用是将变量参数值从缺失值(NaN)设置为策略值。
 
语法: sklearn.preprocessing.Imputer()
 
参数: 
 
- > missing_values:整数或“NaN”
- > 策略:要估算什么 - 沿轴线表示平均值,中位数或最大值
- > axis(默认值= 0): 0表示沿列,1表示沿行