2015-12-11 40 views
0

我正在尋找從表中將列名映射到它在相同表中的相應索引(位置)編號。所以這就是我所擁有的。從他們的索引中獲取相應的列名postgres

我有一個正常的數據表,有320個功能。每個功能都有一個列名。現在,我跑我的機器學習算法和結果存儲在其中只有一個一行如下另一個表:

Features Features_selected Coeff_all Coef_selected 
{[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31],[32],[33],[34],[35],[36],[37],[38],[39],[40],[41],[42],[43],[44],[45],[46],[47],[48],[49],[50],[51],[52],[53] (...) {[23],[26],[49],[57],[72],[76],[77],[78],[80],[102],[142],[146],[148],[151],[155],[203],[236],[237]} {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00506647638801,0,0,0.00214173291413,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0125487796757,0,0,0,0,0,0,0,-0.0611439140518,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0551106356256,0,0,0,0.0229294880725,0.0870627454718 (...) {-0.00506647638801,0.00214173291413,0.0125487796757,-0.0611439140518,0.0551106356256,0.0229294880725,0.0870627454718,0.239468263125,0.0440983220954,0.0575895639153,0.0027274832634,0.00682172962834,0.00932203929069,0.00697528972051,0.0333308071579,0.2709655 (...) 

正如你看到它具有以下的列。

特徵 - 這是列表數組的形式,其中每個列表是原始數據表中列的索引。該專欄應該提供320個特徵索引。

Features_selected:此列僅包含爲模型選擇的那些功能。再次,一系列特徵索引

Coef_all:所有特徵的權重/係數。再次,這個陣列中的每個權重與特徵數組中的每個特徵都有1-1對應關係。

Coef_selected:只有非零係數。

現在我對這個結果數據運行這個查詢來取消每一個特徵,而不是一行,我會得到320行,每行有每個特徵的索引以及相應的係數。

代碼和彈性輸出顯示在下圖中。

enter image description here

所以現在我有功能指標與它們對應的係數的名單,但我想用實際的列名每項功能指數映射。如上所述,實際的列名存在於具有全部數據的原始基表中。我們可以使用該表的信息模式並使用索引獲取相應的功能名稱。

感謝

+1

你可以在這裏發佈有關表格的結構嗎?我們從哪裏得到這個名字?那桌子怎麼和這張桌子連在一起?另外,請不要發佈圖片。 –

+0

已更新。請再次檢查。也請刪除關閉標記。我想我現在已經提供了不錯的信息 – Baktaawar

回答

0

可以使用

SELECT column_name, ordinal_position 
FROM information_schema.columns 
WHERE table_schema = '<schema_name>' 
AND table_name = '<table_name>'; 

與相應的模式和表名試試你的運氣。 oridnal_position值是指您的索引,而column_name是此索引處列的名稱。


提供了一種替代方案,它比我的更好,它提供了here

相關問題