Pandas Day8 分類資料

2021-10-07 15:00:23 字數 1910 閱讀 2373

ex8-1

import pandas as pd

import numpy as np

df = pd.read_csv(

'data/earthquake.csv'

)# print(df.head())

# 將深度分為七個等級:[0,5,10,15,20,30,50,np.inf],請以深度等級ⅰ,ⅱ,ⅲ,ⅳ,ⅴ,ⅵ,ⅶ為索引並按照由淺到深的順序進行排序

df_a = df.copy(

)df_a[

'深度'

]= pd.cut(df_a[

'深度'],

[-1e-

10,5,

10,15,

20,30,

50,np.inf]

,labels=

['ⅰ'

,'ⅱ'

,'ⅲ'

,'ⅳ'

,'ⅴ'

,'ⅵ'

,'ⅶ'])

print

(df_a.set_index(

'深度'

).sort_index(

).head())

# 將烈度分為4個等級:[0,3,4,5,np.inf],依次對南部地區的深度和烈度等級建立多級索引排序

df_a[

'烈度'

]= pd.cut(df_a[

'烈度'],

[-1e-

10,3,

4,5,np.inf]

,labels=

['ⅰ'

,'ⅱ'

,'ⅲ'

,'ⅳ'])

print

(df_a.set_index(

['深度'

,'烈度'])

.sort_index(

).head(

))

ex8-2

import pandas as pd

import numpy as np

foo = pd.categorical(

['a'

,'b'

], categories=

['a'

,'b'

,'c'])

bar = pd.categorical(

['d'

,'e'

], categories=

['d'

,'e'

,'f'])

print

(pd.crosstab(foo, bar)

)def

my_crosstab

(foo,bar)

: num =

len(foo)

s1 = pd.series(

[i for i in

list

(foo.categories.union(

set(foo)))

],name=

'1nd var'

) s2 =

[i for i in

list

(bar.categories.union(

set(bar)))

] df = pd.dataframe(

,index=s1)

for i in

range

(num)

: df.at[foo[i]

,bar[i]]+=

1return df.rename_axis(

'2st var'

,axis=1)

print

(my_crosstab(foo,bar)

)

Task03 分類資料

分類變數的建立 pd.series a b c a dtype category 用series建立 對dataframe指定型別建立 利用內建categorical型別建立 利用cut函式建立 pd.cut np.random.randint 0,60,5 0,10,30,60 預設使用區間型別為...

二分類 多分類

怎麼樣把兩類的分類的模型推廣到多類上?答 a.一對多法 one versus rest,簡稱ovr svms 訓練時依次把某個類別的樣本歸為一類,其他剩餘的樣本歸為另一類,這樣k個類別的樣本就構造出了k個svm。分類時將未知樣本分類為具有最大分類函式值的那類。b.一對一法 one versus on...

1 8 分類問題

輸出變數y為離散的有限的值時,問題稱為分類問題。學習得到的分類模型或者決策函式稱為分類器。分類器效能評估的指標 準確率 accuracy 分類正確佔總樣本的比值,也可看著是0 1損失函式在測試集上的準確率 一般二分類問題多,評價指標主要是精確率,召回率,準確率 在測試集上 tp 正類被 為正類的數量...