㈠ python中怎樣導入機器學習的演算法包
對於原始數據我們要將其一部分分為train data,一部分分為test data。train data用於訓練,test data用於測試准確率。在test data上測試的結果叫做validation error。將一個演算法作用於一個原始數據,我們不可能只做出隨機的劃分一次train和test data,然後得到一個validation error,就作為衡量這個演算法好壞的標准。因為這樣存在偶然性。我們必須好多次的隨機的劃分train data和test data,分別在其上面算出各自的validation error。這樣就有一組validation error,根據這一組validation error,就可以較好的准確的衡量演算法的好壞。
cross validation是在數據量有限的情況下的非常好的一個evaluate performance的方法。
而對原始數據劃分出train data和test data的方法有很多種,這也就造成了cross validation的方法有很多種。
sklearn中的cross validation模塊,最主要的函數是如下函數:
sklearn.cross_validation.cross_val_score。他的調用形式是scores = cross_validation.cross_val_score(clf, raw data, raw target, cv=5, score_func=None)
參數解釋:
clf是不同的分類器,可以是任何的分類器。比如支持向量機分類器。clf = svm.SVC(kernel='linear', C=1)
cv參數就是代表不同的cross validation的方法了。如果cv是一個int數字的話,並且如果提供了raw target參數,那麼就代表使用StratifiedKFold分類方式,如果沒有提供raw target參數,那麼就代表使用KFold分類方式。
cross_val_score函數的返回值就是對於每次不同的的劃分raw data時,在test data上得到的分類的准確率。至於准確率的演算法可以通過score_func參數指定,如果不指定的話,是用clf默認自帶的准確率演算法。
還有其他的一些參數不是很重要。
cross_val_score具體使用例子見下:
>>> clf = svm.SVC(kernel='linear', C=1)
>>> scores = cross_validation.cross_val_score(
... clf, raw data, raw target, cv=5)
...
>>> scores
array([ 1. ..., 0.96..., 0.9 ..., 0.96..., 1. ])
除了剛剛提到的KFold以及StratifiedKFold這兩種對raw data進行劃分的方法之外,還有其他很多種劃分方法。但是其他的劃分方法調用起來和前兩個稍有不同(但是都是一樣的),下面以ShuffleSplit方法為例說明:
>>> n_samples = raw_data.shape[0]
>>> cv = cross_validation.ShuffleSplit(n_samples, n_iter=3,
... test_size=0.3, random_state=0)
>>> cross_validation.cross_val_score(clf, raw data, raw target, cv=cv)
...
array([ 0.97..., 0.97..., 1. ])
㈡ python數學庫怎麼用
python程序由包(package)、模塊(mole)和函數組成。
首先我們要確定python中是否含有math或者numpy?用pycharm,file -> settings->project ->project interpreter -> +號 ->搜索相應的庫,若沒有則下載
1. pip下載,打開命令行,輸入 pip --default-timeout=1000 install -U 庫名(如jieba)
2.雲盤下載,如果從論壇的雲盤分享下載,解壓後,打開命令行,cd 解壓路徑 回車
下載完畢後重啟Python,然後編寫時以如下兩種方式引用庫:
import <庫名>
from <庫名> import *
㈢ python 導入數據包的幾種方法
1.直接導入整個數據包:improt 數據包
2.導入數據包中的某一個函數: from 數據包 improt 函數(當函數這一項為 * 時為導入整個數據包)
3. 導入之定義的數據包()
㈣ python怎麼導入庫包
Python庫的導入 import A 為最簡單的引入對應的包。
㈤ 如何把一個python包導入到python庫中
Python 運行環境在查找模塊時是對 sys.path 列表進行遍歷,如果我們想在運行環境中添加自定義的模塊,主要有以下三種方法:
1. 在sys.path列表中添加新的路徑(只能對執行了 sys.path.append 命令的當前 Python 運行環境起作用,對其他運行環境不起作用,也即「一次性」的)。
>>> import sys
>>> sys.path
>>> sys.path.append('/home/xxx/yyy') #目錄/home/xxx/yyy包含你所需要的包或模塊
設置 PYTHONPATH 環境變數(永久性添加):
2. 將包或模塊復制到 sys.path 列表中的目錄(通過 sys.path 查看)里(如 /home/test/lib/python2.7/site-packages/ 目錄)。
3. 最簡單的辦法是用 .pth 文件來實現。Python 在遍歷已有的庫文件目錄(sys.path中指定)過程中,如果見到一個 .pth 文件,就會將該文件中所記錄的路徑加入到 sys.path 設置中,這樣 .pth 文件說指明的庫也就可以被 Python 運行環境找到。
$cd /home/test/lib/python2.7/site-packages/
$touch test.pth
$vim test.pth
$添加一行包或模塊所在的目錄(如:/home/test/somePackage/)
則test.pth文件內容為:
/home/test/somePackage/
㈥ python外部包使用說明方式導入
除了讓包內導入更加顯式,這個功能的一部分設計初衷是,為了幫助腳本解決同名文件出現在模塊搜索路徑上多個不同位置時的二義性。考慮包目錄,這定義了一個名為mypkg 的包,其中含有名為mypkg.main和mypkg.string 的模塊。現在,假設模塊main試圖導入名為string的模塊。在 Python 2.X和更早版本中,Python會先尋找mypkg目錄以執行相對導入。這會找到並導入位於該處的string.py文件,將其賦值給mypkg.main模塊命名空間內的名稱string。不過,這一導入的本意可能是要導入Python標准庫的string模塊。可惜的是,在這些Python版本中,無法直接忽略mypkg.string 去尋找位於模塊搜索路徑更右側的標准庫中的string模塊。此外,我們無法使用完整包導入路徑來解決這個問題,因為我們無法依賴在每台機器上的標准鏈接庫路徑。換句話說,包中的簡單導入可能具有二義性而且容易出錯。在包內,我們無法確定imports pam語句指的是包內的模塊還是包外的模塊。一種可能的後果是,一個局部的模塊或包會在不經意間隱藏了sys.path 上的另一個模塊。在實踐中,Python使用者可以避免為他們自己的模塊重復使用標准庫模塊的名稱(如果需要標准string庫,就不要把新的模塊命名為string)。但是,一個包還是有可能意外地隱藏標准庫模塊。再者,Python 以後可能新增標准庫模塊,而其名稱可能剛好就和自己的一個模塊同名。而依賴於沒有點號開頭相對導入的程序代碼同樣也不容易理解,因為讀者可能對希望使用哪個模塊而感到困惑。所以我們最好能在代碼中顯式地指出導入的解析過程。