机器学习之处理缺失值
- 作者:成都软件开发
- 发表时间: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表示沿行