python混淆函數(shù) python 混入

Python sklearn.metrics模塊混淆矩陣常用函數(shù)

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程序代碼混淆、編譯、打包、運(yùn)行(桌面程序防破解向)

像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ā)布到客戶端后不被輕易破解。

python是否有繪制混淆矩陣的函數(shù),怎么來實(shí)現(xiàn)

也就是說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)

網(wǎng)站優(yōu)化排名