1.accuracy_score(y_true, y_pred, normalize=True, sample_weight=None)
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比昂仁網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式昂仁網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋昂仁地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。
參數(shù)分別為y實(shí)際類別、預(yù)測(cè)類別、返回值要求(True返回正確的樣本占比,false返回的是正確分類的樣本數(shù)量)
eg:
import numpy as np
from sklearn.metrics import accuracy_score
y_pred = [0, 2, 1, 3]
y_true = [0, 1, 2, 3]
accuracy_score(y_true, y_pred)
0.5
accuracy_score(y_true, y_pred, normalize=False)
2.classification_report(y_true, y_pred, labels=None, target_names=None, sample_weight=None, digits=2)
參數(shù):真是類別,預(yù)測(cè)類別,目標(biāo)類別名稱
eg:
3.confusion_matrix(y_true, y_pred, labels=None, sample_weight=None)
輸出為混淆矩陣
eg:
太多了,寫3個(gè)常用的吧,具體參考help(metrics)
defcm_plot(y,yp):#參數(shù)為實(shí)際分類和預(yù)測(cè)分類
fromsklearn.metricsimportconfusion_matrix
#導(dǎo)入混淆矩陣函數(shù)
cm = confusion_matrix(y,yp)
#輸出為混淆矩陣
importmatplotlib.pyplotasplt
#導(dǎo)入作圖函數(shù)
plt.matshow(cm,cmap=plt.cm.Greens)
# 畫混淆矩陣圖,配色風(fēng)格使用cm.Greens
plt.colorbar()
# 顏色標(biāo)簽
forxinrange(len(cm)):
foryinrange(len(cm)):
plt.annotate(cm[x,y],xy=(x,y),horizontalalignment='center',verticalalignment='center')
#annotate主要在圖形中添加注釋
# 第一個(gè)參數(shù)添加注釋
# 第一個(gè)參數(shù)是注釋的內(nèi)容
# xy設(shè)置箭頭尖的坐標(biāo)
#horizontalalignment水平對(duì)齊
#verticalalignment垂直對(duì)齊
#其余常用參數(shù)如下:
# xytext設(shè)置注釋內(nèi)容顯示的起始位置
# arrowprops 用來設(shè)置箭頭
# facecolor 設(shè)置箭頭的顏色
# headlength 箭頭的頭的長度
# headwidth 箭頭的寬度
# width 箭身的寬度
plt.ylabel('True label')# 坐標(biāo)軸標(biāo)簽
plt.xlabel('Predicted label')# 坐標(biāo)軸標(biāo)簽
returnplt
#函數(shù)調(diào)用
cm_plot(train[:,3],tree.predict(train[:,:3])).show()
像Python這種解釋性的語言,要想私有化部署的同時(shí)又保護(hù)好源碼,就像是對(duì)于魚和熊掌的追求。
雖然做不到盡善盡美,但是對(duì)代碼進(jìn)行混淆,增加一點(diǎn)破解的難度,或許能規(guī)避一些泄露的風(fēng)險(xiǎn)。
本次演示環(huán)境:linux
確保要發(fā)布的包根目錄("demo")中有__main__.py文件,這個(gè)是程序執(zhí)行入口。
編譯
批量改名.pyc文件
移動(dòng).pyc文件
清理.py文件
清理__pycache__文件夾
打包成zip
運(yùn)行時(shí)只要將zip文件作為參數(shù)即可
最終整合腳本
調(diào)用方式
對(duì)于在變量和函數(shù)名上的混淆有點(diǎn)小兒科,而對(duì)于跨文件的類名的混淆又太容易實(shí)現(xiàn)。
所以對(duì)于混淆程度的取舍,要視工程的規(guī)模而定。
2.1 混淆工具pyminifier
在原來的工具 pyminifier上修復(fù)了幾個(gè)bug。
安裝:
python3 安裝
或者clone下來,自行安裝
使用例子
2.2 源碼變更
不同的配置對(duì)于源碼的要求不同,以下是筆者踩過的坑。
其他混淆想法
結(jié)合混淆、編譯和打包,嘗試出以下發(fā)布腳本。
主要的思路 :創(chuàng)建一個(gè)工作目錄tmp,然后在此目錄下混淆、編譯python代碼,完成后把內(nèi)容打包成pyc文件,再將pyc文件和其他配置文件移動(dòng)到dist,發(fā)布dist即可。
混淆的目的是最大程度保護(hù)源碼,在發(fā)布到客戶端后不被輕易破解。
也就是說ABC: sadhcjsd是一個(gè)字符串,現(xiàn)在要提取出后邊對(duì)吧? in_string = ABC: sadhcjsd 那么: in_string.split(':')[-1] 就是你想要的。
文章名稱:python混淆函數(shù) python 混入
標(biāo)題鏈接:http://muchs.cn/article28/dospdjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、網(wǎng)站制作、服務(wù)器托管、云服務(wù)器、全網(wǎng)營銷推廣、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)