python 利用庫sklearn 中的 grid_search對svm 引數尋優(借鑑)
from sklearn import metrics
import numpy as np
import pickle
from sklearn.tree import DecisionTreeClassifier
def svm_cross_validation(val_x, val_y):
from sklearn.grid_search import GridSearchCV
from sklearn.svm import SVC
model = SVC(kernel='rbf', probability=True)
param_grid = {'C': [ 1e-1, 1, 10], 'gamma': [0.001]}
grid_search = GridSearchCV(model, param_grid, n_jobs = 1, verbose=1)
grid_search.fit(train_x, train_y)
best_parameters = grid_search.best_estimator_.get_params()
for para, val in best_parameters.items():
print(para, val)
model = SVC(kernel='rbf', C=best_parameters['C'], gamma=best_parameters['gamma'], probability=True)
model.fit(train_x, train_y)
return model
def read_data(data_file):
import gzip
f = gzip.open(data_file, "rb")
train, val, test = pickle.load(f,encoding='latin1')
f.close()
train_x = train[0]
train_y = train[1]
val_x = val[0]
val_y=val[1]
test_x = test[0]
test_y = test[1]
return train_x, train_y, test_x, test_y, val_x, val_y
if __name__ == '__main__':
data_file = "D:/Users/咖啡豆/Anaconda/Sklearn/Mnist/mnist.pkl.gz"
thresh = 0.5
model_save_file = None
model_save = {}
test_classifiers = ['SVMCV']
classifiers = {'SVMCV':svm_cross_validation
}
print('reading training and testing data...')
train_x, train_y, test_x, test_y, val_x,val_y= read_data(data_file)
num_train, num_feat = train_x.shape
num_test, num_feat = test_x.shape
is_binary_class = (len(np.unique(train_y)) == 2)
print('******************** Data Info *********************')
print('#training data: %d, #testing_data: %d, dimension: %d' % (num_train, num_test, num_feat))
for classifier in test_classifiers:
print('******************* %s ********************' % classifier)
start_time = time.time()
model = classifiers[classifier](train_x, train_y)
print ('training took %fs!' % (time.time() - start_time))
predict = model.predict(test_x)
if model_save_file != None:
model_save[classifier] = model
if is_binary_class:
precision = metrics.precision_score(test_y, predict)
recall = metrics.recall_score(test_y, predict)
print('precision: %.2f%%, recall: %.2f%%' % (100 * precision, 100 * recall))
accuracy = metrics.accuracy_score(test_y, predict)
print('accuracy: %.2f%%' % (100 * accuracy))
if model_save_file != None:
pickle.dump(model_save, open(model_save_file, 'wb'))
相關推薦
python 利用庫sklearn 中的 grid_search對svm 引數尋優(借鑑)
import time from sklearn import metrics import numpy as np import pickle from sklearn.tree import DecisionTreeClassifier def svm
機器學習庫sklearn中整合學習模型引數釋義
''' scikit-learn基於AdaBoosts演算法提供了兩個模型: 1.AdaBoostClassifier用於解決分類問題 2.AdaBoostRegressor用於解決迴歸問題 ''' from sklearn.ensemble import AdaBoostC
Python 爬取網頁中JavaScript動態添加的內容(二)
python tab sta exe div int rom ava script 使用 selenium + phantomjs 實現 1、準備環境 selenium(一個用於web應用程測試的工具)安裝:pip install seleniumphantomjs(是
Python實現刪除列表中滿足一定條件的元素示例(轉)
http://www.jb51.net/article/115953.htm 本文例項講述了Python實現刪除列表中滿足一定條件的元素。分享給大家供大家參考,具體如下: 從列表中刪除滿足一定條件的元素。 如:刪除一個列表中長度為0的元素,或者刪除列表中同時是2和3的倍數的元素。 做過高階語言程式設計的人想
python讀取excel檔案中所有sheet表格:openpyxl模組(二)
通過openpyxl模組 迴圈遍歷excel檔案中所有sheet表格。 excel檔案 e:\\t.xlsx ,有2個sheet: sales 客戶編碼 年月 銷售額(萬元) JLF0001 20
libsvm學習記錄(三)svm引數尋優
基於GridSearch的svm引數尋優 http://www.matlabsky.com/thread-12411-1-1.html 還有以下兩種 沒有解釋 只有程式碼 直接見原連結 交叉驗證(CrossValidation)方法思想簡介以下簡稱交叉驗證(Cross
python庫sklearn中的一些函數(更新ing...)
算法 str type 文檔 blog and 類別 num ont sklearn是python的重要機器學習庫,其中封裝了大量的機器學習算法,如:分類、回歸、降維以及聚類;還包含了監督學習、非監督學習、數據變換三大模塊。sklearn擁有完善的文檔,使得它具有了上手容易
python機器學習庫sklearn——支援向量機svm
支援向量機的優勢在於: 在高維空間中非常高效.即使在資料維度比樣本數量大的情況下仍然有效. 在決策函式(稱為支援向量)中使用訓練集的子集,因此它也是高效利用記憶體的. 通用性: 不同的核函式與特定的決策函式一一對應.常見的 kernel 已經提供,也
python - pandas或者sklearn中如何將字符形式的標簽數字化
tail article end post blog 數字化 das body 數字 參考:http://www.php.cn/wenda/91257.html https://www.cnblogs.com/king-lps/p/7846414.html
Python擴充套件庫numpy中where()函式的三種用法 Python擴充套件庫numpy中where()函式的三種用法
原 Python擴充套件庫numpy中where()函式的三種用法 2018年06月25日 07:43:56 Python_小屋 閱讀數:1000
python中對閉包的理解(2)
上一篇介紹了閉包的概念,這一篇介紹下閉包的使用過程中需要注意的問題。 def count(): fs = [] for i in range(1,4): def f(): return i*i fs.append(f)
python中對閉包的理解(1)
今天聊下python中閉包的用法,首先它是在函式內再定義一個函式,內部定義的函式可以引用外部函式的引數和區域性變數,在呼叫外部函式時返回的是內部函式,但是不會立馬執行內部函式的程式體,需要單獨呼叫內部函式才會去執行。下面的程式就是閉包 首先正常定義一個求和函式: def sum(*args)
SVM引數引數介紹以及python實現GA對SVM引數的優化
最近開始玩起了機器學習,以前都是用matlab做一些機器學習的東西,畢竟要真正放到工程上應用還是python用起來比較好,所以今天就開始學習下使用SVM進行迴歸(分類)預測。 SVM 使用的一般步驟是: 1)準備資料集,轉化為 SVM支援的資料格式 : [label] [ind
Python常用庫urllib中urllib.request模組使用詳解
1.urllib2和urllib庫的區別 Urllib庫是Python中的一個功能強大、用於操作URL,並在做爬蟲的時候經常要用到的庫。在Python2.x中,分為Urllib庫和Urllin2庫,P
利用redis快取對 list集合中的資料 進行分頁操作(一)
先說 儲存的結構: 這裡做了兩塊快取 綠色是儲存索引的快取 黑色是存資料的快取 翻頁時需要兩個引數 向上查詢/或向下查詢 還一個是 從第二頁開始查詢時需要一個索引的引數 有了這兩個引數 就可以利用redis 中提供的方法進行操作 第一個是 jedis.z
opencv中的SVM圖像分類(二)
proc 文本 c_str lec 源碼 open right tle 特征描述 opencv中的SVM圖像分類(二) 標簽: svm圖像 2015-07-30 08:45 8296人閱讀 評論(35) 收藏 舉報 分類: 【opencv應用】(5) 版
mysql數據庫中關於內連接、外鏈接中on where having的用法。(轉載)
cell 顯示 null align 工作 orm 最終 mysql 表數據 SQL中on條件與where條件的區別 數據庫在通過連接兩張或多張表來返回記錄時,都會生成一張中間的臨時表,然後再將這張臨時表返回給用戶。 在使用left jion時
jQuery中 對標簽元素操作(1)
刪除節點 empty 創建元素 標簽 bubuko img rem 元素 清空 一:創建元素節點(添加) 創建元素節點並且把節點作為元素的子節點添加到DOM樹上 append(): 在元素下添加元素 用法:$("id").append("定義的節點");
采用短網址生成方法,生成一個唯一的短字符串。 然後保存到數據庫中,與源數據一一對應,新的系統,從數據庫中取到相應的數據 (轉)
hash parseint uid += 不用 裏的 我想 ger vrf /** * 短網址生成方法 * 這個方法會,生成四個短字符串,每一個字符串的長度為6 * 這個方法是從網上搜索的一個方法,但不知道出自何處了,稍微將key換了一下
WPF 添加 Resources Dictionary 資源 一般類庫項目中無法添加資源文件(ResourceDictionary)
右鍵 edi blog eba wan 類庫 src cti 分享圖片 原文:WPF 添加 Resources Dictionary 資源 一般類庫項目中無法添加資源文件(ResourceDictionary)在文件夾或者項目右鍵-> Add(添加),會彈出可以快捷