1 如何描述数据
"机器都能够从数据中学习和趋优了,我们也要如此,坚持学习和进步。"
面对一个数据集,你会描述它吗?
描述数据集,目的是为了理解数据。你对数据理解的越充分和全面,你就越能够更好地处理数据和应用数据。
描述你自己的数据集,可以从这些方面入手。
一 概况分析
1 数据集大小,包括观察大小和维度大小
2 变量的类型观察,因为不同的变量类型会使用不同观察手段和工具
3 元数据分析,也就是对于数据解释的数据,比方说,每个变量表示什么意思,有什么业务含义,与什么业务有关系。(一切数据业务化,一切业务数据化)。
二 数据观察
1 从大量数据中可以先选择一部分数据来观察,以对数据有个直观认识
三 数据摘要分析
1 采用描述性统计分析的方法,变量类型的统计特征进行计算和了解
四 变量重要性分析
1 选择一种算法,评价数据集中变量的重要性
五 可视化分析
1 采用可视化分析,理解变量的分布和变量之间的关系
我们以描述Iris数据集为例
一 参考代码:
# -*- coding: utf-8 -*-
"""
描述你的数据
@author: Luqing Wang
"""
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
from sklearn import datasets
from sklearn.ensemble import RandomForestClassifier
if __name__ == "__main__":
br = '\n'
iris = datasets.load_iris()
# 1 数据集概况分析
X = iris.data
y = iris.target
print('特征集 shape:', X.shape)
print('目标 shape:', y.shape, br)
print('特征集 dtypes:', X.dtype)
print('目标 dtypes:', y.dtype)
features = iris.feature_names
targets = iris.target_names
print('特征集元数据:')
print(features, br)
print('目标元数据:')
print(targets, br)
# 2 数据观察
print('iris数据集前10条数据:')
print(X[0:10, :])
# 3 数据摘要分析
# 描述性统计分析
print('特征集描述统计分析:')
print(pd.DataFrame(X, columns=['sepal_length', 'sepal_width', 'petal_length', 'petal_width']).describe().T)
print('目标的分布:')
print(pd.Series(y).value_counts())
# 4 变量重要性分析
# 利用随机森林算法来评估变量的重要性
rnd_clf = RandomForestClassifier(random_state=0, n_estimators=100)
rnd_clf.fit(X, y)
rnd_name = rnd_clf.__class__.__name__
feature_importances = rnd_clf.feature_importances_
importance = sorted(zip(feature_importances, features), reverse=True)
print('most important features' + ' (' + rnd_name + '):')
[print (row) for i, row in enumerate(importance)]
# 5 数据可视化分析
iris_data = pd.DataFrame(X, columns=['sepal_length', 'sepal_width', 'petal_length', 'petal_width'])
iris_data['species'] = y
sns.pairplot(iris_data, vars=['sepal_length', 'sepal_width', 'petal_length', 'petal_width'], hue='species')
plt.show()
二 代码结果:
2.1 概要分析
2.2 数据检视
2.3 描述性统计分析
2.4 变量重要性分析
2.5 数据可视化分析