當前位置:首頁 » 編程語言 » python安裝libsvm

python安裝libsvm

發布時間: 2023-08-13 18:28:26

⑴ 如何在linux中libsvm與gunplot

1、下載:先到http://www.csie.ntu.e.tw/~cjlin/libsvm/下載Linux下對版本tar.gz 。
2、解壓縮解壓縮到任一目錄下,這里我解壓到/home/xxxxxx/libsvm-2.91。/home/xxxxxx/是我的用戶目錄,xxxxxx是用戶名。
3、編譯:進入到/home/xxxxxx/libsvm-2.91,輸入命令make(即可完成安裝,但有時候會出現下列錯誤)

g++ -Wall -Wconversion -O3 -fPIC -c svm.cpp
make: g++: Command not found
make: *** [svm.o] Error 127
4、錯誤解決:此錯誤為沒有對應編譯器,需要安裝。
5、安裝g++編譯器:在終端輸入命令 apt-get install g++
6、再編譯:安裝g++成功後,即可再編譯,編譯成功即可用libsvm
7、Libsvm使用
A.使用svm-train訓練:在終端中輸入./svm-train heart_scale
B.使用svm-predict預測:在終端輸入./svm-predict heart_scale heart_scale.model out
heart_scale為test file, heart_scale.model是由svm-train訓練出來對模型文件,out為預測輸出文件。

8、如果想使用easy.py和grid.py更快的執行以上第7步驟的工作。因為Ubuntu中已經安裝了python和gunplot,所以這兩個軟體對安裝工作可以省略。進入/home/xxxxxx/libsvm-2.91/tools到目錄後,只需要在終端中輸入:
python easy.py /home/xxxxxx/libsvm-2.91/SYN /home/xxxxxx/libsvm-2.91/SYN2NMF
這里SYN為用來構建模型對訓練文件;SYN2NMF為需要預測對文件
運行結果:
Best c=2.0, g=0.0078125 CV rate=77.45
Training...
Output model: SYN.model
Scaling testing data...
Testing...
Accuracy = 83.35% (1667/2000) (classification)
Output prediction: SYN2NMF.predict
關於Linux命令的介紹,看看《linux就該這么學》,具體關於這一章地址3w(dot)linuxprobe/chapter-02(dot)html

PS:在安裝過程中,最好首先在終端中輸入 sudo -i 切換為root用戶模式,避免許可權錯誤。

⑵ 如何利用Python做簡單的驗證碼識別

1摘要

驗證碼是目前互聯網上非常常見也是非常重要的一個事物,充當著很多系統的防火牆功能,但是隨時OCR技術的發展,驗證碼暴露出來的安全問題也越來越嚴峻。本文介紹了一套字元驗證碼識別的完整流程,對於驗證碼安全和OCR識別技術都有一定的借鑒意義。

然後經過了一年的時間,筆者又研究和get到了一種更強大的基於CNN卷積神經網路的直接端到端的驗證識別技術(文章不是我的,然後我把源碼整理了下,介紹和源碼在這裡面):

基於python語言的tensorflow的『端到端』的字元型驗證碼識別源碼整理(github源碼分享)

2關鍵詞

關鍵詞:安全,字元圖片,驗證碼識別,OCR,Python,SVM,PIL

3免責聲明

本文研究所用素材來自於某舊Web框架的網站完全對外公開的公共圖片資源。

本文只做了該網站對外公開的公共圖片資源進行了爬取,並未越權做任何多餘操作。

本文在書寫相關報告的時候已經隱去漏洞網站的身份信息。

本文作者已經通知網站相關人員此系統漏洞,並積極向新系統轉移。

本報告的主要目的也僅是用於OCR交流學習和引起大家對驗證安全的警覺。

4引言

關於驗證碼的非技術部分的介紹,可以參考以前寫的一篇科普類的文章:

互聯網安全防火牆(1)--網路驗證碼的科普

裡面對驗證碼的種類,使用場景,作用,主要的識別技術等等進行了講解,然而並沒有涉及到任何技術內容。本章內容則作為它的技術補充來給出相應的識別的解決方案,讓讀者對驗證碼的功能及安全性問題有更深刻的認識。

5基本工具

要達到本文的目的,只需要簡單的編程知識即可,因為現在的機器學習領域的蓬勃發展,已經有很多封裝好的開源解決方案來進行機器學習。普通程序員已經不需要了解復雜的數學原理,即可以實現對這些工具的應用了。

主要開發環境:

  • python3.5

  • python SDK版本

  • PIL

  • 圖片處理庫

  • libsvm

  • 開源的svm機器學習庫

  • 關於環境的安裝,不是本文的重點,故略去。

    6基本流程

    一般情況下,對於字元型驗證碼的識別流程如下:

  • 准備原始圖片素材

  • 圖片預處理

  • 圖片字元切割

  • 圖片尺寸歸一化

  • 圖片字元標記

  • 字元圖片特徵提取

  • 生成特徵和標記對應的訓練數據集

  • 訓練特徵標記數據生成識別模型

  • 使用識別模型預測新的未知圖片集

  • 達到根據「圖片」就能返回識別正確的字元集的目標

  • 7素材准備

    7.1素材選擇

    由於本文是以初級的學習研究目的為主,要求「有代表性,但又不會太難」,所以就直接在網上找個比較有代表性的簡單的字元型驗證碼(感覺像在找漏洞一樣)。

    最後在一個比較舊的網站(估計是幾十年前的網站框架)找到了這個驗證碼圖片。

    原始圖:

  • def get_feature(img): """

  • 獲取指定圖片的特徵值,

  • 1. 按照每排的像素點,高度為10,則有10個維度,然後為6列,總共16個維度

  • :param img_path:

  • :return:一個維度為10(高度)的列表 """


  • width, height = img.size


  • pixel_cnt_list = []

  • height = 10 for y in range(height):

  • pix_cnt_x = 0 for x in range(width): if img.getpixel((x, y)) == 0: # 黑色點

  • pix_cnt_x += 1


  • pixel_cnt_list.append(pix_cnt_x) for x in range(width):

  • pix_cnt_y = 0 for y in range(height): if img.getpixel((x, y)) == 0: # 黑色點

  • pix_cnt_y += 1


  • pixel_cnt_list.append(pix_cnt_y) return pixel_cnt_list

  • 然後就將圖片素材特徵化,按照libSVM指定的格式生成一組帶特徵值和標記值的向量文

⑶ python下使用libsvm能處理數據格式為復數(complex)的數據嗎

毋庸置疑,LibSVM是台灣牛人為世界機器學習的卓越貢獻之一。一般都是基於Matlab的,其實LibSVM也可以用Python跑。
第一步,確定本機Python的版本:

32位的最易配置,哈哈,我的機器就是這么的古董。64位的童鞋請Google。

第二步,到官網http://www.csie.ntu.e.tw/~cjlin/libsvm/,來下載LibSVM軟體包,我選擇的是zip包。

第三步,將zip包解壓到一個特定位置,我放到了C:盤根目錄,當然也可以放到program files中。

第四步,就可以測試一下LibSVM是否可用了,打開Python IDE,輸入以下代碼:

能夠看到輸出,84%的分類准確性。

第五步,使用我的個人數據
libsvm的數據格式如下:

第一列代表標簽,第二列是第一個特徵值,第三列是第二個特徵值。所以,先要把數據按規定格式整理好。然後開始訓練。
import os
import sys

os.chdir('C:\libsvm-3.17\python')
from svmutil import *

y, x = svm_read_problem('../lkagain.txt')
m = svm_train(y[:275], x[:275], '-c 5')

y, x = svm_read_problem('../lk2.txt')
p_label, p_acc, p_val = svm_predict(y[0:], x[0:], m)
print p_label
print p_acc
print p_val

第六步,Python介面
在libsvm-3.16的python文件夾下主要包括了兩個文件svm.py和svmutil.py。
svmutil.py介面主要包括了high-level的函數,這些函數的使用和LIBSVM的MATLAB介面大體類似
svmutil中主要包含了以下幾個函數:
svm_train() : train an SVM model
svm_predict() : predict testing data
svm_read_problem() : read the data from a LIBSVM-format file.
svm_load_model() : load a LIBSVM model.
svm_save_model() : save model to a file.
evaluations() : evaluate prediction results.

熱點內容
c語言取隨機數 發布:2025-02-06 02:46:57 瀏覽:863
uc緩存的視頻卡住 發布:2025-02-06 02:17:05 瀏覽:144
解壓同學介紹 發布:2025-02-06 02:13:10 瀏覽:776
icsftp 發布:2025-02-06 02:12:59 瀏覽:325
ftp跨域上傳文件 發布:2025-02-06 02:09:22 瀏覽:822
非遞歸全排列演算法 發布:2025-02-06 02:06:45 瀏覽:551
vs反編譯dll 發布:2025-02-06 02:06:00 瀏覽:584
ubuntu設置ftp許可權 發布:2025-02-06 01:54:07 瀏覽:599
奇瑞5哪個配置值得買 發布:2025-02-06 01:51:56 瀏覽:552
黑鯊手機哪裡看安卓版本 發布:2025-02-06 01:36:04 瀏覽:803