WebHU - Programozási kérdések és válaszok

Scikit-learn rácskeresés SVM regresszióval

Tanulok keresztellenőrzési rácsos keresést, és ráakadtam erre a youtube lejátszási listára és az oktatóanyagra Felkerült a github oldalra is ipython jegyzetfüzetként . Megpróbálom újra létrehozni a kódokat a Több paraméter keresése egyidejűleg részben, de a knn helyett SVM regressziót használok. Ez az én kódom

from sklearn.datasets import load_iris
from sklearn import svm
from sklearn.grid_search import GridSearchCV
import matplotlib.pyplot as plt
import numpy as np
iris = load_iris()
X = iris.data
y = iris.target

k=['rbf', 'linear','poly','sigmoid','precomputed']
c= range(1,100)
g=np.arange(1e-4,1e-2,0.0001)
g=g.tolist()
param_grid=dict(kernel=k, C=c, gamma=g)
print param_grid
svr=svm.SVC()
grid = GridSearchCV(svr, param_grid, cv=5,scoring='accuracy')
grid.fit(X, y)  
print()
print("Grid scores on development set:")
print()  
print grid.grid_scores_  
print("Best parameters set found on development set:")
print()
print(grid.best_params_)
print("Grid best score:")
print()
print (grid.best_score_)
# create a list of the mean scores only
grid_mean_scores = [result.mean_validation_score for result in grid.grid_scores_]
print grid_mean_scores

De ezt a hibát adja

raise ValueError("X-nek négyzetes kernelmátrixnak kell lennie") ValueError: X-nek négyzetes kernelmátrixnak kell lennie

30.03.2016

  • Python-hiba bejelentésekor mindig idéznie kell a teljes Python-visszakövetést, amely információt ad arról, hogy hol merült fel a kivétel. 30.03.2016

Válaszok:


1

Távolítsa el a 'precomputed' értéket a paramétertérből.

A kernel='precomputed'csak olyan (n_samples, n_samples) adatmátrix átadásakor használható, amely a minták páronkénti hasonlóságát reprezentálja a hagyományos (n_samples, n_features) téglalap alakú adatmátrix helyett.

A kernelparaméter jelentésével kapcsolatos további részletekért lásd a dokumentációt:

30.03.2016
  • Szia, köszönöm a választ, de meg tudnád mondani, hogyan exportálhatjuk ezt a modellt, ez a helyes út >>> from sklearn.externals import joblib >>> joblib.dump(grid, 'my_model.pkl', compress=9) 30.03.2016
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..