Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

人工智能45

27 初识 EDA:全球新冠肺炎确诊病例趋势分析

从本讲开始,我们会通过四个具体的案例来将我们之前学习的 Python 数据分析方面的知识全都串起来。一方面能够融会贯通,另一方面也能帮你掌握数据分析基本的方法论。

本讲我们首先会介绍数据分析中一个非常常见的方法论:EDA(Exploratory Data Analysis),探索性数据分析。其实我们在之前的实战分析中,都或多或少地基于 EDA 来做分析,只是没有系统学习方法论的理论与过程。

在介绍 EDA 的知识后,我们会以分析新冠肺炎的蔓延趋势为例,实践 EDA 分析。

EDA 简介

EDA 区别于传统数据分析的重要一点就是,EDA 不做任何前置的假设,而是直接通过对原始数据进行分析,用可视化技术和各种统计的方法来探寻数据隐含的规律和信息。简单来说就是 从数据中寻找规律,而不是基于人工假设。

近些年随着大数据分析的蓬勃发展,尤其是近期如火如荼的各种数据分析比赛,EDA 变得越来越重要。像 kaggle 平台的比赛,EDA 环节都是必不可少的。

一般来说,EDA 分为以下几个步骤:

  • 确定分析任务的目标;
  • 筛选、清洗数据;
  • 检测异常值与缺失值
  • 数据分析,可视化;
  • 挖掘特征之间的相互关系
  • 挖掘特征与目标变量之间的关系
  • 根据上一步的结果构建模型;
  • 得出最终结论。

从上面的流程不难看出,我们之前的实战思路都类似 EDA 的思路,并且我们学习的比如 numpy、pandas 和 matplotlib 等工具也都是为 EDA 所服务的。

接下来我们通过一个具体的实战,从 EDA 的流程来做一次完整的数据分析。

任务背景

过去一年多来,给我们影响最大的事件就是新冠肺炎的全球大流行。新冠肺炎在给患者带来痛苦的同时,也给医疗体系带来巨大挑战。许多患者面临风险的根本原因是医疗资源短缺。如果能够根据现有的确认数据预测未来可能就诊的次数,那么政府和医院就能够提前规划和准备医疗资源,极大地改善确诊患者的医疗环境。

[En]

Over the past year or so, the event that has had the greatest impact on us is the global pandemic of COVID-19. COVID-19 not only brings pain to patients, but also brings great challenges to the health care system. The essential reason why many patients are at risk is the shortage of medical resources. if the number of possible future visits can be predicted based on the existing confirmed data, then the government and hospitals will be able to plan and prepare medical resources in advance to greatly improve the medical environment of diagnosed patients.

所以,新冠肺炎的蔓延趋势分析也备受关注。数据分析竞赛网站 kaggle 也陆续放出一些数据集给数据分析的爱好者们分析。

今天,我们将根据其中一个数据集,尝试预测不同国家随着时间的推移确诊病例的趋势。

[En]

Today we will try to predict the trend of confirmed cases in different countries over time based on one of the data sets.

数据集描述

这次的数据集由两个文件组成,分别是 train.csv 和 test.csv.。

可以从这里下载:https://pan.baidu.com/s/1Gno1DxwExf326BDwsUuC_g提取码: nufi

train.csv 的格式如下:

Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

test.csv 的格式如下:

Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

为什么是两个文件呢? 顾名思义 train.csv 是用来做数据分析以及训练模型的。而我们模型的目的,就是预测 test.csv 里面的记录,对应的确诊数和死亡数。

接下来,我们就按照之前介绍的 EDA 流程,对上述数据进行分析,并基于分析的结论建立模型。

EDA 分析

确定分析任务的目标

为了更加明确我们的任务目标,我们首先需要先看一下 train.csv 和 test.csv 里面的内容。

在工作目录新建 chapter27 文件夹,并在 VS code 中打开该文件夹。之后新建 notebook 并保存为 chapter27.ipynb。最后,将刚才下载的 train.csv 以及 test.csv 拷贝至该文件夹。

首先我们导入必要的工具包:

import pandas as pd 
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns 
import numpy as np
import random
from plotly import tools
import plotly.express as px
from plotly.offline import init_notebook_mode, iplot, plot 
import plotly.figure_factory as ff
import plotly.graph_objs as go 

然后我们导入两个数据文件,分别查看:

df_train = pd.read_csv("train.csv")
df_test = pd.read_csv("test.csv")

df_train

输出如下:
Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

从输出的数据摘要来看,train 数据中一共有 3.5w 条记录,时间跨度从 2020 年 1 月 22 号到2020 年 5 月 15 号,包含不同国家在不同日期内的确诊病例和死亡病例的数据。另外可以看到省份字段有很多缺失值,需要在清洗环节处理。

然后看一下 test 数据:

df_test

输出如下:
Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

可以看到,test 包含的数据也不少,字段和 train 类似,只是不包含确诊病例数和死亡病例数。时间跨度是从 4 月份到 5 月份,值得注意的一点是时间和 train 数据集中有一定的重叠。

但从 test 数据集的分布来看,本次分析的任务目标已经基本清晰了: 从 train 数据中训练出模型,然后分别预测 test 数据集中,不同的国家在不同的日期中的确诊病例数和死亡病例数。

筛选、清洗数据

接下来,就进入了清洗数据的环节。首先从缺失值开始:

df_train.isna().sum()

输出如下:

Id                    0
Province_State    20700
Country_Region        0
Date                  0
ConfirmedCases        0
Fatalities            0
dtype: int64

可以看到,除了省份,其他都没有缺失值,还算不错,但省份的缺失值数量很大,有 2w 条,而我们的数据集一共才 3w+ 条数据。这代表我们后续分析不适合从省份入手,不然会有较大的偏差。

目前我们先简单用空字符串来填充即可。

df_train = df_train.fillna("")
df_train

输出如下:
Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

可以看到,缺失值已经被成功填充了。

接下来,我们通过 describe 来看一下 dataframe 中的统计分布信息。

df_train.describe()

输出如下:
Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

从输出来看,基本是正常的,符合预期,没有明显的异常值。

数据分析、可视化

接下来,进入数据分析与可视化的环节。

首先,让我们从国家维度出发,看看不同国家的历史诊断比例。由于此数据表中的数据是一个诊断比例随时间变化的表,因此我们不能直接聚合Country维度,这将考虑大量重复。

[En]

First of all, let's start from the national dimension and look at the proportion of historical diagnosis in different countries. Since the data in this data table is a table in which the proportion of diagnoses changes over time, we cannot aggregate the country dimension directly, which will take into account a lot of repetition.

比如从刚才的 DataFrame 概览中,Zimbabwe 5-11 和 5-12 确诊数都是 36。代表 5-12 没有新增,还是 36 确诊。如果我们直接进行求和,则会被计为 72 了。

基于上面的分析,分国家确诊病例数我们可以这样处理:

  • 首先按国家、省份、和日期维度聚合,并求和;
  • 之后按国家和省份维度聚合,但聚合方式为取最大值;
  • 最后按照国家维度聚合求和,并排序。

代码如下:

df_countries = df_train.groupby(["Country_Region","Province_State","Date"])["ConfirmedCases"].sum()
df_countries = df_countries.groupby(["Country_Region", "Province_State"]).max()
df_countries = df_countries.groupby(["Country_Region"]).sum().sort_values(ascending=False)

df_countries = df_countries.head(20)

执行之后,下一步我们使用 plotly 将图表画出来:

fig = px.bar(df_countries, x=df_countries.index, y='ConfirmedCases', labels={'x':'Country'},
             color="ConfirmedCases", color_continuous_scale=px.colors.sequential.Bluered)
fig.update_layout(title_text='国家历史最高确诊数')
fig.show()

输出如下:
Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

可见,美国确诊病例数量远高于其他国家。我们可以通过选中该框来查看除美国以外的其他国家的情况。

[En]

It can be seen that the number of confirmed cases in the United States is much higher than that in other countries. We can check the situation in other countries except the United States by selecting the box.

Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

调整之后的结果如下:

Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

即使不包括美国,剩下的国家仍有很大不同。从这些地图不难发现,国家特征应该是预测确诊病例数量的核心特征之一。

[En]

Even excluding the United States, the remaining countries are still very different. From these maps, it is not difficult to find that the country feature should be one of the core features in predicting the number of confirmed cases.

接下来,我们以美国为例,分析一下确诊病例随时间的变化趋势。

[En]

Next, let's take the United States as an example to analyze the changing trend of confirmed cases over time.

首先还是准备数据源,代码如下:


df_usa_records = df_train.loc[df_train["Country_Region"]=="US", ["Province_State","Date", "ConfirmedCases", "Fatalities"]]

df_usa_records = df_usa_records.groupby("Date").sum()

df_usa_records = df_usa_records.reset_index()

df_usa_records

输出如下:
Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

接下来,我们继续使用 plotly 将其画出来:

fig = px.bar(df_usa_records,x='Date', y='ConfirmedCases', color="ConfirmedCases", color_continuous_scale=px.colors.sequential.Magma)
fig.update_layout(title_text='美国随时间确诊病例数')
fig.show()

输出如下:
Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

整个数据表的时间维度是 2020 年的 2 月到 5 月,这个时候全球除了中国已经取得了一定的控制,其他的国家仍然处于爆发的阶段。从上图中也可以看出,3 月中旬已经没有确诊,但从 3 月中旬开始,确诊病例数随着时间维度开始不断地攀升。所以我们又可以得出,时间同样也是核心的特征之一。

接下来我们看一下美国的死亡病例数:

fig = px.bar(df_usa_records,x='Date', y='Fatalities', color="Fatalities", color_continuous_scale=px.colors.sequential.Magma)
fig.update_layout(title_text='美国随时间死亡病例数')
fig.show()

输出如下:
Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

我们可以看到,总体趋势与诊断曲线相似,但与诊断曲线相比有一定的滞后性,也基本符合直觉。

[En]

We can see that the overall trend is similar to the diagnosis curve, but compared with the diagnosis curve has a certain lag, but also basically in line with intuition.

我们再随机抽样另一个国家的数据情况,比如巴西。代码如下:

df_brz_records = df_train.loc[df_train["Country_Region"]=="Brazil", ["Province_State","Date", "ConfirmedCases", "Fatalities"]]
df_brz_records = df_brz_records.groupby("Date").sum()
df_brz_records = df_brz_records.reset_index()
fig = px.bar(df_brz_records,x='Date', y='ConfirmedCases', color="ConfirmedCases", color_continuous_scale=px.colors.sequential.Magma)
fig.update_layout(title_text='巴西随时间确诊病例数')
fig.show()

输出如下:
Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

看下随时间死亡病例数情况:

fig = px.bar(df_brz_records,x='Date', y='Fatalities', color="Fatalities", color_continuous_scale=px.colors.sequential.Magma)
fig.update_layout(title_text='巴西随时间死亡病例数')
fig.show()

输出如下:
Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

从上图可以看出,巴西的确诊和死亡人数与美国相似,而且随着时间的推移还在上升。但自4月下旬以来,增长速度比美国快得多。从这里我们可以看到,除了不同国家确诊病例总数的差异外,确诊病例数量的发展也存在差异,进一步表明国家维度应该是一个核心特征。

[En]

As can be seen from the picture above, the number of diagnoses and deaths in Brazil is similar to that in the United States, and is still rising over time. But since late April, growth has been much steeper than in the United States. From here we can see that in addition to the differences in the total number of confirmed cases among different countries, there are also differences in the development of the number of confirmed cases, further indicating that the national dimension should be a core feature.

特征工程

现在让我们开始构建模型,从前面的分析可以知道,时间和国家维度是重要的参考指标。这是我们的核心特征,但当我们回想起以前使用的线性回归往往要求特征是一个数字,这样我们就可以用梯度算法来计算模型,而我们的国家是一个类值,时间是一个特殊的类型,我们该怎么办?这需要我们对这两个特征进行预处理,并将它们转换为数字。这就是我们熟悉的特色工程环节。

[En]

Now let's start to build the model, from the previous analysis, we can know that the time and country dimensions are important reference indicators. This is our core feature, but when we recall that the linear regression we used before often requires that the feature is a number, so that we can use the gradient algorithm to calculate the model, and our country is a category value, and time is a special type, what are we going to do? This requires us to preprocess the two features and convert them into numbers. This is the characteristic engineering link that we are familiar with.

(1)处理日期数据

处理日期数据的方法是将日期转换为三个数字:年、月和日,并创建新的字段。处理的逻辑和代码如下:

[En]

The way to deal with date data is to convert the date into three numbers: year, month, and day, and create new fields. The logic and code of the processing are as follows:


def get_year(date_str):
    comps = date_str.split("-")
    return int(comps[0])

def get_month(date_str):
    comps = date_str.split("-")
    return int(comps[1])

def get_day(date_str):
    comps = date_str.split("-")
    return int(comps[2])

df_train["Year"] = df_train.Date.apply(get_year)
df_train["Month"] = df_train.Date.apply(get_month)
df_train["Day"] = df_train.Date.apply(get_day)

df_train

输出如下:
Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

可以看到,我们已经将日期分别拆成了年、月、日三个新的字段。

(2)处理国家的特征

从筛选数据的过程中,我们知道在省级处理方面存在很多不足。但是仍然有一些记录是有值的,所以我们不能直接丢弃这个字段,但如果我们直接将其作为一个特征使用,可能会影响模型的结果。

[En]

From the process of screening data, we know that there are many deficiencies in provincial processing. But there are still some records that have a value, so we can't discard this field directly, but if we use it directly as a feature, it may affect the result of the model.

所以我们将省份直接拼接到国家的维度,将国家+省份整体作为一个特征。这样就能尽可能地使用省份信息,又能避免太多空值给模型造成的影响。代码如下:

df_train["Country_Region"] = df_train["Country_Region"] + df_train["Province_State"]
df_train["Country_Region"].value_counts()

输出如下:

ChinaLiaoning                      115
Egypt                              115
Burundi                            115
USDelaware                         115
Panama                             115
                                  ...

CanadaNew Brunswick                115
ChinaJiangsu                       115
Congo (Kinshasa)                   115
FranceSaint Pierre and Miquelon    115
Colombia                           115
Name: Country_Region, Length: 313, dtype: int64

如您所见,带有省数据的记录已被拼接到国家/地区字段中。

[En]

As you can see, the records with provincial data have been spliced into the country field.

处理国家特征的第二步,就是如何将其转换为数字,一般来说将类别特征转换为数字,可以使用 sklearn 工具包中的 LabelEncoder 对象。代码如下:

from sklearn.preprocessing import LabelEncoder
encoder = LabelEncoder()
df_train["Country_Region"] = encoder.fit_transform(df_train["Country_Region"])
df_train

输出如下:
Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

(3)抽取训练特征和目标特征

接下来就是从原始数据表中排除干扰项,形成用于训练的特征,以及拆分出 ConfirmedCases 作为预测目标特征。代码如下:

df_train_final = df_train[["Country_Region", "Year", "Month", "Day"]]
labels = df_train.ConfirmedCases

模型训练

现在我们的功能已经准备好了,我们需要选择适当的模型体系结构来训练我们的预测模型。在上一课程中,我们使用了线性回归模型,但线性回归不适用于此场景。

[En]

Now that our features are ready, we need to choose the appropriate model architecture to train our prediction model. In the previous course, we used a linear regression model, but linear regression does not apply to this scenario.

从上面表格的内容中,我们可以看到国家被编码成了一个序列号。虽然它是一个数字,但数字本身的大小是没有意义的。比如1个是阿富汗,2个是美国,3个是巴拿马,阿富汗和巴拿马很少,美国很多。这就是所谓的非线性关系,简单地说就是这个数值的大小不能作为判断的依据。然而,从之前的分析来看,国家本身对确诊病例数量的发展至关重要。

[En]

From the contents of our table above, we can see that the country is coded into a serial number. Although it is a number, the size of the number itself is meaningless. For example, 1 is Afghanistan, 2 is the United States, 3 is Panama, Afghanistan and Panama are very few, and the United States is very much. This is the so-called non-linear relationship, which simply means that the size of this value cannot be used as a basis for judgment. However, from the previous analysis, the country itself is critical to the development of the number of confirmed cases.

对于这类非线性特征,我们就需要使用非线性的模型。今天我们就使用业界最常见的 xgboost 来建立模型。

首先要安装 xgboost 工具包,打开开始→Anaconda3→Anaconda Prompt ,输入 conda install xgboost 进行安装。

安装完成后即可进行训练,代码如下:


from xgboost import XGBRegressor

xgb = XGBRegressor(n_estimators = 2500 , random_state = 0 , max_depth = 27)

xgb.fit(df_train_final, labels)

这个训练过程会跑的时间稍久一些,之后会输出:

XGBRegressor(base_score=0.5, booster='gbtree', colsample_bylevel=1,
             colsample_bynode=1, colsample_bytree=1, gamma=0, gpu_id=-1,
             importance_type='gain', interaction_constraints='',
             learning_rate=0.300000012, max_delta_step=0, max_depth=27,
             min_child_weight=1, missing=nan, monotone_constraints='()',
             n_estimators=2500, n_jobs=8, num_parallel_tree=1, random_state=0,
             reg_alpha=0, reg_lambda=1, scale_pos_weight=1, subsample=1,
             tree_method='exact', validate_parameters=1, verbosity=None)

这代表模型训练成功。

获取结论

模型训练完成后,我们需要对 test 数据集中的数据进行预测。首先我们需要将 test 数据集进行和之前 train 数据集一样的操作,包括拆分日期,合并国家省份等,因为需要确保预测的特征和训练的特征一致,才能用刚才训练的模型进行预测。

整理 test 数据集的基本特征:

df_test = df_test.fillna("")
df_test["Year"] = df_test.Date.apply(get_year)
df_test["Month"] = df_test.Date.apply(get_month)
df_test["Day"] = df_test.Date.apply(get_day)
df_test["Country_Region"] = df_test["Country_Region"] + df_test["Province_State"]
df_test

输出如下:
Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

从输出可以看到,我们的 test 特征字段已经和 train 一致了。

接下来就是进行预测,并且将预测结果添加到 test 数据表中。

df_test_final = df_test[["Country_Region", "Year", "Month", "Day"]]
df_test["predict_confirm"] = xgb.predict(df_test_final)
df_test

输出如下:
Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

可以看到,我们的 predict_confirm 已经被成功的添加了。

测试数据是从 4 月 2 号开始的,我们的训练数据也包含这个日期的数据,我们可以查看一下训练数据中这部分数据的取值。

df_train[df_train.Date >= "2020-04-02"]

输出如下:
Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

通过对比两张表,可以发现我们的预测还是比较准确的。

严谨来说,训练数据是不应该包含测试数据的,这样会导致模型对测试数据效果过于好,进而不足够说明模型的效果。 但这里主要以演示过程为目的,没有进行额外的处理。

小结

至此,我们 EDA 的初战就结束了。回顾一下,本讲我们主要学习了如下内容。

  • EDA 的概念和基本的步骤。
  • 遵循 EDA 的基本步骤来进行了新冠肺炎蔓延趋势的案例实战,主要包括:
  • 通过 fillna 填充缺失数据;
  • 通过多次 groupby 聚合来处理出我们希望要的数据;
  • 通过 plotly 绘制柱状图来分析相关趋势;
  • 通过对字段 apply 处理函数来拆分日期维度;
  • 通过 LabelEncoder 来将国家处理为数值;
  • 通过 xgboost 来拟合非线性关系的数据。

下一讲我们将为大家继续带来案例实战:训练通用票房预测模型。

Original: https://blog.csdn.net/fegus/article/details/124584067
Author: 办公模板库 素材蛙
Title: Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析



相关阅读

Title: tensorflow安装步骤(CPU版本,Anaconda环境下,Windows10)

本文主要讲述了在Anaconda环境下,CPU版本tensorflow2.3.0的安装步骤,Windows10系统中Anaconda的安装步骤可以阅读此篇博客:
Anaconda安装步骤(Windows10)

本文分为两大部分:

*
- 一、TensorFlow2.3.0安装步骤
- 二、对TensorFlow2.3.0进行验证

一、TensorFlow2.3.0安装步骤

1.打开Anaconda PromptPython数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

2.输入下面命令,利用Anaconda创建一个python3.7的环境,环境名称为 tensorflow2(名称任意)

conda create -n tensorflow2 python=3.7

Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析
输入y
Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

3.输入下面命令,进入名称为 tensorflow2的环境中去(名称任意)

conda activate tensorflow2

Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

4.输入下面命令,安装python的pip工具

python -m pip install --upgrade pip

Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析
5.输入下面命令,安装TensorFlow2.3.0
(切换到豆瓣源进行安装)

pip install tensorflow-cpu==2.3.0 -i https://pypi.douban.com/simple/

Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析
等待安装完成,如下图所示:
Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析
以上则TensorFlow2.3.0安装完成

二、对TensorFlow2.3.0进行验证

1.打开Anaconda Navigator
Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析
2.点击 Environment,并选择刚刚建好的 tensorflow2环境

Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析
3.回到主界面,找到JupyterLab,点击 Install,等待JupyterLab安装完成
Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析
3.JupyterLab安装完成后,点击 Launch
Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

4.进入JupyterLab页面后,新建一个python的file,输入两行程序并运行

import tensorflow as tf
print(tf.__version__)

Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析
可以看到运行结果显示已安装好TensorFlow2.3.0

验证完成

Original: https://blog.csdn.net/thy0000/article/details/122783136
Author: 萝北村的枫子
Title: tensorflow安装步骤(CPU版本,Anaconda环境下,Windows10)

相关文章
论文阅读 (三)BERT学习 人工智能

论文阅读 (三)BERT学习

【来自自评论区】 1.摘要(Abstract):与别的文章的区别是什么?效果有多好?主要与ELMO和GPT对比 2.引言(Introduction):语言模型的简单介绍;摘要第一段的扩充;主要想法;如...
tf.ConfigProto()详解 人工智能

tf.ConfigProto()详解

tf.ConfigProto()主要的作用是配置tf.Session的运算方式,比如gpu运算或者cpu运算 tf.ConfigProto一般用在创建session的时候,用来对session进行参数...
slam原理介绍和经典算法 人工智能

slam原理介绍和经典算法

1.传统slam局限性 slam算法假设的环境中的物体都是处于静态或者低运动状态的,然而,现实世界是复杂多变的,因此这种假设对于应用 环境有着严格的限制,同时影响视觉slam系统在实际场景中的应用性。...