建立自己得轉換器

2022-04-08 04:57:53 字數 2027 閱讀 2962

小編最近在看資料分析,寫下部落格加深影響。     參考 robert layton得資料分析。

涉及到三個概念,估計器,轉換器,流水線。

 估計器(estimator):用於分類、聚類和回歸分析。

 轉換器(transformer):用於資料預處理和資料轉換。

 流水線(pipeline):組合資料探勘流程,便於再次使用

scikit-learn 估計器

為幫助使用者實現大量分類演算法,scikit-learn把相關功能封裝成所謂的估計器。估計器用

於分類任務,它主要包括以下兩個函式。

 fit():訓練演算法,設定內部引數。該函式接收訓練集及其類別兩個引數。

 predict():引數為測試集。**測試集類別,並返回乙個包含測試集各條資料類別的

陣列。大多數scikit-learn估計器接收和輸出的資料格式均為numpy陣列或類似格式。

轉換器像極了轉換函式。它接收一種形式的資料,輸出另外一種形式。轉換器可以用訓練集

訓練,訓練得到的引數可以用來轉換測試資料集。轉換器通常用作資料處理和數值轉化,因為在實際情況中,影響事物得種類很多,隊事物影響得權重又不同,導致資料冗雜。因此,將資料集進行轉化不僅可以提高執行速度,更提高準確度。

from sklearn.base import

transformermixin

from sklearn.utils import

as_float_array

class

meandiscrete(transformermixin):

def fit(self, x, y=none):

x =as_float_array(x)

self.mean = np.mean(x, axis=0)

return

self

deftransform(self, x):

x =as_float_array(x)

# 判斷矩陣得列數是否一致

assert x.shape[1] ==self.mean.shape[0]

return x > self.mean

小編再看得時候,有些語法忘了,便隨手在ipython上面敲了敲。

下面再進行檢驗:

%%file adult_tests.py

import

numpy as np

from numpy.testing import

assert_array_equal

deftest_meandiscrete():

x_test = np.array([[ 0, 2],

[ 3, 5],

[ 6, 8],

[ 9, 11],

[12, 14],

[15, 17],

[18, 20],

[21, 23],

[24, 26],

[27, 29]])

mean_discrete =meandiscrete()

mean_discrete.fit(x_test)

assert_array_equal(mean_discrete.mean, np.array([13.5, 15.5]))

x_transformed =mean_discrete.transform(x_test)

x_expected =np.array([[ 0, 0],

[ 0, 0],

[ 0, 0],

[ 0, 0],

[ 0, 0],

[ 1, 1],

[ 1, 1],

[ 1, 1],

[ 1, 1],

[ 1, 1]])

assert_array_equal(x_transformed, x_expected)

流水線通常是由轉換器和估算器組成得,最夠必須是估算器。

下面附上:

注釋轉換器

讓我們來實現乙個注釋轉換器。它可以將擁有c風格 code 或c 風格 code 的注釋的 轉換為c 風格。剛開始看到這個題目是有點頭暈的,因為各種注釋的混合將使情況變得非常複雜,比如 1.一般情況 int i 0 2.換行問題 int i 0 int j 0 int i 0 int j 0 3.匹配...

進製轉換器

專案分析 1.列印主選單。輸出主選單選項 小寫轉化為大寫 輸入的驗證 2.大小寫的轉化。輸入需要轉化的數 必須要小於基數 需驗證為字串型 引數 基數 返回值 乙個通過驗證過的數 3.進製的轉化 轉化的方式分兩種 一種是十進位制轉化為其他進製。另一種是其他進製轉化為十進位制 public classc...

進製轉換器

include include include define max 10 define add 10 typedef int elemtype typedef struct sqstacksqstack 初始化 intinsistack sqstack s s.top s.base s.maxsi...