日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用Python可視化數(shù)據(jù),機器人開發(fā)編程

zhKF_jqr_AI ? 來源:未知 ? 作者:龔婷 ? 2018-03-15 16:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

機器學(xué)習(xí)開發(fā),與Mail.Ru Search數(shù)據(jù)分析負責(zé)人Egor Polusmak和Mail.Ru Group數(shù)據(jù)科學(xué)家Yury Kashnitsky一起探索如何使用Python可視化數(shù)據(jù)。

在機器學(xué)習(xí)領(lǐng)域中,可視化并不僅僅用來制作漂亮的報表。項目的各個階段都大量使用可視化技術(shù)。

在開始一項新任務(wù)時,通過可視化手段探索數(shù)據(jù)往往是任務(wù)的第一步。我們通過圖表匯總數(shù)據(jù),放棄無關(guān)緊要的細節(jié)。相比直接閱讀許多行原始數(shù)據(jù),可視化能更好地幫助人類把握數(shù)據(jù)的要點。令人驚嘆的是,僅僅通過可視化工具創(chuàng)建一些看上去再簡單不過的圖表,就能獲得大量洞見。

接著,在分析模型表現(xiàn)和模型報告的結(jié)果時,我們也常常使用可視化。有時候,為了理解復(fù)雜的模型,我們需要將高維空間映射為視覺上更直觀的二維或三維圖形。

總而言之,可視化是一個相對快捷的從數(shù)據(jù)中獲取新知的手段。因此,學(xué)習(xí)這一極為重要的技術(shù),并將其納入你的日常機器學(xué)習(xí)工具箱,是至關(guān)重要的。

本文將使用pandas、matplotlib和seaborn等流行的庫,帶你上手可視化。

概覽

數(shù)據(jù)集

單變量可視化數(shù)量和類型分布

多變量可視化變量間的相互作用

全數(shù)據(jù)集一窺高維空間

作業(yè)二

相關(guān)資源

下面的材料以Jupyter notebook的形式查看效果最佳。如果你克隆了本教程的代碼倉庫,你也可以在本地運行。

1. 數(shù)據(jù)集

首先初始化環(huán)境:

import numpy as np

import pandas as pd

pd.options.display.max_columns = 12

# 禁用Anaconda警告

import warnings

warnings.simplefilter('ignore')

# 在Jupyter Notebook內(nèi)部顯示圖形

%matplotlib inline

import matplotlib.pyplot as plt

# 我們將使用Seaborn庫

import seaborn as sns

sns.set()

# SVG格式的圖像更清晰

%config InlineBackend.figure_format = 'svg'

# 增加默認的繪圖尺寸

from pylab import rcParams

rcParams['figure.figsize'] = 5, 4

在第一篇文章中,我們使用的是某電信運營商的客戶離網(wǎng)率數(shù)據(jù)。這里我們?nèi)耘f使用這個數(shù)據(jù)集。

df = pd.read_csv('../../data/telecom_churn.csv')

df.head()

數(shù)據(jù)集的特征:

2. 單變量可視化

單變量(univariate)分析一次只關(guān)注一個變量。當我們獨立地分析一個特征時,我們通常最關(guān)心的是該特征的值的分布,而忽略數(shù)據(jù)集中的其他變量。

下面我們將考慮不同統(tǒng)計類型的變量,以及相應(yīng)的可視化工具。

2.1 數(shù)量特征

數(shù)量特征(quantitative feature)的值為有序數(shù)值。這些值可能是離散的,例如整數(shù),也可能是連續(xù)的,例如實數(shù),通常用于表示技術(shù)和度量。

直方圖和密度圖

最簡單的查看數(shù)值變量分布的方法是使用DataFrame的hist()方法繪制它的直方圖(histogram)。

features = ['Total day minutes', 'Total intl calls']

df[features].hist(figsize=(12, 4));

直方圖依照相等的范圍將值分組為柱。直方圖的形狀可能包含了數(shù)據(jù)分布的線索:高斯、指數(shù),等等。當分布基本上很有規(guī)律,但有一些異常值時,你也可以通過直方圖辨認出形狀的歪斜之處。當你使用預(yù)設(shè)某一特定分布類型(通常是高斯)的機器學(xué)習(xí)方法時,知道特征值的分布是非常重要的。

在以上圖形中,我們看到變量Total day minutes(每日通話時長)呈正態(tài)分布(譯者注:正態(tài)分布即高斯分布),而Total intl calls(總國際呼叫數(shù))顯著右傾(它右側(cè)的尾巴更長)。

除了直方圖,理解分布的另一個(經(jīng)常更清楚的)方法是密度圖(density plots),也叫(更正式的名稱)核密度圖(Kernel Density Plots)。它們可以看成是直方圖平滑過的版本。相比直方圖,它們的主要優(yōu)勢是不依賴于柱的尺寸。讓我們?yōu)樯厦鎯蓚€變量創(chuàng)建密度圖:

df[features].plot(kind='density', subplots=True,

layout=(1, 2), sharex=False, figsize=(12, 4));

我們也可以使用seaborn的distplot()方法繪制觀測數(shù)據(jù)的分布。例如,Total day minutes(每日通話時長)的分布。默認情況下,圖形將同時顯示直方圖和核密度估計(kernel density estimation,KDE)。

sns.distplot(df['Total intl calls']);

這里直方圖的柱形的高度已經(jīng)歸一過了,表示的是密度而不是樣本數(shù)。

箱形圖

箱形圖(box plot)是另一種有用的可視化圖形。使用seaborn繪制箱形圖:

_, ax = plt.subplots(figsize=(3, 4))

sns.boxplot(data=df['Total intl calls'], ax=ax);

箱形圖的主要組成部分是箱子(box)(顯然,這是它被稱為箱形圖的原因),須(whisker)和一些單獨的數(shù)據(jù)點(離群值)。

箱子顯示了分布的四分位距;它的長度由25%(Q1,下四分位數(shù))和75%(Q3,上司分位數(shù))決定。箱中的水平線表示中位數(shù)(50%)。

從箱子處延伸出來的線被稱為須。它們表示數(shù)據(jù)點的總體散布,具體而言,是位于區(qū)間(Q1 - 1.5xIQR, Q3 + 1.5xIQR)的數(shù)據(jù)點,其中IQR = Q3 - Q1,也就是四分位距。

離群值是須之外的數(shù)據(jù)點,它們作為單獨的數(shù)據(jù)點,沿著中軸繪制。

我們可以看到,在我們的數(shù)據(jù)中,大量的國際呼叫是相當少見的。

提琴形圖

我們最后考慮的分布圖形是提琴形圖(violin plot)。

下圖左側(cè)是箱形圖,右側(cè)是提琴形圖。

_, axes = plt.subplots(1, 2, sharey=True, figsize=(6, 4))

sns.boxplot(data=df['Total intl calls'], ax=axes[0]); sns.violinplot(data=df['Total intl calls'], ax=axes[1]);

箱形圖和提琴形圖的區(qū)別是,箱形圖顯示了單獨樣本的特定統(tǒng)計數(shù)據(jù),而提琴形圖聚焦于平滑后的整體分布。

describe()

圖形工具之外,我們可以使用DataFrame的describe()方法來獲取分布的精確數(shù)值統(tǒng)計:

df[features].describe()

describe()的輸出基本上是自解釋性的。

2.2 類別和二元特征

類別特征(categorical features take)具有固定數(shù)目的值。每個值將一個觀測數(shù)據(jù)分配到相應(yīng)的組,這些組稱為類別(category)。類別反映了樣本的某個定性屬性。二元(binary)變量是一個重要的類別變量的特例,其中類別的可能值正好為2. 如果類別變量的值具有順序,稱為有序(ordinal)類別變量。

頻率表

讓我們查看下數(shù)據(jù)集的分類平滑:目標變量離網(wǎng)率的分布。首先,我們使用value_counts()得到一張頻率表:

df['Churn'].value_counts()

False 2850

True 483

Name: Churn, dtype: int64

默認情況下,頻率由高到低排列。

在我們的例子中,數(shù)據(jù)是失衡的,也就是說,數(shù)據(jù)集中忠實客戶和不忠實客戶的比例并不相等。只有一小部分的客戶取消了他們的電信服務(wù)訂閱。我們將在以后的文章中看到,這一事實可能暗示衡量分類表現(xiàn)時存在一些限制,以后我們可能額外懲罰我們的模型在預(yù)測少數(shù)“離網(wǎng)”分類時所犯的錯誤。

條形圖

頻率表的圖形化表示是條形圖。創(chuàng)建條形圖最簡單的方法是使用seaborn的countplot()函數(shù)。seaborn中還有一個函數(shù),起了一個令人困惑的名字(barplot()),barplot()絕大部分情況下用于表示以某個類別特征分組的數(shù)值變量的一些基本統(tǒng)計數(shù)據(jù)。

_, axes = plt.subplots(nrows=1, ncols=2, figsize=(12, 4))

sns.countplot(x='Churn', data=df, ax=axes[0]);

sns.countplot(x='Customer service calls', data=df, ax=axes[1]);

盡管條形圖和上面提到的直方圖看起來很像,它們是不一樣的:

直方圖用于查看數(shù)值變量的分布,而條形圖用于類別特征。

直方圖的X軸是數(shù)值;條形圖的X軸可能是任何類型:數(shù)字、字符串、布爾值。

直方圖的X軸是一根笛卡爾坐標軸;條形的順序沒有事先定義。不過,值得注意的是,條形經(jīng)常按照高度排序,也就是值的頻率。同時,當我們考慮有序變量(例如Customer service calls(客服呼叫數(shù)))時,條形通常按照變量的值排序。

左側(cè)的圖形生動地顯示了目標變量的失衡性。右側(cè)Customer service calls(客服呼叫數(shù))的條形圖暗示了大部分客戶最多打了2-3個客服電話就解決了他們的問題。不過,既然我們想要預(yù)測少數(shù)分類,我們可能對少數(shù)不滿意的客戶的表現(xiàn)更感興趣。很可能條形圖的尾巴包含了大部分的離網(wǎng)客戶。目前這只是假想,讓我們來看一些更有趣、更強大的可視化技術(shù)。

3. 多變量可視化

多變量(multivariate)圖形讓我們得以在單張圖像中查看兩個以上變量的聯(lián)系。和單變量圖形一樣,可視化的類型取決于將要分析的變量的類型。

3.1 數(shù)量——數(shù)量

我們先來看看數(shù)量變量之間的相互作用。

相關(guān)矩陣

讓我們看下數(shù)據(jù)集中的數(shù)值變量的相關(guān)性。這一信息很重要,因為有一些機器學(xué)習(xí)算法(比如,線性回歸和邏輯回歸)不能很好地處理高度相關(guān)的輸入變量。

首先,我們使用DataFrame的corr()方法計算出每對特征間的相關(guān)性。接著,我們將所得的相關(guān)矩陣(correlation matrix)傳給seaborn的heatmap()方法,該方法根據(jù)提供的數(shù)值,渲染出一個基于色彩編碼的矩陣:

# 丟棄非數(shù)值變量

numerical = list(set(df.columns) -

set(['State', 'International plan',

'Voice mail plan', 'Area code', 'Churn',

'Customer service calls']))

# 計算和繪圖

corr_matrix = df[numerical].corr()

sns.heatmap(corr_matrix);

從上圖我們可以看到,Total day charge(日話費總額)直接基于電話的分鐘數(shù)計算得到(Total day minutes),這樣的變量有4個。這4個變量稱為因變量(dependent variable),可以直接去除,因為它們并不貢獻任何額外信息。讓我們?nèi)サ羲鼈儯?/p>

numerical = list(set(numerical) -

set(['Total day charge', 'Total eve charge',

'Total night charge', 'Total intl charge']))

散點圖

散點圖(scatter plot)將兩個數(shù)值變量的值顯示為二位空間中的笛卡爾坐標(Cartesian coordinate)。還有三維的散點圖。

讓我們試下matplotlib庫的scatter()方法:

plt.scatter(df['Total day minutes'], df['Total night minutes']);

我們得到了兩個正態(tài)分布變量的散點圖,這張圖沒什么意思??雌饋磉@兩個變量并不相關(guān),因為類似橢圓的形狀和軸是對齊的。

seaborn庫創(chuàng)建的散點圖有一個略微奇特的選項:

sns.jointplot(x='Total day minutes', y='Total night minutes',

data=df, kind='scatter');

jointplot()函數(shù)繪制了兩張直方圖,某些情形下它們可能會有用。這一函數(shù)還可以讓我們繪制平滑過的joint plot:

sns.jointplot('Total day minutes', 'Total night minutes',

data=df, kind="kde", color="g");

這個基本上是我們之前討論過的核密度圖的雙變量版本。

散點圖矩陣

在某些情形下,我們可能想要繪制如下所示的散點圖矩陣(scatterplot matrix)。它的對角線包含變量的分布,而每對變量的散點圖填充了矩陣的其余部分。

# 使用SVG格式可能導(dǎo)致pairplot變得非常慢

%config InlineBackend.figure_format = 'png'

sns.pairplot(df[numerical]);

有時候,這樣的可視化可能幫我們從數(shù)據(jù)中得出一些結(jié)論。

3.2 數(shù)量——類別

在這一小節(jié)中,讓我們的圖形更有趣一點。我們將嘗試從數(shù)值和類別特征的相互作用中得到離網(wǎng)預(yù)測的新洞見。

更具體地,讓我看看輸入變量和目標變量離網(wǎng)的關(guān)系。

先前我們了解了散點圖。散點圖中的數(shù)據(jù)點可以通過色彩或尺寸進行編碼,以便在同一張圖像中包括第三個類別變量的值。我們可以通過之前的scatter()函數(shù)達成這一點,不過,這次讓我們換換花樣,用lmplot()函數(shù)的hue參數(shù)來指定感興趣的類別特征:

sns.lmplot('Total day minutes', 'Total night minutes', data=df,

hue='Churn', fit_reg=False);

看起來占少數(shù)的不忠實客戶偏向右上角;也就是傾向于在白天和夜間打更多電話的客戶。但這不是非常明顯,我們也不會基于這一圖形下任何確定的結(jié)論。

現(xiàn)在,讓我們創(chuàng)建箱形圖,以可視化兩個互斥分組中的數(shù)值變量分布的統(tǒng)計數(shù)據(jù):忠實客戶(Churn=False)和離網(wǎng)客戶(Churn=True)。

# 有時我們可以將有序變量作為數(shù)值變量分析

numerical.append('Customer service calls')

fig, axes = plt.subplots(nrows=3, ncols=4, figsize=(10, 7))

for idx, feat in enumerate(numerical):

ax = axes[int(idx / 4), idx % 4]

sns.boxplot(x='Churn', y=feat, data=df, ax=ax)

ax.set_xlabel('')

ax.set_ylabel(feat)

fig.tight_layout();

從這一圖表中,我們可以看到,兩組之間分歧最大的分布是這三個變量:Total day minutes(日通話分鐘數(shù))、Customer service calls(客服呼叫數(shù))、Number vmail messages(語音郵件數(shù))。在后續(xù)的課程中,我們將學(xué)習(xí)如何使用隨機森林(Random Forest)或梯度提升(Gradient Boosting)來判定特征對分類的重要性;那時我們將看到,前兩個特征對于離網(wǎng)預(yù)測而言確實非常重要。

讓我們分別看下忠實客戶和不忠實客戶的日通話分鐘數(shù)。我們將創(chuàng)建箱形圖和提琴形圖。

_, axes = plt.subplots(1, 2, sharey=True, figsize=(10, 4))

sns.boxplot(x='Churn', y='Total day minutes',

data=df, ax=axes[0]);

sns.violinplot(x='Churn', y='Total day minutes',

data=df, ax=axes[1]);

在這一情形下,提琴形圖并沒有提供關(guān)于數(shù)據(jù)的額外信息,因為箱形圖已經(jīng)告訴了我們一切:不忠實客戶傾向于打更多的電話。

一個有趣的觀察:平均而言,終止他們的協(xié)議的客戶是通訊服務(wù)更活躍的用戶。也許他們對話費不滿意,所以預(yù)防離網(wǎng)的一個可能措施是降低通話費率。公司需要進行額外的經(jīng)濟分析,以查明這樣的措施是否有利。

當我們想要一次分析兩個類別維度下的數(shù)量變量時,可以用seaborn庫的factorplot()函數(shù)。例如,在同一圖形中可視化Total day minutes(日通話分鐘數(shù))和兩個類別變量的相互作用:

sns.factorplot(x='Churn', y='Total day minutes',

col='Customer service calls',

data=df[df['Customer service calls'] < 8],

kind="box", col_wrap=4, size=3, aspect=.8);

從上圖我們可以總結(jié)出,從4次呼叫開始,Total day minutes(日通話分鐘數(shù))可能不再是客戶離網(wǎng)的主要因素。也許,除了我們之前猜測的話費,有些客戶因為其他問題對服務(wù)不滿意,或許這導(dǎo)致了日通話分鐘數(shù)較少。

3.3 類別——類別

正如我們之前提到的,變量Customer service calls(客服呼叫數(shù))的唯一值極少,因此,既可以看成數(shù)值變量,也可以看成有序類別變量。我們已經(jīng)通過計數(shù)圖(countc plot)查看過它的分布了。現(xiàn)在我們感興趣的是這一有序特征和目標變量Churn(離網(wǎng))之間的關(guān)系。

讓我們再一次使用計數(shù)圖看下客服呼叫數(shù)的分布。這次,我們同時傳入hue=Churn參數(shù),以便在圖形中加入類別維度:

sns.countplot(x='Customer service calls', hue='Churn', data=df);

觀察:呼叫客服達到4次以上后,離網(wǎng)率顯著增加了。

現(xiàn)在讓我們看下Churn(離網(wǎng))和二元特征International plan(國際套餐)、Voice mail plan(語音郵件套餐)的關(guān)系。

_, axes = plt.subplots(1, 2, sharey=True, figsize=(10, 4))

sns.countplot(x='International plan', hue='Churn',

data=df, ax=axes[0]);

sns.countplot(x='Voice mail plan', hue='Churn',

data=df, ax=axes[1]);

觀察:開通國際套餐后,離網(wǎng)率會高很多;使用國際套餐是一個強烈的特征。我們在語音郵件套餐上沒有觀察到相同的效應(yīng)。

列聯(lián)表

除了使用圖形進行類別分析之外,還可以使用統(tǒng)計學(xué)的傳統(tǒng)工具:列聯(lián)表(contingency table),又稱為交叉制表(cross tabulation),使用表格形式表示多個類別變量的頻率分布。特別地,它讓我們可以通過查看一列或一行來得知某個變量在另一變量的作用下的分布。

讓我們通過交叉制表看看Churn(離網(wǎng))和類別變量State(州)的關(guān)系:

pd.crosstab(df['State'], df['Churn']).T

State(州)的不同值很多:51. 我們看到每個周只有少量數(shù)據(jù)點——每個州只有3到17個客戶拋棄了運營商。讓我們暫時忽略這一點,計算每個州的離網(wǎng)率,由高到低排列:

df.groupby(['State'])['Churn'].

agg([np.mean]).

sort_values(by='mean', ascending=False).T

乍看起來,新澤西和加利福尼亞的離網(wǎng)率超過了25%,夏威夷和阿拉斯加的離網(wǎng)率則不到6%. 然而,這些結(jié)論是基于極少的樣本得出的,我們的觀察可能僅僅是這一特定數(shù)據(jù)集的性質(zhì)。我們可以通過Matthews和Cramer相關(guān)性假說確認這一點,不過這個超出了這篇文章的范圍。

4. 全數(shù)據(jù)集

4.1 幼稚方法

上面我們查看了數(shù)據(jù)集的不同刻面(facet),猜測感興趣的特征,每次選擇其中的一小部分進行可視化。我們一次僅僅處理兩到三個變量,能比較容易地觀察到數(shù)據(jù)的結(jié)構(gòu)和關(guān)系。但是,如果我們想一下子顯示所有特征呢?如何確保最終的可視化仍然是可解釋的?

我們可以為整個數(shù)據(jù)集使用hist()或者pairplot()方法,同時查看所有的特征。不過,當特征數(shù)目足夠多的時候,這樣的可視化分析很快就變得緩慢和低效。另外,我們其實仍然可以成對地分析變量,而不用一下子分析所有變量。

4.2 降維

大多數(shù)現(xiàn)實世界的數(shù)據(jù)集有很多特征,有時有上萬個特征。每一個特征都可以被看成數(shù)據(jù)點空間的一維。因此,我們經(jīng)常需要處理高維數(shù)據(jù)集,可視化整個高維數(shù)據(jù)集相當難。

為了從整體上查看一個數(shù)據(jù)集,我們需要在不損失很多數(shù)據(jù)信息的前提下,降低用于可視化的維度。這一任務(wù)稱為降維(dimensionality reduction)。降維是一個無監(jiān)督學(xué)習(xí)(unsupervised learning)問題,因為我們需要在不借助任何監(jiān)督輸入的前提下,從數(shù)據(jù)自身得到新的低維特征。

主成分分析(Principal Component Analysis, PCA)是一個著名的降維方法,我們會在之后的課程中討論它。主成分分析有一個限制,它是線性(linear)算法,因而對數(shù)據(jù)有某些特定的限制。

有許多非線性方法,統(tǒng)稱流形學(xué)習(xí)(Manifold Learning)。最著名的流形學(xué)習(xí)方法之一是t-SNE。

4.3 t-SNE

讓我們?yōu)殡x網(wǎng)數(shù)據(jù)創(chuàng)建一個t-SNE表示。

這一方法的名字看起來很復(fù)雜,有些嚇人:t分布隨機近鄰嵌入(t-distributed Stohastic Neighbor Embedding)。它的數(shù)學(xué)也很令人印象深刻(我們不會在這里深究數(shù)學(xué),勇敢的讀者可以閱讀Laurens van der Maaten和Geoffrey Hinton在JMLR上發(fā)表的原論文)。它的基本思路很簡單:為高維特征空間在二維平面(或三維超平面,不過基本上總是使用二維空間)上尋找一個投影,使得在原本的n維空間中相距很遠的數(shù)據(jù)點在屏幕上同樣相距較遠。而原本相近的點在平面上仍然相近。

本質(zhì)上,近鄰嵌入尋找保留了樣本的鄰居關(guān)系的新的維度較低的數(shù)據(jù)表示。

現(xiàn)在讓我們做些練習(xí)。首先,加載類:

from sklearn.manifold import TSNE

from sklearn.preprocessing importStandardScaler

我們?nèi)コ齋tate(州)和離網(wǎng)(Churn)變量,然后用pandas.Series.map()方法將二元特征的“Yes”/“No”轉(zhuǎn)換成數(shù)值:

X = df.drop(['Churn', 'State'], axis=1)

X['International plan'] = X['International plan'].

map({'Yes': 1, 'No': 0})

X['Voice mail plan'] = X['Voice mail plan'].

map({'Yes': 1, 'No': 0})

我們同樣需要歸一化數(shù)據(jù)。我們從每個變量中減去均值,然后除以標準差。這些都可以使用StandardScaler來完成。

scaler = StandardScaler()

X_scaled = scaler.fit_transform(X)

現(xiàn)在可以構(gòu)建t-SNE表示了:

tsne = TSNE(random_state=17)

tsne_repr = tsne.fit_transform(X_scaled)

然后可視化它的圖形:

plt.scatter(tsne_repr[:, 0], tsne_repr[:, 1]);

讓我們根據(jù)離網(wǎng)情況給t-SNE表示加上色彩(綠色表示忠實用戶,紅色表示不忠實用戶)。

plt.scatter(tsne_repr[:, 0], tsne_repr[:, 1],

c=df['Churn'].map({False: 'green', True: 'red'}));

我們可以看到,離網(wǎng)的客戶集中在低維特征空間的一小部分區(qū)域。

為了更好地理解這一圖像,我們可以使用剩下的兩個二元特征給圖像著色:International plan(國際套餐)和Voice mail plan(語音郵件套餐)。綠色代表相應(yīng)的二元特征是正值。

_, axes = plt.subplots(1, 2, sharey=True, figsize=(12, 5))

for i, name in enumerate(['International plan', 'Voice mail plan']):

axes[i].scatter(tsne_repr[:, 0], tsne_repr[:, 1],

c=df[name].map({'Yes': 'green', 'No': 'red'}))

axes[i].set_title(name)

現(xiàn)在很清楚了,許多退訂的不滿意客戶集中在西南聚類(表示開通了國際套餐但沒有開通語音郵件套餐)。

最后,讓我們了解下t-SNE的缺陷:

高計算復(fù)雜度。scikit-learn的實現(xiàn)在真實任務(wù)中往往不太管用。如果你有大量樣本,你應(yīng)該轉(zhuǎn)而使用Multicore-TSNE(多核)。

隨機數(shù)種子的不同會導(dǎo)致圖形大不相同,這給解釋帶來了困難。請參考文末相關(guān)資源給出的t-SNE教程。通常而言,你不應(yīng)該基于這些圖像做出任何深遠的結(jié)論,因為它可能和單純的猜測差不多。當然,t-SNE圖像中的某些發(fā)現(xiàn)可能會啟發(fā)一個想法,這個想法可以通過更全面深入的研究得到確認,但這并不經(jīng)常發(fā)生。

偶爾,t-SNE可以讓你從數(shù)據(jù)中得到非常好的直覺。下面的論文展示了一個這樣的例子:Visualizing MNIST(可視化MNIST)。

有時t-SNE真的能夠幫助你更好地理解數(shù)據(jù),有時t-SNE能夠幫助你畫出圣誕樹玩具 :-)

用t-SNE)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機器人
    +關(guān)注

    關(guān)注

    213

    文章

    31494

    瀏覽量

    223850
  • Google
    +關(guān)注

    關(guān)注

    5

    文章

    1816

    瀏覽量

    60647
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1240

    瀏覽量

    26262
  • 開發(fā)編程
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    5848

原文標題:機器學(xué)習(xí)開放課程(二):使用Python可視化數(shù)據(jù)

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    基于米爾RK3576核心板的國產(chǎn)割草機器人解決方案

    在智慧庭院與機器人產(chǎn)業(yè)高速發(fā)展的今天,割草機器人正經(jīng)歷從“隨機碰撞式”向“規(guī)劃自主式”的深刻變革。與此同時,在國產(chǎn)替代、供應(yīng)鏈自主可控的產(chǎn)業(yè)政策推動下,國內(nèi)整機廠商對高算力、低功耗、國產(chǎn)自主可控
    發(fā)表于 04-24 17:31

    3D系統(tǒng)可視化

    本身的深入描述和F-Theta透鏡的應(yīng)用示例。 光學(xué)系統(tǒng)的3D-可視化 VirtualLab Fusion提供的工具可以實現(xiàn)光學(xué)系統(tǒng)的3D可視化,因此可以用于檢查元件的位置,以及快速了解系統(tǒng)內(nèi)部的光
    發(fā)表于 03-30 09:25

    米爾RK3576成功上車!ROS2 Humble生態(tài)系統(tǒng)體驗

    %@700MHz 渲染體驗:操作流暢,視角切換無卡頓 四、總結(jié)與展望RK3576平臺完全具備運行完整ROS2生態(tài)的能力,性能滿足: 機器人算法開發(fā)與調(diào)試 三維可視化與仿真 多傳感器
    發(fā)表于 01-15 18:30

    高精度機器人控制的核心——基于 MYD-LT536 開發(fā)板的精密運動控制方案

    校正方案,實時補償位置偏差與溫度漂移,顯著提升軌跡規(guī)劃精度與重復(fù)定位精度。 4. 模塊系統(tǒng)集成方案 MYD-LT536 提供完整SDK、Linux 驅(qū)動與開發(fā)文檔,可快速構(gòu)建機器人系統(tǒng)集成
    發(fā)表于 11-14 15:48

    賦能機器人調(diào)試:ZED 攝像頭與 Foxglove 正式集成

    Foxglove 實現(xiàn)全面兼容 — 借助這一專業(yè)化工具組合,您可通過全新維度的可視化手段,高效調(diào)試并優(yōu)化機器人系統(tǒng)。 借助 ZED 與 Foxglove 的組合,我們可以實現(xiàn)實時流式傳輸并可視化呈現(xiàn)豐富的立體視覺和深度
    的頭像 發(fā)表于 11-13 13:30 ?692次閱讀
    賦能<b class='flag-5'>機器人</b>調(diào)試:ZED 攝像頭與 Foxglove 正式集成

    RK3576機器人核心:三屏異顯+八路攝像頭,重塑機器人交互與感知

    瑞芯微RK3576 AIoT處理器處理器憑借其卓越的多屏異顯與8路攝像頭接入能力,為機器人領(lǐng)域帶來革新。米爾電子MYD-LR3576開發(fā)板實測數(shù)據(jù)顯示,在高負載下CPU占用僅34%,完美實現(xiàn)多路視覺
    發(fā)表于 10-29 16:41

    工業(yè)可視化平臺是什么

    (AI)、三維建模等技術(shù),幫助企業(yè)提升生產(chǎn)效率、優(yōu)化決策、降低運營成本,并推動工業(yè)智能轉(zhuǎn)型。 核心功能與特點 數(shù)據(jù)采集與整合 連接各類工業(yè)設(shè)備(如傳感器、PLC、機器人等),實時采集生產(chǎn)數(shù)據(jù)
    的頭像 發(fā)表于 10-24 18:00 ?1251次閱讀

    自制巡線解迷宮機器人(上)

    模擬輸入數(shù)據(jù)自動調(diào)整整個系統(tǒng)的動態(tài)平衡,使得機器人最終能夠快速且平滑地沿著黑線移動。除此之外,該項目最大的亮點是我根據(jù)GD32VF103處理器的庫函數(shù)手冊等相關(guān)資料為RV-STAR開發(fā)板封裝了一個類
    發(fā)表于 10-20 10:39

    工業(yè)機器人的特點

    機器人是關(guān)鍵。工業(yè)互聯(lián)網(wǎng)是通過端上的數(shù)據(jù)傳輸,經(jīng)過大數(shù)據(jù)分析和云計算處理,再進行智能決策的一整個過程,其中端的數(shù)據(jù)傳輸是基礎(chǔ)。工業(yè)互聯(lián)網(wǎng)的
    發(fā)表于 07-26 11:22

    如何使用協(xié)議分析儀進行數(shù)據(jù)分析與可視化

    分析與可視化需結(jié)合工具功能與業(yè)務(wù)場景: 快速診斷:依賴內(nèi)置統(tǒng)計和IO Graph。 深度分析:導(dǎo)出數(shù)據(jù)Python/R進行統(tǒng)計建模。 長期監(jiān)控:集成至SIEM/APM系統(tǒng)實現(xiàn)自動。
    發(fā)表于 07-16 14:16

    明遠智睿SSD2351開發(fā)板:語音機器人領(lǐng)域的變革力量

    通過網(wǎng)絡(luò)連接云端服務(wù)器進行快速檢索和分析,然后利用語音合成技術(shù)將答案以自然流暢的語音反饋給用戶。同時,借助開發(fā)板的網(wǎng)絡(luò)連接功能,語音機器人還可以與后臺管理系統(tǒng)進行數(shù)據(jù)交互,實時更新知識庫和優(yōu)化服務(wù)策略
    發(fā)表于 05-28 11:36

    工業(yè)設(shè)備可視化管理系統(tǒng)是什么

    工業(yè)設(shè)備可視化管理系統(tǒng)是一種基于物聯(lián)網(wǎng)(IoT)、大數(shù)據(jù)、云計算、數(shù)字孿生等技術(shù),對工業(yè)設(shè)備的運行狀態(tài)、性能參數(shù)、維護信息等進行實時監(jiān)測、數(shù)據(jù)整合與可視化呈現(xiàn)的智能管理平臺。它通過將復(fù)
    的頭像 發(fā)表于 05-27 14:56 ?1340次閱讀
    工業(yè)設(shè)備<b class='flag-5'>可視化</b>管理系統(tǒng)是什么

    盤點#機器人開發(fā)平臺

    地瓜機器人RDK X5開發(fā)套件地瓜機器人RDK X5開發(fā)套件產(chǎn)品介紹 旭日5芯片10TOPs算力-電子發(fā)燒友網(wǎng)機器人
    發(fā)表于 05-13 15:02

    結(jié)構(gòu)可視化:利用數(shù)據(jù)編輯器剖析數(shù)據(jù)內(nèi)在架構(gòu)?

    結(jié)構(gòu)可視化聚焦于展示數(shù)據(jù)的內(nèi)部結(jié)構(gòu)和各部分之間的關(guān)系,使企業(yè)能夠深入理解數(shù)據(jù)的組織方式和層次體系,從而更好地進行數(shù)據(jù)管理和分析。通過結(jié)構(gòu)可視化
    的頭像 發(fā)表于 05-07 18:42 ?954次閱讀

    工業(yè)設(shè)備數(shù)據(jù)集中監(jiān)控可視化管理平臺是什么

    工業(yè)設(shè)備數(shù)據(jù)集中監(jiān)控可視化管理平臺是一種用于整合、監(jiān)控和可視化工業(yè)設(shè)備數(shù)據(jù)的綜合性系統(tǒng),旨在幫助企業(yè)實現(xiàn)設(shè)備數(shù)據(jù)的集中管理、實時監(jiān)控和
    的頭像 發(fā)表于 05-06 11:10 ?1235次閱讀
    宣恩县| 蓬莱市| 南漳县| 宝坻区| 张家口市| 石屏县| 永济市| 汝南县| 中方县| 松阳县| 巴里| 山东| 改则县| 奉贤区| 兴文县| 武胜县| 九龙县| 余江县| 德格县| 北宁市| 平利县| 迁安市| 阿图什市| 兰坪| 四子王旗| 河北省| 鄂尔多斯市| 河东区| 潮州市| 丰顺县| 新昌县| 积石山| 汉源县| 繁峙县| 桂阳县| 长乐市| 清原| 平和县| 丰都县| 吉林省| 平阳县|