主頁 > 區塊鏈 > 通過客戶流失預測案例感悟資料分析設計方法思考——資料驅動、AI驅動

通過客戶流失預測案例感悟資料分析設計方法思考——資料驅動、AI驅動

2021-02-03 11:30:39 區塊鏈

國際著名的咨詢公司Gartner在2013年總結出了一套資料分析的框架,資料分析的四個層次:描述性分析、診斷性分析、預測性分析、處方性分析,

Gartner于2020年中給出預測,到2024年底,75%的企業機構將從AI試點轉為AI運營,同期,Gartner發布了資料與分析領域的十大技術趨勢,首先映入眼簾的是:更智能、更高速、更負責的AI,也指出了儀表板的衰落,更青睞上層次和實用化的決策智能,

1. 前言

我們在設計資料分析產品和資料可視化的時候,依據是什么?怎樣設計資料分析產品才能給用戶更多的業務支撐?我們做趨勢預測、精準識別目的是什么?

最近,我有些感悟分享與讀者探討、研究,

對于設計資料分析產品和資料可視化,我們首先想到的是需求,然后是業務機理,但是,在大資料、新一代人工智能高速發展的今天,對比Gartner給出資料分析咨詢意見,我們不應拘泥于當前的業務場景,業務創新也可以通過新技術引領,

我們回到資料分析產品和資料可視化設計,除了需求和業務機理以外,我們不妨以金字塔思維模型來構建這樣的場景,

一、目的
我們的目的是實作經濟發展和利潤,解決未來或當下的問題,比如新零售業務核心是圍繞客戶展開,解決客戶發展和流速問題,是企業發展和利潤的基石,

二、分析需求和識別待解決問題
分析需求是深入業務機理,重塑業務模型,以發展的眼光識別問題,解決問題,仍以新零售客戶發展為例,客戶流失是難以解決的問題,要解決客戶流失問題,需要我們重塑客戶全生命周期管理模型,識別問題機理和影響因素,

三、以預設或假設結論先行
我們以需求和待解決問題為基準,經過理論聯系實際,設定解決問題目標,如果仍以客戶流失問題為基準,并按公司現狀和發展,我們設定客戶流失率控制目標是20%,挽回率為70%,預測準確度為80%等,

為此,我們先借鑒國際Kaggle大賽電信客戶流失題目為例,其資料為“WA_Fn-UseC_-Telco-Customer-Churn”,參照推演結論,

四、以上統下,逐層展開
我們有了結論目標,接著就是落地證明結論,分層分類展開,比如仍以客戶流失問題為例,先通觀全域,我們已經能做到預測客戶流失,預測客戶流失為26.54%,預測模型準確率達到80%,我們據此分類展開模型的影響因素分析,這也是資料分析、資料可視化內容,例如根據模型重要影響因素和相關性,給出個人特征、行為特征、服務特征三大類,

分層子觀點如下:
1、以動態規劃優化策略,通過優惠券方式降低流失客戶的客戶單價,實作減少流失客戶;
2、以客戶生命周期的時間序列預測客戶流失預警;
3、流失客戶的月消費金額(客單價)、在網時長等因素對客戶流失影響較大,

五、給出解決措施,逐層分解,體現資料分析更智能,

2. 電信客戶流失案例

2.1. 背景

電信行業關于用戶留存有這樣一個觀點[2],如果將用戶流失率降低5%,公司利潤將提升25%-85%,如今,高居不下的獲客成本讓電信運營商遭遇“天花板”,甚至陷入獲客難的窘境,隨著市場飽和度上升,電信運營商亟待解決增加用戶黏性,延長用戶生命周期的問題,因此,電信用戶流失分析與預測至關重要,因此做好“用戶流失預測分析”可以:

1、降低營銷成本,業界通用經驗,“新客戶開發成本”是“老客戶維護成本”的5倍,
2、獲得更好的用戶體驗,并不是所有的增值服務都可以有效留住客戶,
3、獲得更高的銷售回報,可以識別價格敏感型客戶和非價格敏感性客戶,

2.2. 客戶資料集及其流失預測分析

2.2.1. 資料集

欄位名稱說明資料解釋
customerID用戶ID
gender性別Female & Male
SeniorCitizen老年人1表示是,0表示不是
Partner是否有配偶Yes or No
Dependents是否經濟獨立Yes or No
tenure客戶已使用月份數0-72月,0為新開戶
PhoneService是否開通電話服務業務Yes or No
MultipleLines是否開通了多線業務Yes 、No or No phoneservice
InternetService是否開通互聯網服務No, DSL數字網路,fiber optic光纖網路
OnlineSecurity是否開通網路安全服務Yes,No,No internetserive
OnlineBackup是否開通在線備份業務Yes,No,No internetserive
DeviceProtection是否開通了設備保護業務Yes,No,No internetserive
TechSupport是否開通了技術支持服務Yes,No,No internetserive
StreamingTV是否開通網路電視Yes,No,No internetserive
StreamingMovies是否開通網路電影Yes,No,No internetserive
Contract簽訂合同方式按月,一年,兩年
PaperlessBilling是否開通電子賬單Yes or No
PaymentMethod付款方式bank transfer,credit card,electronic check,mailed check
MonthlyCharges月費用
TotalCharges總費用
Churn該用戶是否流失Yes or No

2.2.2. 資料預處理與特征提取

1、資料缺失處理

經過觀察,發現這11個用戶‘tenure’(入網時長)為0個月,推測是當月新入網用戶,根據一般經驗,用戶即使在注冊的當月流失,也需繳納當月費用,因此將這11個用戶入網時長改為1,將總消費額填充為月消費額,符合實際情況,

        #'TotalCharges'存在缺失值,強制轉換為數字,不可轉換的變為NaN
        self.CData['TotalCharges']=pd.to_numeric(self.CData['TotalCharges'], errors='coerce') #astype('float64')
        #將總消費額填充為月消費額
        self.CData['TotalCharges'] = self.CData[['TotalCharges']].apply(lambda x: x.fillna(self.CData['MonthlyCharges']),axis=0)
        #查看是否替換成功
        print(self.CData[self.CData['tenure']==0][['tenure','MonthlyCharges','TotalCharges']])

2、特征編碼與特征增維

觀察資料型別,除了“tenure”、“MonthlyCharges”、“TotalCharges”是連續特征外,其它都是離散特征,

  • 對于連續特征,采用標準化方式處理;
  • 對于離散特征,特征之間沒有大小關系,采用one-hot編碼;
  • 對于離散特征,特征之間有大小關聯,則采用數值映射,例如這的Yes與No,隱含有和無,既0與1的關系,

Pandas技術方案:

  • pd.get_dummies()就是把離散字符或者其他型別編碼變成一串數字向量(縱向轉為橫向的資料列),也就是所謂的one-hot編碼,資料增維,
  • pd.factorize()就是把離散字符或者其他型別編碼變成一列連續數字,通常轉變為0、1,或者,連續有一定意義的,
        Cols = [c for c in self.CData.columns if self.CData[c].dtype == 'object' or c == 'SeniorCitizen']
        Cols.remove('Churn')      
        # 對于離散特征,特征之間沒有大小關系,采用one-hot編碼;特征之間有大小關聯,則采用數值映射,
        for col in Cols:
            if self.CData[col].nunique() == 2:
                self.CData[col] = pd.factorize(self.CData[col])[0]
            else:
                self.CData = pd.get_dummies(self.CData, columns=[col])        
        
        self.CData['Churn']=self.CData['Churn'].map({'Yes':1,'No':0})

2.2.3. 影響流失特征重要程度排序

資料集原始特征為21個,在特征離散化及升維達到40個特征,通過隨機森林演算法擬合客戶流失,找出特征排序,實作代碼參考參考[3]詳細說明,
在這里插入圖片描述
對排序結果數值進行分析,獲得重要前六項特征,以及考慮可以舍棄的特征,例如:PhoneService、StreamingTV等,
在這里插入圖片描述

2.2.4. 與客戶流失相關特征分析

資料集原始特征為21個,在特征離散化及升維達到40個特征,通過皮爾森相關系數方法,找出能幫助理解特征和回應變數之間關系的方法,該方法衡量的是變數之間的線性相關性(詳細參加[3]說明),
在這里插入圖片描述
我們觀察關系系數接近于0的特征,有的和前面特征重要程度存在一定的穩合,例如PhoneService、StreamingTV,與流失關系系數接近0,
在這里插入圖片描述

2.2.5. 資料不平衡處理

由于預測識別客戶流失屬于二分類的問題,而且流失占比較少,形成分類樣本不平衡問題,針對資料不平衡問題,采用欠采樣的方式進行處理,使用機器學習庫中的SMOTE,

pip install imblearn

        #from imblearn.over_sampling import SMOTE
        self.x_train,self.x_test, self.y_train, self.y_test = train_test_split(X,Y,test_size=0.3)        
        #利用SMOTE創造新的資料集 ,#初始化SMOTE 模型
        oversampler=SMOTE(random_state=0)
        #使用SMOTE模型,創造新的資料集
        os_features,os_labels=oversampler.fit_sample(self.x_train,self.y_train)
        #切分新生成的資料集
        os_features_train, os_features_test, os_labels_train, os_labels_test = train_test_split(os_features, os_labels, test_size=0.2) 
        self.x_train,self.x_test, self.y_train, self.y_test = os_features_train, os_features_test, os_labels_train, os_labels_test
        '''
        #看看新構造的oversample資料集中0,1分布情況
        #常用pandas的value_counts確認資料出現的頻率
        os_count_classes = pd.value_counts(os_labels['Churn'], sort = True).sort_index()
        os_count_classes.plot(kind = 'bar')
        plt.title("Fraud class histogram")
        plt.xlabel("Class")
        plt.ylabel("Frequency")
        plt.show()
        '''

在這里插入圖片描述
經過SMOTE欠采樣處理后,樣本資料集均衡,

基于均衡處理后的資料集進行預測,預測結果準確率由80%提升到87%(未做優化引數),
在這里插入圖片描述

如果,使用原分離出來的30%樣本的做為測驗集,則模型預測準確率沒有得到明顯提升,為什么?

2.2.6. 結論

根據以上分析,我們可以大致得到高流失率用戶的特征:

  • 用戶屬性:老年,未婚、沒有依賴關系;
  • 服務屬性:開通光纖服務/光纖附加流媒體電視、電影服務;
  • 行為屬性:在網時長小于一年,簽訂的合同期限較短,采用電子支票支付,使用電子賬單,月消費金額約在70-110元之間;
  • 其它屬性對用戶流失影響較小,

2.3. 經驗總結

2.3.1. 特征分類層次化

總結預測客戶流失研究程序,我們將所有輸入原始特征分成了三個類別:客戶個人屬性、客戶行為屬性,客戶服務屬性,如下圖所示,分別對他們進行分析,
在這里插入圖片描述

2.3.2. 特征離散化

離散化后的特征對例外資料有更強的魯棒性,降低過擬合的風險,模型會更穩定,預測的效果也會更好,

例如“在網時長”特征,實際上的使用更多是表述時長的等級,我們參看如下資料分布直方圖,可以幾個級別,對比我們實際業務就是剛剛入網的客戶,多年的老客戶等等,
在這里插入圖片描述

2.3.3. 離散特征 one-hot編碼

我們經常遇到資料特征,是對某些特征進行歸類管理,例如下圖的“付款方式”,每種付款方式都是獨立的,以是、否方式表示,而且有可能存在多種付款方式,對于這樣的特征我們應該采用one-hot方式編碼,相當于給資料集升維,
在這里插入圖片描述
我們也經常遇到資料特征,是對數值資料使用的描述,而實際上是有數值大小意義的,例如圖中“合同期限”,按月描述就是:按月對應1(個月)、按一年對應12(個月)、按兩年對應24(個月),這樣更適合表述特征含義,

2.3.4. 特征與指標

我們通過程序中的輸出結果,逐步確立分析指標,設定參考標準,例如用戶在網時長,根據前面的資料分布圖,以及離散化策略,我們可以離散化出多個在網時長的區間,而且通常這樣的分析方法效果更好,也方便對標,

對于one-hot類編碼,往往是業務分類產生的,這也是產生指標的一個重要來源,而且可以根據重要程度而確立指標,

在這里插入圖片描述

3. 根據預測結論設計資料分析產品

著名的咨詢公司Gartner在2013年總結、提煉出了一套資料分析的框架,資料分析的四個層次:描述性分析、診斷性分析、預測性分析、處方性分析,

我們雖然憑經驗直接給出處方分析是很難實作的,但是我們可以先從預測結論倒敘推理,自頂向下,根據預測結論及預測分析程序輸出核心結果,形成以重要影響因素、經營管理考核指標(需求)、特征相關性為主的層次子結論,逐層分類展開資料分析產品設計,
在這里插入圖片描述
資料分析研發程序原則:

  • 資料驅動、AI驅動,產品設計利用資料和AI技術
  • 產品設計界定研發邊界
  • 研發邊界和深度依萊澩并受資源限制
  • 提供模型可解釋性
  • 研發程序遵循迭代回圈

接下來,我們仍以客戶流失為例,按上圖,根據“探索性分析”的結果和結論,展開“產品設計”程序,下圖是客戶全生命周期,其中客戶流失的拐點,流失預警期將是我們的重中之重,
在這里插入圖片描述

3.1. 預測結論及分析(頂層)

我們所設計預測,是想提前知道未發生的事和預期結果對比,預測結果仍以資料描述方式表達,如果繼續以客戶流失預測為例,需要表達的內容如下:

1、客戶流失率、流失數量、流失客戶明細,預測流失與同期、上期、管理指標對標分析,包括同期比、環比,
在這里插入圖片描述
客戶流失造成月收入減少30.5%,

        plt.rcParams['figure.figsize']= 12,6 #6,6
        plt.subplot(1,2,1)
        plt.pie(self.df['Churn'].value_counts(),labels=self.df['Churn'].value_counts().index,autopct='%1.2f%%',explode=(0.1,0))
        plt.title('Churn(Yes/No) Ratio')
        plt.subplot(1,2,2)
        dd = self.df[['MonthlyCharges','TotalCharges','Churn']].groupby(['Churn'], as_index=False).sum()
        plt.pie(dd['MonthlyCharges'],labels=dd['Churn'],autopct='%1.2f%%',explode=(0.1,0))
        plt.title('Churn(Yes/No) MonthlyCharges')        
        plt.show()

2、流失客戶帶來的影響,流失客戶所引起減少的(月)收入,需要打新多少新用戶彌補及實作概率,

3、影響客戶流失重要因素、相關因素,并給出優化措施建議,

我們依據客戶流失集各個特征的重要程度,重點分析消費金額和在網時長,其實這些和我們實際經驗比較接近,大多數客戶最關心的就是錢,對價格比較敏感,

所以,我們的產品設計上,將傾向分析客戶價格敏感情況,建立客戶價格敏感畫像,以及相關支撐服務,
在這里插入圖片描述

3.2. 分析重要影響因素

我們依舊預測程序中重要因素、相關因素等輸出,深入分析這些因素(為了簡便說明,此處只是使用了XGBoost演算法預測),例如:
在這里插入圖片描述
如上圖所示,位列三甲重要特征為月度消費金額、總消費金額、在網時長,與我們經驗認知一致,流失很大原因就是差錢!

1、分類對比流失客戶與未流失客戶的月消費金額(客單價),分類對比流失客戶與未流失客戶的在網時長,

在這里插入圖片描述

    def kdeAnalysis(self):
        plt.rcParams['font.sans-serif']=['SimHei'] #顯示中文標簽
        plt.rcParams['axes.unicode_minus']=False 
        plt.figure(figsize=(18, 5))
        plt.subplot(1,3,1)
        kdeplot('MonthlyCharges','月度消費',self.df,'Churn')
        plt.subplot(1,3,2)
        kdeplot('TotalCharges','總消費額',self.df,'Churn')
        plt.subplot(1,3,3)
        kdeplot('tenure','在網時長',self.df,'Churn')
        plt.show()     
        
# Kernel density estimaton核密度估計
def kdeplot(feature,xlabel,data,tag='Churn'): 
    plt.title("KDE for {0}".format(feature))
    plt.yticks(fontsize=8)
    plt.xticks(fontsize=8)
    
    sns.set(font='SimHei') #, font_scale=0.8)        # 解決Seaborn中文顯示問題
    sns.set_style({'font.sans-serif':['simhei', 'Arial']}) 
    ax0 = sns.kdeplot(data[data['Churn'] == 'No'][feature],  label= '未流失', shade='True',legend=True)
    ax1 = sns.kdeplot(data[data['Churn'] == 'Yes'][feature], label= '流失',shade='True',legend=True)
    plt.xlabel(xlabel)
    plt.rcParams.update({'font.size': 10})
    plt.legend(fontsize=10)

2、分析月消費金額、在網時長等重要特征的相關因素

在給定電信客戶流失資料集中,各個特征獨立性較強,如下圖所示,沒有必要深入分析其他特征的相關性,
在這里插入圖片描述
3、選擇影響重要因素分析

如下圖所示,只分析重要影響因素,而對于類似“PhoneService”特征,影響靠后的可以略去,不予以分析,
在這里插入圖片描述

    def serviceAnalysis(self):
        plt.rcParams['font.sans-serif']=['SimHei'] #顯示中文標簽
        plt.rcParams['axes.unicode_minus']=False     
        sns.set(font='SimHei') #, font_scale=0.8)        # 解決Seaborn中文顯示問題
        sns.set_style({'font.sans-serif':['simhei', 'Arial']}) 
        self.df['churn_rate'] = self.df['Churn'].replace("No", 0).replace("Yes", 1)
        items=['OnlineSecurity','OnlineBackup','DeviceProtection','TechSupport','InternetService', 'StreamingMovies']
        items_name=['安全服務','備份業務','保護業務','技術支持','互聯網服務','網路電影']
        def get_order(items_index):
            if items_index == 4:
                return ['DSL','Fiber optic','No']
            else:
                return ['Yes','No','No internet service']
        fig,axes=plt.subplots(nrows=2,ncols=3,figsize=(8,12))
        for i,item in enumerate(items):
            plt.subplot(2,3,(i+1))
            ax=sns.barplot(x=item,y='churn_rate',data=self.df,order=get_order(i))
            plt.rcParams.update({'font.size': 12})
            plt.xlabel(str(items_name[i]))
            plt.title(str(items_name[i])+'流失情況')
            i+=1        
        plt.show()    

3.2. 確立分析指標

如何確立分析指標呢?一般情況下,我們從兩個方面考慮:一是業務原理和需求所規定的,屬于剛需,也可能不合理,我們可以試探打破;二是資料驅動、AI驅動所邏輯推理給出的,

3.2.1. 基于業務機理提煉指標

例如客戶指標:

  • 客單價:銷售額/客戶數,反映客戶的質量、消費水平,
  • 件單價:銷售額/銷售量,反映客戶的購買商品的平均單價;
  • 客單件:銷售量/客戶數,反映客戶的購買力,購買多少商品的數量;
  • 連帶率:銷售量/成交單量,也叫作購物籃系數,連帶率和人、場有關,
  • 新增會員數:新增會員數=期末會員數-期扯訓員總數
  • 會員增長率:會員增長率=某短時間新增會員數/期初有效會員數
  • 會員貢獻率:會員貢獻率=會員銷售總額/總銷售額
  • 有效會員占比: 有效會員占比=有效會員總數/累計會員總數
  • 會員流失率:會員流失率=某段時間內流失的會員數/期初有效會員總數
  • 會員活躍度: 會員活躍度=活躍會員數量/會員總量
  • 平均購買次數:平均購買次數=某個時間段內訂單總數/會員總數
  • 會員平均年齡: 會員平均年齡=某個時間段店內會員年齡總和/有效會員總數

3.2.2. 資料驅動、AI驅動邏輯給出

1、資料增維,產生新的特征,例如新增“月平均消費”,月平均消費=總消費/在網時長,如下圖所示,屬于重要特征,我們可以建議設定為分析指標,
在這里插入圖片描述
2、聚類,例如對流失客群分類,其實我們也不知道怎么分,那么可以先試探聚類演算法看結果,初步來看是和平均消費額大小關系更為密切,
在這里插入圖片描述

    def clusteringAnalysis(self):
        data = self.df[self.df['Churn']==1].reset_index(drop=True)#重設索引
        samples = data[['MonthlyCharges','TotalCharges','AverageChargs','tenure','Contract']]  
        #標準化
        scaler=StandardScaler()
        kmeans=MiniBatchKMeans(n_clusters=3,random_state=9,max_iter=100)
        pipeline=make_pipeline(scaler,kmeans)
        pipeline.fit(samples) #訓練模型
        labels=pipeline.predict(samples)#預測 
        samples['labels'] = labels #合并資料集

強化學習構建聚類指標,通過獎勵大,最終建立一個Q值表?

3、對現有特征資料項轉化,例如one-hot編碼所轉換出來的,在預測模型中表現比較重要的離散資料項,也可能升格為分析指標,

3.3. 可視化

資料可視化,正如本文開始所說的,和資料分析的四個層次密切相關,資料可視化可以分為描述性分析、診斷性分析、預測性分析、處方性分析,

我們通常我看到的圖表,主要是通俗化數學統計范疇的內容,大多數人都能看懂,其實,我們還需要專業化圖表,為專業化服務,

4. 總結

通過客戶流失預測案例感悟資料分析設計方法,正如Gartner于2020年給出資料分析領域的技術趨勢,更智能、更高速、更負責的AI,凸顯新技術引領業務,以站在高緯度上的預測結果為頂層設計,倒逼資料診斷分析、描述性分析,使業務資料分析線條更清晰,目的更明確,

對于資料分析作業崗位,其實可以分為兩種:一種類似產品經理、一種偏向資料挖掘,類似產品經理向更加注重業務,對業務能力要求比較高;資料挖掘向更加注重技術,對演算法代碼能力要求比較高,

由于作者水平有限,歡迎交流討論,

本文涉及代碼詳見:https://github.com/xiaoyw71/Feature-engineering-machine-learning

參考:

[1].《電信用戶流失分析與預測》 知乎 ,南橋那人 ,2019年6月
[2].《Telco Customer Churn》 CSDN博客 , qqissweat ,2021年1月
[3].《大資料人工智能常用特征工程與資料預處理Python實踐(2)》 CSDN博客 ,肖永威,2020年12月
[4].《oversample 過采樣方法 SMOTE ——欠采樣(undersampling)和過采樣(oversampling)會對模型帶來怎樣的影響》 CSDN博客, Arthur-Ji ,2019年8月
[5].《資料分析的四個層次》 人人都是產品經理 , 大鵬 ,2020年7月
[6].《Gartner發布2020年資料與分析領域的十大技術趨勢》 Gartner ,Laurence Goasduff ,2020.06
[7].《最全的零售行業指標體系詳解!》 知乎 ,李啟方 ,2020年10月

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/255946.html

標籤:區塊鏈

上一篇:參加Chainlink中國開發者社區ETHDenver #BUIDLathon專案提交,贏取Chainlink專案提交獎勵!

下一篇:國學修行者翟山鷹的區塊鏈「連環計」

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • JAVA使用 web3j 進行token轉賬

    最近新學習了下區塊鏈這方面的知識,所學不多,給大家分享下。 # 1. 關于web3j web3j是一個高度模塊化,反應性,型別安全的Java和Android庫,用于與智能合約配合并與以太坊網路上的客戶端(節點)集成。 # 2. 準備作業 jdk版本1.8 引入maven <dependency> < ......

    uj5u.com 2020-09-10 03:03:06 more
  • 以太坊智能合約開發框架Truffle

    前言 部署智能合約有多種方式,命令列的瀏覽器的渠道都有,但往往跟我們程式員的風格不太相符,因為我們習慣了在IDE里寫了代碼然后打包運行看效果。 雖然現在IDE中已經存在了Solidity插件,可以撰寫智能合約,但是部署智能合約卻要另走他路,沒辦法進行一個快捷的部署與測驗。 如果團隊管理的區塊節點多、 ......

    uj5u.com 2020-09-10 03:03:12 more
  • 谷歌二次驗證碼成為區塊鏈專用安全碼,你怎么看?

    前言 谷歌身份驗證器,前些年大家都比較陌生,但隨著國內互聯網安全的加強,它越來越多地出現在大家的視野中。 比較廣泛接觸的人群是國際3A游戲愛好者,游戲盜號現象嚴重+國外賬號安全應用廣泛,這類游戲一般都會要求用戶系結名為“兩步驗證”、“雙重驗證”等,平臺一般都推薦用谷歌身份驗證器。 后來區塊鏈業務風靡 ......

    uj5u.com 2020-09-10 03:03:17 more
  • 密碼學DAY1

    目錄 ##1.1 密碼學基本概念 密碼在我們的生活中有著重要的作用,那么密碼究竟來自何方,為何會產生呢? 密碼學是網路安全、資訊安全、區塊鏈等產品的基礎,常見的非對稱加密、對稱加密、散列函式等,都屬于密碼學范疇。 密碼學有數千年的歷史,從最開始的替換法到如今的非對稱加密演算法,經歷了古典密碼學,近代密 ......

    uj5u.com 2020-09-10 03:03:50 more
  • 密碼學DAY1_02

    目錄 ##1.1 ASCII編碼 ASCII(American Standard Code for Information Interchange,美國資訊交換標準代碼)是基于拉丁字母的一套電腦編碼系統,主要用于顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,并等同于國際標準ISO/IE ......

    uj5u.com 2020-09-10 03:04:50 more
  • 密碼學DAY2

    ##1.1 加密模式 加密模式:https://docs.oracle.com/javase/8/docs/api/javax/crypto/Cipher.html ECB ECB : Electronic codebook, 電子密碼本. 需要加密的訊息按照塊密碼的塊大小被分為數個塊,并對每個塊進 ......

    uj5u.com 2020-09-10 03:05:42 more
  • NTP時鐘服務器的特點(京準電子)

    NTP時鐘服務器的特點(京準電子) NTP時鐘服務器的特點(京準電子) 京準電子官V——ahjzsz 首先對時間同步進行了背景介紹,然后討論了不同的時間同步網路技術,最后指出了建立全球或區域時間同步網存在的問題。 一、概 述 在通信領域,“同步”概念是指頻率的同步,即網路各個節點的時鐘頻率和相位同步 ......

    uj5u.com 2020-09-10 03:05:47 more
  • 標準化考場時鐘同步系統推進智能化校園建設

    標準化考場時鐘同步系統推進智能化校園建設 標準化考場時鐘同步系統推進智能化校園建設 安徽京準電子科技官微——ahjzsz 一、背景概述隨著教育事業的快速發展,學校建設如雨后春筍,隨之而來的學校教育、管理、安全方面的問題成了學校管理人員面臨的最大的挑戰,這些問題同時也是學生家長所擔心的。為了讓學生有更 ......

    uj5u.com 2020-09-10 03:05:51 more
  • 位元幣入門

    引言 位元幣基本結構 位元幣基礎知識 1)哈希演算法 2)非對稱加密技術 3)數字簽名 4)MerkleTree 5)哪有位元幣,有的是UTXO 6)位元幣挖礦與共識 7)區塊驗證(共識) 總結 引言 上一篇我們已經知道了什么是區塊鏈,此篇說一下區塊鏈的第一個應用——位元幣。其實先有位元幣,后有的區塊 ......

    uj5u.com 2020-09-10 03:06:15 more
  • 北斗對時服務器(北斗對時設備)電力系統應用

    北斗對時服務器(北斗對時設備)電力系統應用 北斗對時服務器(北斗對時設備)電力系統應用 京準電子科技官微(ahjzsz) 中國北斗衛星導航系統(英文名稱:BeiDou Navigation Satellite System,簡稱BDS),因為是目前世界范圍內唯一可以大面積提供免費定位服務的系統,所以 ......

    uj5u.com 2020-09-10 03:06:20 more
最新发布
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:46:47 more
  • Hyperledger Fabric 使用 CouchDB 和復雜智能合約開發

    在上個實驗中,我們已經實作了簡單智能合約實作及客戶端開發,但該實驗中智能合約只有基礎的增刪改查功能,且其中的資料管理功能與傳統 MySQL 比相差甚遠。本文將在前面實驗的基礎上,將 Hyperledger Fabric 的默認資料庫支持 LevelDB 改為 CouchDB 模式,以實作更復雜的資料... ......

    uj5u.com 2023-04-16 07:28:31 more
  • .NET Core 波場鏈離線簽名、廣播交易(發送 TRX和USDT)筆記

    Get Started NuGet You can run the following command to install the Tron.Wallet.Net in your project. PM> Install-Package Tron.Wallet.Net 配置 public reco ......

    uj5u.com 2023-04-14 08:08:00 more
  • DKP 黑客分析——不正確的代幣對比率計算

    概述: 2023 年 2 月 8 日,針對 DKP 協議的閃電貸攻擊導致該協議的用戶損失了 8 萬美元,因為 execute() 函式取決于 USDT-DKP 對中兩種代幣的余額比率。 智能合約黑客概述: 攻擊者的交易:0x0c850f,0x2d31 攻擊者地址:0xF38 利用合同:0xf34ad ......

    uj5u.com 2023-04-07 07:46:09 more
  • Defi開發簡介

    Defi開發簡介 介紹 Defi是去中心化金融的縮寫, 是一項旨在利用區塊鏈技術和智能合約創建更加開放,可訪問和透明的金融體系的運動. 這與傳統金融形成鮮明對比,傳統金融通常由少數大型銀行和金融機構控制 在Defi的世界里,用戶可以直接從他們的電腦或移動設備上訪問廣泛的金融服務,而不需要像銀行或者信 ......

    uj5u.com 2023-04-05 08:01:34 more
  • solidity簡單的ERC20代幣實作

    // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; import "hardhat/console.sol"; //ERC20 同質化代幣,每個代幣的本質或性質都是相同 //ETH 是原生代幣,它不是ERC20代幣, ......

    uj5u.com 2023-03-21 07:56:29 more
  • solidity 參考型別修飾符memory、calldata與storage 常量修飾符C

    在solidity語言中 參考型別修飾符(參考型別為存盤空間不固定的數值型別) memory、calldata與storage,它們只能修飾參考型別變數,比如字串、陣列、位元組等... memory 適用于方法傳參、返參或在方法體內使用,使用完就會清除掉,釋放記憶體 calldata 僅適用于方法傳參 ......

    uj5u.com 2023-03-08 07:57:54 more
  • solidity注解標簽

    在solidity語言中 注釋符為// 注解符為/* 內容*/ 或者 是 ///內容 注解中含有這幾個標簽給予我們使用 @title 一個應該描述合約/介面的標題 contract, library, interface @author 作者的名字 contract, library, interf ......

    uj5u.com 2023-03-08 07:57:49 more
  • 評價指標:相似度、GAS消耗

    【代碼注釋自動生成方法綜述】 這些評測指標主要來自機器翻譯和文本總結等研究領域,可以評估候選文本(即基于代碼注釋自動方法而生成)和參考文本(即基于手工方式而生成)的相似度. BLEU指標^[^?88^^?^]^:其全稱是bilingual evaluation understudy.該指標是最早用于 ......

    uj5u.com 2023-02-23 07:27:39 more
  • 基于NOSTR協議的“公有制”版本的Twitter,去中心化社交軟體Damus

    最近,一個幽靈,Web3的幽靈,在網路游蕩,它叫Damus,這玩意詮釋了什么叫做病毒式營銷,滑稽的是,一個Web3產品卻在Web2的產品鏈上瘋狂傳銷,各方大佬紛紛為其背書,到底發生了什么?Damus的葫蘆里,賣的是什么藥? 注冊和簡單實用 很少有什么產品在用戶注冊環節會有什么噱頭,但Damus確實出 ......

    uj5u.com 2023-02-05 06:48:39 more