簡體   English   中英

使用准備好的數據進行Sci-kit分類

[英]Using prepared data for Sci-kit classification

我正在嘗試使用Sci-kit學習python庫來分類一堆網址,以確定是否存在與用戶配置文件匹配的特定關鍵字。 用戶具有姓名,電子郵件地址......以及分配給他們的網址。 我創建了一個txt,每個鏈接上的每個配置文件數據匹配的結果都是這樣的格式:

Name  Email  Address
  0     1      0      =>Relavent
  1     1      0      =>Relavent
  0     1      1      =>Relavent
  0     0      0      =>Not Relavent

其中0或1表示在頁面上找到屬性(每​​行是一個網頁)如何將此數據提供給sci-kit以便它可以使用它來運行分類器? 我看到的例子都有來自預定義的sch-kit庫的數據,例如數字或虹膜,或者是以我已有的格式生成的。 我只是不知道如何使用我必須提供給庫的數據格式

以上是一個玩具示例,我有比3更多的功能

所需的數據是具有形狀(n_samples, n_features)numpy數組 (在這種情況下為“矩陣” (n_samples, n_features)

使用numpy.genfromtxtcsv文件讀取為正確格式的簡單方法。 也參考這個帖子

讓csv文件的內容(比如當前工作目錄中的file.csv )為:

a,b,c,target
1,1,1,0
1,0,1,0
1,1,0,1
0,0,1,1
0,1,1,0

要加載它我們做

data = np.genfromtxt('file.csv', skip_header=True)

skip_header設置為True ,以防止讀取標題列( a,b,c,target行)。 有關更多詳細信息,請參閱numpy的文檔

加載數據后,需要根據輸入數據格式進行一些預處理。 預處理可以是分割輸入和目標(分類)或將整個數據集拆分為訓練和驗證集(用於交叉驗證)。

要從輸出(目標矢量)中分割輸入(特征矩陣),我們這樣做

features = data[:, :3]
targets = data[:, 3]   # The last column is identified as the target

對於上面給出的CSV數據,數組將使用如下所示:

features = array([[ 0, 1, 0],
              [ 1, 1, 0],
              [ 0, 1, 1],
              [ 0, 0, 0]])  # shape = ( 4, 3)

targets = array([ 1, 1, 1, 0])  # shape = ( 4, )

現在將這些矩陣傳遞給估計器對象fit函數。 如果你正在使用流行的svm分類器那么

>>> from sklearn.svm import LinearSVC
>>> linear_svc_model = LinearSVC()
>>> linear_svc_model.fit(X=features, y=targets) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM