广告
返回顶部
首页 > 资讯 > 后端开发 > Python >数据分析-python
  • 844
分享到

数据分析-python

数据分析-python 2021-04-03 11:04:27 844人浏览 猪猪侠

Python 官方文档:入门教程 => 点击学习

摘要

数据分析 参考python数据分析与挖掘实战-张良均著 数据探索 数据质量分析 缺失值分析 异常值分析 一致性分析 利用箱线图检验异常值,可以看出数据的分布范围大致情况,和1/4值、1/2值、3/4值得情况。 代码: # -*- c

数据分析-python

数据分析

参考python数据分析与挖掘实战-张良均著

数据探索

数据质量分析

  • 缺失值分析
  • 异常值分析
  • 一致性分析
  • 利用箱线图检验异常值,可以看出数据的分布范围大致情况,和1/4值、1/2值、3/4值得情况。
    image
    代码:
# -*- coding: utf-8 -*-
import pandas as pd
catering_sale = "../data/catering_sale.xls"  # 餐饮数据
data = pd.read_excel(catering_sale, index_col = u"日期")  # 读取数据,指定“日期”列为索引列
print(data.describe())

import matplotlib.pyplot as plt  # 导入图像库
plt.rcParams["font.sans-serif"] = ["SimHei"]  # 用来正常显示中文标签
plt.rcParams["axes.unicode_minus"] = False  # 用来正常显示负号

plt.figure()  # 建立图像
p = data.boxplot(return_type="dict")  # 画箱线图,直接使用DataFrame的方法
x = p["fliers"][0].get_xdata()  #  "flies"即为异常值的标签
y = p["fliers"][0].get_ydata()
y.sort()  # 从小到大排序,该方法直接改变原对象
"""
用annotate添加注释
其中有些相近的点,注解会出现重叠,难以看清,需要一些技巧来控制
以下参数都是经过调试的,需要具体问题具体调试。
"""
for i in range(len(x)):
    if i>0:
        plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.05 -0.8/(y[i]-y[i-1]),y[i]))
    else:
        plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.08,y[i]))

plt.show()  # 展示箱线图

数据预处理阶段

数据清洗:

  • 缺失值处理

    • 3种方式:
      1.删除该行数据,
      2.数据插补(均值/中位数/众数插补、使用固定值、最近临插补、回归方法、插值法(拉格朗日插值法)参考地址:https://www.cnblogs.com/hjk-airl/p/15766870.html),
      3.不处理
  • 异常值处理

    • 常用方法
      • 删除含有异常值的数据
      • 视为缺失值
      • 平均值修正
      • 不处理

数据变换

  • 简单函数板换(开方、平方、取对数、差分)
  • 规范化
    • 最大最小规范化image
    • 零-均值规范化image *σ原始数据标准差,
    • 小数定标规范化image

数据规范化代码

# -*- coding: utf-8 -*-
import pandas as pd
import numpy as np
datafile = "../data/nORMalization_data.xls"  # 参数初始化
data = pd.read_excel(datafile, header = None)  # 读取数据
print(data)

(data - data.min()) / (data.max() - data.min())  # 最小-最大规范化
(data - data.mean()) / data.std()  # 零-均值规范化
data / 10 ** np.ceil(np.log10(data.abs().max()))  # 小数定标规范化

数据属性规约

  • 常用方法:决策树归纳、主成分分析
    主成分分析PCA代码主要作用降维
#主成分分析 降维
import pandas as pd

#参数初始化
inputfile = "../data/principal_component.xls"
outputfile = "../tmp/dimention_reducted.xls" #降维后的数据
data = pd.read_excel(inputfile, header = None) #读入数据

from sklearn.decomposition import PCA
a = 4
pca = PCA()#降低到的4维度 
PCA(copy=True,n_components=None,whiten=False)#copy=Ture不改变原始数据
pca.fit(data)#训练
low_d = pca.transform(data)##降低他的维度
print(pca.components_) #返回模型的各个特征向量
print(low_d)
print(pca.explained_variance_ratio_) #返回各个成分各自的方差百分比

挖掘建模

分类与预测

-回归分析、决策树、人工神经网络、贝叶斯网络、支持向量机
逻辑回归代码logistic

# -*- coding: utf-8 -*-

# 代码5-1

import pandas as pd
from sklearn.linear_model import LoGISticRegression as LR
# 参数初始化
filename = "../data/bankloan.xls"
data = pd.read_excel(filename)
x = data.iloc[:,:8].values
y = data.iloc[:,8].values

lr = LR(max_iter=5000)  # 建立逻辑回归模型
lr.fit(x, y)  # 用筛选后的特征数据来训练模型

print("模型的平均准确度为:%s" % lr.score(x, y))


神经网络分类


  • image
  • image
# -*- coding: utf-8 -*-


import pandas as pd
# 参数初始化
inputfile = "../data/sales_data.xls"
data = pd.read_excel(inputfile, index_col = "序号")  # 导入数据

# 数据是类别标签,要将它转换为数据
# 用1来表示“好”“是”“高”这三个属性,用0来表示“坏”“否”“低”
data[data == "好"] = 1
data[data == "是"] = 1
data[data == "高"] = 1
data[data != 1] = 0
x = data.iloc[:,:3].astype(int)
y = data.iloc[:,3].astype(int)

from Tensorflow.Python.keras.models import Sequential
from tensorflow.python.keras.layers.core import Dense, Activation

model = Sequential()  # 建立模型
model.add(Dense(input_dim = 3, units = 64))
model.add(Activation("relu"))  # 用relu函数作为激活函数,能够大幅提供准确度
model.add(Dense(input_dim = 64, units = 1))
model.add(Activation("sigmoid"))  # 由于是0-1输出,用sigmoid函数作为激活函数

model.compile(loss = "binary_crossentropy", optimizer = "adam")
# 编译模型。由于我们做的是二元分类,所以我们指定损失函数为binary_crossentropy,以及模式为binary
# 另外常见的损失函数还有mean_squared_error、cateGorical_crossentropy等,请阅读帮助文件。
# 求解方法我们指定用adam,还有sgd、rmsprop等可选

model.fit(x, y, epochs = 100, batch_size = 10)  # 训练模型,学习一千次
yp = model.predict_classes(x).reshape(len(y))  # 分类预测

from cm_plot import *  # 导入自行编写的混淆矩阵可视化函数
cm_plot(y,yp).show()  # 显示混淆矩阵可视化结果

聚类分析

  • 常用方法:划分方法(k-means聚类算法)、层次分析方法
    image

image

# -*- coding: utf-8 -*-

import pandas as pd
# 参数初始化
inputfile = "../data/consumption_data.xls"  # 销量及其他属性数据
outputfile = "../tmp/data_type.xls"  # 保存结果的文件名
k = 3  # 聚类的类别
iteration = 500  # 聚类最大循环次数
data = pd.read_excel(inputfile, index_col = "Id")  # 读取数据
data_zs = 1.0*(data - data.mean())/data.std()  # 数据标准化

from sklearn.cluster import KMeans
model = KMeans(n_clusters = k, max_iter = iteration,random_state=1234)  # 分为k类,并发数4
model.fit(data_zs)  # 开始聚类

# 简单打印结果
r1 = pd.Series(model.labels_).value_counts()  # 统计各个类别的数目
print(r1)
r2 = pd.DataFrame(model.cluster_centers_)  # 找出聚类中心
print(r2)
r = pd.concat([r2, r1], axis = 1)  # 横向连接(0是纵向),得到聚类中心对应的类别下的数目
r.columns = list(data.columns) + ["类别数目"]  # 重命名表头
print(r)

# 详细输出原始数据及其类别
r = pd.concat([data, pd.Series(model.labels_, index = data.index)], axis = 1)   # 详细输出每个样本对应的类别
r.columns = list(data.columns) + ["聚类类别"]  # 重命名表头
r.to_excel(outputfile)  # 保存结果
print(r)

def density_plot(data):  # 自定义作图函数
  import matplotlib.pyplot as plt
  plt.rcParams["font.sans-serif"] = ["SimHei"]  # 用来正常显示中文标签
  plt.rcParams["axes.unicode_minus"] = False  # 用来正常显示负号
  p = data.plot(kind="kde", linewidth = 2, subplots = True, sharex = False)
  [p[i].set_ylabel("密度") for i in range(k)]
  plt.legend()
  return plt

pic_output = "../tmp/pd"  # 概率密度图文件名前缀
for i in range(k):
  density_plot(data[r["聚类类别"]==i]).savefig("%s%s.png" %(pic_output, i))
  density_plot(data[r["聚类类别"] == i]).show()


from sklearn.manifold import TSNE
tsne = TSNE(random_state=105)
tsne.fit_transform(data_zs)  # 进行数据降维
tsne = pd.DataFrame(tsne.embedding_, index = data_zs.index)  # 转换数据格式

import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = ["SimHei"]  # 用来正常显示中文标签
plt.rcParams["axes.unicode_minus"] = False  # 用来正常显示负号

# 不同类别用不同颜色和样式绘图
d = tsne[r["聚类类别"] == 0]
plt.plot(d[0], d[1], "r.")
d = tsne[r["聚类类别"] == 1]
plt.plot(d[0], d[1], "go")
d = tsne[r["聚类类别"] == 2]
plt.plot(d[0], d[1], "b*")
plt.show()


在这里推荐两个好用的网站

scikit-learn中文社区:Https://scikit-learn.org.cn/
包含七种启发式算法的代码库文档:https://scikit-opt.GitHub.io/scikit-opt/#/zh/README
第一个
image
第二个
image

原文地址:https://www.cnblogs.com/hjk-airl/arcHive/2022/03/04/15773129.html

--结束END--

本文标题: 数据分析-python

本文链接: https://www.lsjlt.com/news/9166.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 数据分析-python
    数据分析 参考python数据分析与挖掘实战-张良均著 数据探索 数据质量分析 缺失值分析 异常值分析 一致性分析 利用箱线图检验异常值,可以看出数据的分布范围大致情况,和1/4值、1/2值、3/4值得情况。 代码: # -*- c...
    99+
    2021-04-03
    数据分析-python
  • Python 数据分析教程探索性数据分析
    目录什么是探索性数据分析(EDA)?描述性统计分组数据方差分析相关性和相关性计算什么是探索性数据分析(EDA)? EDA 是数据分析下的一种现象,用于更好地理解数据方面,例如:&nb...
    99+
    2022-11-11
  • Python数据分析之分析千万级淘宝数据
    目录1、项目背景与分析说明2、导入相关库3、数据预览、数据预处理4、模型构建1)流量指标的处理2)用户行为指标3)漏斗分析4)客户价值分析(RFM分析)1、项目背景与分析说明 1)项...
    99+
    2022-11-13
  • Python数据分析入门
    本文来分享一下如何通过Python来开始数据分析。具体内容如下:数据导入导入本地的或者web端的CSV文件;数据变换;数据统计描述;假设检验单样本t检验;可视化;创建自定义函数。数据导入这是很关键的一步,为了后续的分析我们首先需要导入数据。...
    99+
    2023-01-31
    入门 数据 Python
  • python数据分析之pandas数据选
      Pandas是作为Python数据分析著名的工具包,提供了多种数据选取的方法,方便实用。本文主要介绍Pandas的几种数据选取的方法。   Pandas中,数据主要保存为Dataframe和Series是数据结构,这两种数据结构数据...
    99+
    2023-01-30
    数据 python pandas
  • python数据分析之聚类分析(cluster analysis)
    何为聚类分析 聚类分析或聚类是对一组对象进行分组的任务,使得同一组(称为聚类)中的对象(在某种意义上)与其他组(聚类)中的对象更相似(在某种意义上)。它是探索性数据挖掘的主要任务,也...
    99+
    2022-11-12
  • Python数据分析之pandas读取数据
    一、三种数据文件的读取 二、csv、tsv、txt 文件读取 1)CSV文件读取: 语法格式:pandas.read_csv(文件路径) CSV文件内容如下: import pandas as pd file...
    99+
    2022-06-02
    python pandas读取数据 pandas数据读取
  • python数据分析系列(1)
    目录 python基础 python语言基础 Ipython的一些特性 Python语法基础 Python控制流 ...
    99+
    2023-01-31
    系列 数据 python
  • python如何做数据分析
    python可以使用以下工具做数据分析。Matplotlib可以用来绘制数据图表,能够绘制各类图形,Numpy主要针对数组数据的一些相关处理,Pandas则比较高级,可以处理Series、DataFrame等高级数据结构和工具,一般常用的有...
    99+
    2022-10-19
  • Python数据分析--Pandas知识
    本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘 1. 重复值的处理 利用drop_duplicates()函数删除数据表中重复多余的记录, 比如删除重复多余的ID. 1 import pandas as p...
    99+
    2023-01-30
    知识 数据 Python
  • 使用Python进行数据分析——方差分析
    大家好,方差分析可以用来判断几组观察到的数据或者处理的结果是否存在显著差异。本文介绍的方差分析(Analysis of Variance,简称ANOVA)就是用于检验两组或者两组以上样本的均值是否具备显著性差异的一种数理统计方法。 根据影...
    99+
    2023-09-12
    数据分析 数据挖掘 信息可视化 Powered by 金山文档
  • 【100天精通Python】Day53:Python 数据分析_NumPy数据操作和分析进阶
    目录 1. 广播  2 文件输入和输出 3 随机数生成 4 线性代数操作  5 进阶操作 6  数据分析示例 1. 广播         广播是NumPy中的一种机制,用于在不同形状的数组之间执行元素级操作,使它们具有兼容的形状。广播允许...
    99+
    2023-09-06
    python 数据分析 numpy
  • python数据分析及可视化(十五)数据分析可视化实战篇(抖音用户数据分析、二手房数据分析)
    python数据分析的实战篇,围绕实例的数据展开分析,通过数据操作案例来了解数据分析中的频繁用到的知识内容。 抖音用户数据分析 1.理解数据 数据字段含义 了解数据内容,确保数据来源是正常的,安全合法...
    99+
    2023-09-02
    python 数据分析 开发语言
  • python 数据分析之 HTML文件解析
    python 数据分析之 HTML文件解析 一 :Html1. Html 理解2. Html 介绍3. Html 构成4. HTML结构 介绍1> HTML文件结构A: 文档类型声明B: 根标...
    99+
    2023-09-02
    html python 数据分析
  • Python的xpath数据解析案例分析
    这篇“Python的xpath数据解析案例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python的xpath数据解析...
    99+
    2023-06-29
  • Python数据分析之绘制m1-m2数据
    目录前言m0-m1-m2 数据获取ppi-cpi 图形绘制总结前言 前文讲述了ppi-cpi的图形绘制,在本文中继续分享另外一个与经济息息相关的货币数据指标M0-M1-M2,在这里还...
    99+
    2022-11-12
  • Python数据分析之Matplotlib数据可视化
    目录1.前言2.Matplotlib概念3.Matplotlib.pyplot基本使用3.数据展示3.1如何选择展示方式3.2绘制折线图3.3绘制柱状图3.3.1普通柱状图3.3.2...
    99+
    2022-11-11
  • python数据分析之时间序列分析详情
    目录前言时间序列的相关检验白噪声检验平稳性检验自相关和偏相关分析移动平均算法简单移动平均法简单指数平滑法霍尔特(Holt)线性趋势法Holt-Winters季节性预测模型ARIMA模...
    99+
    2022-11-11
  • python数据分析之公交IC卡刷卡分析
    目录一、背景二、任务要求三、使用步骤四、总结一、背景 交通大数据是由交通运行管理直接产生的数据(包括各类道路交通、公共交通、对外交通的刷卡、线圈、卡口、GPS、视频、图片等数据)、交...
    99+
    2022-11-12
  • python数据分析绘图可视化实例分析
    本篇内容介绍了“python数据分析绘图可视化实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言:数据分析初始阶段,通常都要进行可视...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作