真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python中混淆函數(shù) python混淆矩陣

Python程序代碼混淆、編譯、打包、運(yùn)行(桌面程序防破解向)

像Python這種解釋性的語(yǔ)言,要想私有化部署的同時(shí)又保護(hù)好源碼,就像是對(duì)于魚和熊掌的追求。

創(chuàng)新互聯(lián)公司技術(shù)團(tuán)隊(duì)10多年來(lái)致力于為客戶提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、品牌網(wǎng)站建設(shè)全網(wǎng)營(yíng)銷推廣、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過多年發(fā)展,公司擁有經(jīng)驗(yàn)豐富的技術(shù)團(tuán)隊(duì),先后服務(wù)、推廣了近千家網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機(jī)構(gòu)單位。

雖然做不到盡善盡美,但是對(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

在原來(lái)的工具 pyminifier上修復(fù)了幾個(gè)bug。

安裝:

python3 安裝

或者clone下來(lái),自行安裝

使用例子

2.2 源碼變更

不同的配置對(duì)于源碼的要求不同,以下是筆者踩過的坑。

其他混淆想法

結(jié)合混淆、編譯和打包,嘗試出以下發(fā)布腳本。

主要的思路 :創(chuàng)建一個(gè)工作目錄tmp,然后在此目錄下混淆、編譯python代碼,完成后把內(nèi)容打包成pyc文件,再將pyc文件和其他配置文件移動(dòng)到dist,發(fā)布dist即可。

混淆的目的是最大程度保護(hù)源碼,在發(fā)布到客戶端后不被輕易破解。

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

1.accuracy_score(y_true, y_pred, normalize=True, sample_weight=None)

參數(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 用來(lái)設(shè)置箭頭

# facecolor 設(shè)置箭頭的顏色

# headlength 箭頭的頭的長(zhǎng)度

# 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ù),怎么來(lái)實(shí)現(xiàn)

#?-*-?coding:?UTF-8?-*-

"""繪制混淆矩陣圖"""

import?matplotlib.pyplot?as?plt

from?sklearn.metrics?import?confusion_matrix

def?confusion_matrix_plot_matplotlib(y_truth,?y_predict,?cmap=plt.cm.Blues):

"""Matplotlib繪制混淆矩陣圖

parameters

----------

y_truth:?真實(shí)的y的值,?1d?array

y_predict:?預(yù)測(cè)的y的值,?1d?array

cmap:?畫混淆矩陣圖的配色風(fēng)格,?使用cm.Blues,更多風(fēng)格請(qǐng)參考官網(wǎng)

"""

cm?=?confusion_matrix(y_truth,?y_predict)

plt.matshow(cm,?cmap=cmap)??#?混淆矩陣圖

plt.colorbar()??#?顏色標(biāo)簽

for?x?in?range(len(cm)):??#?數(shù)據(jù)標(biāo)簽

for?y?in?range(len(cm)):

plt.annotate(cm[x,?y],?xy=(x,?y),?horizontalalignment='center',?verticalalignment='center')

plt.ylabel('True?label')??#?坐標(biāo)軸標(biāo)簽

plt.xlabel('Predicted?label')??#?坐標(biāo)軸標(biāo)簽

plt.show()??#?顯示作圖結(jié)果

if?__name__?==?'__main__':

y_truth?=?[1,?0,?1,?1,?1,?1,?1,?1,?1,?1,?0,?0,?0,?0,?0]

y_predict?=?[1,?0,?0,?1,?0,?1,?1,?1,?1,?1,?0,?1,?0,?1,?0]

confusion_matrix_plot_matplotlib(y_truth,?y_predict)


本文標(biāo)題:python中混淆函數(shù) python混淆矩陣
標(biāo)題鏈接:http://weahome.cn/article/hpiggd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部