模型預測筆記(一):數據清洗及可視化、模型搭建、模型訓練和預測代碼一體化和對應結果展示(可作為baseline)

模型預測

  • 一、導入關鍵包
  • 二、如何載入、分析和保存文件
  • 三、修改缺失值
    • 3.1 眾數
    • 3.2 平均值
    • 3.3 中位數
    • 3.4 0填充
  • 四、修改異常值
    • 4.1 刪除
    • 4.2 替換
  • 五、數據繪圖分析
    • 5.1 餅狀圖
      • 5.1.1 繪制某一特征的數值情況(二分類)
    • 5.2 柱狀圖
      • 5.2.1 單特征與目標特征之間的圖像
      • 5.2.2 多特征與目標特征之間的圖像
    • 5.3 折線圖
      • 5.3.1 多個特征之間的關系圖
    • 5.4 散點圖
  • 六、相關性分析
    • 6.1 皮爾遜相關系數
    • 6.2 斯皮爾曼相關系數
    • 6.3 肯德爾相關系數
    • 6.4 計算熱力圖
  • 七、數據歸一化
  • 八、模型搭建
  • 九、模型訓練
  • 十、評估模型
  • 十一、預測模型

一、導入關鍵包

# 導入數據分析需要的包
import pandas as pd
import numpy as np
# 可視化包
import seaborn as sns
sns.set(style="whitegrid")
import matplotlib.pyplot as plt
%matplotlib inline
# 忽略警告信息
import warnings
warnings.filterwarnings('ignore')
# 導入數據分析需要的包
import pandas as pd
import numpy as np
from datetime import datetime# 構建多個分類器
from sklearn.ensemble import RandomForestClassifier          # 隨機森林
from sklearn.svm import SVC, LinearSVC                       # 支持向量機
from sklearn.linear_model import LogisticRegression          # 邏輯回歸
from sklearn.neighbors import KNeighborsClassifier           # KNN算法
from sklearn.naive_bayes import GaussianNB                   # 樸素貝葉斯
from sklearn.tree import DecisionTreeClassifier              # 決策樹分類器
from xgboost import XGBClassifier
from sklearn.ensemble import AdaBoostClassifier
from sklearn.ensemble import GradientBoostingClassifier   
from sklearn.metrics import precision_score, recall_score, f1_score
from sklearn.metrics import confusion_matrix
from sklearn.model_selection import GridSearchCV  # 網格搜索
np.set_printoptions(suppress=True)# 顯示中文
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False

二、如何載入、分析和保存文件

df=pd.read_csv('data/dataset.csv')df.head(5)# 查看前幾列數據
df.tail() # 返回CSV文件的最后幾行數據。
df.info() # 顯示CSV文件的基本信息,包括數據類型、列數、行數、缺失值等。
df.describe()# 對CSV文件的數值型數據進行統計描述,包括計數、均值、標準差、最小值、最大值等。
df.shape()# 返回CSV文件的行數和列數。
df.unique()  # 返回CSV文件中某一列的唯一值。
df.value_counts()# 計算CSV文件中某一列中每個值的出現次數。
df.groupby() # 按照某一列的值進行分組,并對其他列進行聚合操作,如求和、計數、平均值等。
df.sort_values()# 按照某一列的值進行排序。
df.pivot_table()# 創建透視表,根據指定的行和列對數據進行匯總和分析。# 保存處理后的數據集
3df.to_csv('data/Telecom_data_flag.csv')

三、修改缺失值

3.1 眾數

# 對每一列屬性采用相應的缺失值處理方式,通過分析發現這類數據都可以采用眾數的方式解決
df.isnull().sum()
modes = df.mode().iloc[0]
print(modes)
df = df.fillna(modes)
print(df.isnull().sum())

3.2 平均值

mean_values = df.mean()
print(mean_values)
df = df.fillna(mean_values)
print(df.isnull().sum())

3.3 中位數

median_values = df.median()
print(median_values)
df = df.fillna(median_values)
print(df.isnull().sum())

3.4 0填充

df = df.fillna(0)
print(df.isnull().sum())

四、修改異常值

4.1 刪除

1.刪除DataFrame表中全部為NaN的行

	your_dataframe.dropna(axis=0,how='all') 

2.刪除DataFrame表中全部為NaN的列

	your_dataframe.dropna(axis=1,how='all') 

3.刪除表中含有任何NaN的行

	your_dataframe.dropna(axis=0,how='any') 

4.刪除表中含有任何NaN的列

  your_dataframe.dropna(axis=1,how='any')

4.2 替換

這里的替換可以參考前文的中位數,平均值,眾數,0替換等。

	replace_value = 0.0# 這里設置 inplace 為 True,能夠直接把表中的 NaN 值替換掉your_dataframe.fillna(replace_value, inplace=True)# 如果不設置 inplace,則這樣寫就行# new_dataframe = your_dataframe.fillna(replace_value)

五、數據繪圖分析

5.1 餅狀圖

5.1.1 繪制某一特征的數值情況(二分類)

# 查看總體客戶流失情況
churnvalue = df["LEAVE_FLAG"].value_counts()
labels = df["LEAVE_FLAG"].value_counts().index
plt.pie(churnvalue,labels=["未流失","流失"],explode=(0.1,0),autopct='%.2f%%', shadow=True,)
plt.title("客戶流失率比例",size=24)
plt.show()
# 從餅形圖中看出,流失客戶占總客戶數的很小的比例,流失率達3.58%

在這里插入圖片描述

5.2 柱狀圖

5.2.1 單特征與目標特征之間的圖像

# 粘性/忠誠度分析  包括綁定銀行卡張數
fig, axes = plt.subplots(1, 1, figsize=(12,12))
plt.subplot(1,1,1) 
# palette參數表示設置顏色
gender=sns.countplot(x='BANK_NUM',hue="LEAVE_FLAG",data=df,palette="Pastel2") 
plt.xlabel("綁定銀行卡張數",fontsize=16)
plt.title("LEAVE_FLAG by BANK_NUM",fontsize=18)
plt.ylabel('count',fontsize=16)
plt.tick_params(labelsize=12)     # 設置坐標軸字體大小
# 從此表可知,對于沒有綁定銀行卡的用戶流失情況會更大,應該加強督促用戶綁定銀行卡

在這里插入圖片描述

# 查看正常用戶與流失用戶在上網流量上的差別
plt.figure(figsize=(10,6))
g = sns.FacetGrid(data = df,hue = 'LEAVE_FLAG', height=4, aspect=3)
g.map(sns.distplot,'BYTE_ALL',norm_hist=True)
g.add_legend()
plt.ylabel('density',fontsize=16)
plt.xlabel('BYTE_ALL',fontsize=16)
plt.xlim(0, 100)
plt.tick_params(labelsize=13)     # 設置坐標軸字體大小
plt.tight_layout()
plt.show()
# 從上圖看出,上網流量少的用戶流失率相對較高。

在這里插入圖片描述

5.2.2 多特征與目標特征之間的圖像

這里繪制的多個二分類特征的情況是與目標特征之間的關系

# 粘性/忠誠度分析  包括是否捆綁微信、是否捆綁支付寶
# sns.countplot()函數繪制了"是否使用支付寶"(IS_ZFB)這一列的柱狀圖,并根據"LEAVE_FLAG"(是否離網)進行了顏色分類。
fig, axes = plt.subplots(1, 2, figsize=(12,12))
plt.subplot(1,2,1) 
# palette參數表示設置顏色
partner=sns.countplot(x="IS_ZFB",hue="LEAVE_FLAG",data=df,palette="Pastel2")
plt.xlabel("是否使用支付寶(1代表使用,0代表使用)")
plt.title("LEAVE_FLAG by IS_ZFB",fontsize=18)
plt.ylabel('count',fontsize=16)
plt.tick_params(labelsize=12)   # 設置坐標軸字體大小plt.subplot(1,2,2)
seniorcitizen=sns.countplot(x="IS_WX",hue="LEAVE_FLAG",data=df,palette="Pastel2")
plt.xlabel("是否使用微信(1代表使用,0代表使用)")
plt.title("LEAVE_FLAG by IS_WX",fontsize=18)
plt.ylabel('count',fontsize=16)
plt.tick_params(labelsize=12)   # 設置坐標軸字體大小
# 從此表可知  支付寶綁定目前對于用戶流失沒有影響,微信的綁定影響會稍微大點,可能是微信用戶用的較多

在這里插入圖片描述

# 異常性 根據用戶流失情況來結合判定
covariables=["CMPLNT_NUM", "STOP_COUNT"]
fig,axes=plt.subplots(1,2,figsize=(20,12))
for i, item in enumerate(covariables):'''0,'CMPLNT_NUM'1,'STOP_COUNT''''plt.subplot(1,2,(i+1))ax=sns.countplot(x=item,hue="LEAVE_FLAG",data=df,palette="Set2")plt.xlabel(str(item),fontsize=16)plt.tick_params(labelsize=14)     # 設置坐標軸字體大小plt.title("LEAVE_FLAG by "+ str(item),fontsize=20)i=i+1
plt.tight_layout()
plt.show()
# 從此表可知 最近6個月累計投訴次數間接性的決定了用戶的流失,停機天數也和用戶流失成正相關。

在這里插入圖片描述

5.3 折線圖

5.3.1 多個特征之間的關系圖

# 用戶的成長性分析,結合用戶流失情況。
# 包括流量趨勢、語音通話次數趨勢、語音通話時長趨勢、交往圈趨勢
# 提取特征數據列
feature1 = df["LIULIANG_B"]
feature2 = df["YUYING_COUNT"]
feature3 = df["YUYING_B"]
feature4 = df["JIAOWANG_B"]# 繪制折線圖
plt.plot(feature1, label="LIULIANG_B")
plt.plot(feature2, label="YUYING_COUNT")
plt.plot(feature3, label="YUYING_B")
plt.plot(feature4, label="JIAOWANG_B")# 添加標題和標簽
plt.title("Trend of User growth")
plt.xlabel("Index")
plt.ylabel("Value")# 添加圖例
plt.legend()# 顯示圖表
plt.show()
# 從此圖可以發現針對流量趨勢來說,用戶的波動是最大的。

在這里插入圖片描述

5.4 散點圖

df.plot(x="SERV_ID_COUNT", y="CDR_NUM", kind="scatter", c="red")
plt.show()

這段代碼的作用是繪制一個以"SERV_ID_COUNT"為橫軸,"CDR_NUM"為縱軸的散點圖,并將散點的顏色設置為紅色。通過這個散點圖,可以直觀地觀察到"SERV_ID_COUNT"和"CDR_NUM"之間的關系。
在這里插入圖片描述

六、相關性分析

6.1 皮爾遜相關系數

plt.figure(figsize=(16,8))
df.corr()['LEAVE_FLAG'].sort_values(ascending = False).plot(kind='bar')
plt.tick_params(labelsize=14)     # 設置坐標軸字體大小
plt.xticks(rotation=45)         # 設置x軸文字轉向
plt.title("Correlations between LEAVE_FLAG and variables",fontsize=20)
plt.show()
# 從圖可以直觀看出,YUYING_COUNT 、YUYING_B、IS_ZFB、BALANCE、JIAOWANG_B、IS_WX這六個變量與LEAVE_FLAG目標變量相關性最弱。

在這里插入圖片描述

6.2 斯皮爾曼相關系數

plt.figure(figsize=(16,8))
df.corr(method='spearman')['LEAVE_FLAG'].sort_values(ascending = False).plot(kind='bar')
plt.tick_params(labelsize=14)     # 設置坐標軸字體大小
plt.xticks(rotation=45)         # 設置x軸文字轉向
plt.title("Correlations between LEAVE_FLAG and variables",fontsize=20)
plt.show()

6.3 肯德爾相關系數

plt.figure(figsize=(16,8))
df.corr(method='kendall')['LEAVE_FLAG'].sort_values(ascending = False).plot(kind='bar')
plt.tick_params(labelsize=14)     # 設置坐標軸字體大小
plt.xticks(rotation=45)         # 設置x軸文字轉向
plt.title("Correlations between LEAVE_FLAG and variables",fontsize=20)
plt.show()

6.4 計算熱力圖

# 計算相關性矩陣
corr_matrix = df.corr()# 繪制熱力圖
plt.figure(figsize=(10, 8))
sns.heatmap(corr_matrix, annot=True, cmap="coolwarm")
plt.title("Correlation Heatmap", fontsize=16)
plt.show()

七、數據歸一化

特征主要分為連續特征和離散特征,其中離散特征根據特征之間是否有大小關系又細分為兩類。

  • 連續特征:一般采用歸一標準化方式處理。
  • 離散特征:特征之間沒有大小關系。
  • 離散特征:特征之間有大小關聯,則采用數值映射。
# 通過歸一化處理使特征數據標準為1,均值為0,符合標準的正態分布,
# 降低數值特征過大對預測結果的影響
# 除了目標特征全部做歸一化,目標特征不用做,歸一化會導致預測結果的解釋變得困難
from sklearn.preprocessing import StandardScaler  
# 實例化一個轉換器類
scaler = StandardScaler(copy=False)
target = df["LEAVE_FLAG"]
# 提取除目標特征外的其他特征
other_features = df.drop("LEAVE_FLAG", axis=1)
# 對其他特征進行歸一化
normalized_features = scaler.fit_transform(other_features)
# 將歸一化后的特征和目標特征重新組合成DataFrame
normalized_data = pd.DataFrame(normalized_features, columns=other_features.columns)
normalized_data["LEAVE_FLAG"] = target
normalized_data.head()

八、模型搭建

# 深拷貝
X=normalized_data.copy()
X.drop(['LEAVE_FLAG'],axis=1, inplace=True)
y=df["LEAVE_FLAG"]
#查看預處理后的數據
X.head()# 建立訓練數據集和測試數據集
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size = 0.3, random_state = 0)
print("原始訓練集包含樣本數量: ", len(X_train))
print("原始測試集包含樣本數量:  ", len(X_test))
print("原始樣本總數: ", len(X_train)+len(X_test))# 使用分類算法 
Classifiers=[["RandomForest",RandomForestClassifier()],["LogisticRegression",LogisticRegression(C=1000.0, random_state=30, solver="lbfgs",max_iter=100000)],["NaiveBayes",GaussianNB()],["DecisionTree",DecisionTreeClassifier()],["AdaBoostClassifier", AdaBoostClassifier()],["GradientBoostingClassifier", GradientBoostingClassifier()],["XGB", XGBClassifier()]
]

九、模型訓練

from datetime import datetime
import pickle
import joblibdef get_current_time():current_time = datetime.now()formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")return current_time, formatted_timeClassify_result=[]
names=[]
prediction=[]
i = 0for name, classifier in Classifiers:start_time, formatted_time = get_current_time()print("**********************************************************************")print("第{}個模型訓練開始時間:{}  模型名稱為:{}".format(i+1, formatted_time, name))classifier = classifierclassifier.fit(X_train, y_train)y_pred = classifier.predict(X_test)recall = recall_score(y_test, y_pred)precision = precision_score(y_test, y_pred)f1score = f1_score(y_test, y_pred)model_path = 'models/{}_{}_model.pkl'.format(name, round(precision, 5))print("開始保存模型文件路徑為:{}".format(model_path))# 保存模型方式1#     with open('models/{}_{}_model.pkl'.format(name, precision), 'wb') as file:#         pickle.dump(classifier, file)#     file.close()# 保存模型方式2joblib.dump(classifier, model_path)end_time = datetime.now()  # 獲取訓練結束時間print("第{}個模型訓練結束時間:{}".format(i+1, end_time.strftime("%Y-%m-%d %H:%M:%S")))print("訓練耗時:", end_time - start_time)# 打印訓練過程中的指標print("Classifier:", name)print("Recall:", recall)print("Precision:", precision)print("F1 Score:", f1score)print("**********************************************************************")# 保存指標結果class_eva = pd.DataFrame([recall, precision, f1score])Classify_result.append(class_eva)name = pd.Series(name)names.append(name)y_pred = pd.Series(y_pred)prediction.append(y_pred)i += 1

在這里插入圖片描述

十、評估模型

召回率(recall)的含義是:原本為對的當中,預測為對的比例(值越大越好,1為理想狀態)

精確率、精度(precision)的含義是:預測為對的當中,原本為對的比例(值越大越好,1為理想狀態)

F1分數(F1-Score)指標綜合了Precision與Recall的產出的結果

F1-Score的取值范圍從0到1的,1代表模型的輸出最好,0代表模型的輸出結果最差。

classifier_names=pd.DataFrame(names)
# 轉成列表
classifier_names=classifier_names[0].tolist()
result=pd.concat(Classify_result,axis=1)
result.columns=classifier_names
result.index=["recall","precision","f1score"]
result

在這里插入圖片描述

十一、預測模型

對于h5模型

from keras.models import load_model
model = load_model('lstm_model.h5')
pred = model.predict(X, verbose=0)
print(pred)

對于pkl模型

loaded_model = joblib.load('models/{}_model.pkl'.format(name))

由于沒有預測數據集,選擇最后n條數為例進行預測。

# 由于沒有預測數據集,選擇最后n條數為例進行預測。
n = 500
pred_id = SERV_ID.tail(n)
# 提取預測數據集特征(如果有預測數據集,可以一并進行數據清洗和特征提取)
pred_x = X.tail(n)# 使用上述得到的最優模型
model = GradientBoostingClassifier()model.fit(X_train,y_train)
pred_y = model.predict(pred_x) # 預測值# 預測結果
predDf = pd.DataFrame({'SERV_ID':pred_id, 'LEAVE_FLAG':pred_y})
print("*********************原始的標簽情況*********************")
print(df.tail(n)['LEAVE_FLAG'].value_counts())
print("*********************預測的標簽情況*********************")
print(predDf['LEAVE_FLAG'].value_counts())
print("*********************預測的準確率*********************")
min1 = min(df.tail(n)['LEAVE_FLAG'].value_counts()[0],predDf['LEAVE_FLAG'].value_counts()[0])
min2 = min(df.tail(n)['LEAVE_FLAG'].value_counts()[1],predDf['LEAVE_FLAG'].value_counts()[1])
print("{}%".format(round((min1+min2)/n,3)*100))
# 由于沒有預測數據集,選擇最后n條數為例進行預測。
n = 500 # 預測的數量
pred_id = SERV_ID.tail(n)
# 提取預測數據集特征(如果有預測數據集,可以一并進行數據清洗和特征提取)
pred_x = X.tail(n)
# 加載模型
loaded_model = joblib.load('models/GradientBoostingClassifier_0.77852_model.pkl')
# 使用加載的模型進行預測
pred_y = loaded_model.predict(pred_x)
# 預測結果
predDf = pd.DataFrame({'SERV_ID':pred_id, 'LEAVE_FLAG':pred_y})
print("*********************原始的標簽情況*********************")
print(df.tail(n)['LEAVE_FLAG'].value_counts())
print("*********************預測的標簽情況*********************")
print(predDf['LEAVE_FLAG'].value_counts())
print("*********************預測的準確率*********************")
min1 = min(df.tail(n)['LEAVE_FLAG'].value_counts()[0],predDf['LEAVE_FLAG'].value_counts()[0])
min2 = min(df.tail(n)['LEAVE_FLAG'].value_counts()[1],predDf['LEAVE_FLAG'].value_counts()[1])
print("{}%".format(round((min1+min2)/n,3)*100))

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40453.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40453.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40453.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

OpenCV基本操作——算數操作

目錄 圖像的加法圖像的混合 圖像的加法 兩個圖像應該具有相同的大小和類型,或者第二個圖像可以是標量值 注意:OpenCV加法和Numpy加法之間存在差異。OpenCV的加法是飽和操作,而Numpy添加的是模運算 import numpy as np import cv2 as cv imp…

[數據集][目標檢測]鋼材表面缺陷目標檢測數據集VOC格式2279張10類別

數據集格式:Pascal VOC格式(不包含分割路徑的txt文件和yolo格式的txt文件,僅僅包含jpg圖片和對應的xml) 圖片數量(jpg文件個數):2279 標注數量(xml文件個數):2279 標注類別數:10 標注類別名稱:["yueyawan",&…

Qt 窗口隨鼠標移動效果

實現在窗口任意位置按下鼠標左鍵都可以移動窗口的效果&#xff0c;完整代碼如下&#xff1a; mainwindow.h&#xff1a; #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QMouseEvent>QT_BEGIN_NAMESPACE namespace Ui { class MainW…

PHP混淆加密以及常用的一些加密工具

PHP混淆加密是一種將源代碼轉換為難以理解和閱讀的方式&#xff0c;以保護代碼的安全性。以下是一些常見的PHP混淆加密方法&#xff1a; 代碼壓縮&#xff1a;使用代碼壓縮工具&#xff08;如UglifyJS&#xff09;將PHP代碼壓縮為一行&#xff0c;去除空格、換行符等可讀性的字…

jenkins 連接服務器,提示Can‘t connect to server

在Jenkins 添加服務器時&#xff0c;提示 Cant connect to server&#xff0c;如圖 搞了好久&#xff0c;不知道為什么不行~原來是行的&#xff0c;現在刪了 新建一個也不行。

2023牛客暑期多校訓練營8-C Clamped Sequence II

2023牛客暑期多校訓練營8-C Clamped Sequence II https://ac.nowcoder.com/acm/contest/57362/C 文章目錄 2023牛客暑期多校訓練營8-C Clamped Sequence II題意解題思路代碼 題意 解題思路 先考慮不加緊密度的情況&#xff0c;要支持單點修改&#xff0c;整體查詢&#xff0…

axios同一個接口,同時接收 文件 或者 數據

1、前端代碼 const service axios.create({baseURL: "http://192.168.2.200:8080/api",timeout: 180000 })// 響應攔截 service.interceptors.response.use(async response > {if(response){// 請求時設置返回blob, 但是實際上可能返回的是json的情況if (respon…

[C++]筆記 - 知識點積累

一.運算符的優先級 一共15個級別 最高優先級 : () []最低優先級 :逗號表達式倒數第二低優先級 : 賦值和符合賦值(,,-...) ! >算術運算符 > 關系運算符 > && >> || >賦值運算符 二.數據類型轉換 隱式類型轉換 算數轉換 char int long longlong flo…

解決Java中的“Unchecked cast: java.lang.Object to java.util.List”問題

&#x1f337;&#x1f341; 博主貓頭虎 帶您 Go to New World.?&#x1f341; &#x1f984; 博客首頁——貓頭虎的博客&#x1f390; &#x1f433;《面試題大全專欄》 文章圖文并茂&#x1f995;生動形象&#x1f996;簡單易學&#xff01;歡迎大家來踩踩~&#x1f33a; &a…

搜索二叉樹

目錄 搜索二叉樹的性質 搜索二叉樹的實現、 插入 刪除 代碼 在以前我們學過二叉樹,但是在對二叉樹的學習中發現,似乎二叉樹并沒有什么作用,要論增刪它比不上鏈表,論隨機訪問也沒法和順序表比,對于當時的我們是一頭霧水,那么現在它的功能終于是體現出來了,這里就是我們要講的…

[Go版]算法通關村第十一關白銀——位運算的高頻算法題

目錄 專題1&#xff1a;位移的妙用題目&#xff1a;位1的個數&#xff08;也被稱為漢明重量&#xff09;解法1&#xff1a;遍歷所有位&#xff0c;判斷每個位的數字是否是1Go代碼 解法2&#xff1a;依次消除每個1的位 numnum&(num-1)Go代碼 題目&#xff1a;比特位計數思路…

Mac 卸載appium

安裝了最新版的appium 2.0.1,使用中各種問題&#xff0c;卡頓....,最終決定回退的。記錄下卸載的過程 1.打開終端應用程序 2.卸載全局安裝的 Appium 運行以下命令以卸載全局安裝的 Appium&#xff1a; npm uninstall -g appium 出現報錯&#xff1a;Error: EACCES: permiss…

云安全攻防(十二)之 手動搭建 K8S 環境搭建

手動搭建 K8S 環境搭建 首先前期我們準備好三臺 Centos7 機器&#xff0c;配置如下&#xff1a; 主機名IP系統版本k8s-master192.168.41.141Centos7k8s-node1192.168.41.142Centos7k8s-node2192.168.41.143Centos7 前期準備 首先在三臺機器上都執行如下的命令 # 關閉防火墻…

Python讀取Word統計詞頻輸出到Excel

1.安裝依賴的包 "# 讀取docx\n", "!pip install python-docx\n", "!pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-docx\n", "# 中英文分詞\n", "!pip install jieba\n", "!pi…

postman測試后端增刪改查

目錄 一、本文介紹 二、準備工作 &#xff08;一&#xff09;新建測試 &#xff08;二&#xff09;默認url路徑查看方法 三、增刪改查 &#xff08;一&#xff09;查詢全部 &#xff08;二&#xff09;增加數據 &#xff08;三&#xff09;刪除數據 &#xff08;四&…

nginx反向代理流程

一、nginx反向代理流程 反向代理&#xff1a;使用代理服務器來接受internet上的連接請求&#xff0c;然后將請求轉發給內部網絡中的上游服務器&#xff0c;并將上游服務器得到的結果返回給請求連接的客戶端&#xff0c;代理服務器對外表現就是一個web服務器。Nginx就經常拿來做…

【內網穿透】如何實現在外web瀏覽器遠程訪問jupyter notebook服務器

文章目錄 前言1. Python環境安裝2. Jupyter 安裝3. 啟動Jupyter Notebook4. 遠程訪問4.1 安裝配置cpolar內網穿透4.2 創建隧道映射本地端口 5. 固定公網地址 前言 Jupyter Notebook&#xff0c;它是一個交互式的數據科學和計算環境&#xff0c;支持多種編程語言&#xff0c;如…

信也科技一面涼經

1.在項目經歷里挑一個詳細介紹一下 項目的應用場景 2.項目里用到多線程是怎么用的&#xff1f;回答&#xff1a;線程池 用通過 ThreadPoolExecutor 構造函數的方式創建的線程池 3.線程池有哪些重要參數&#xff1f;回答&#xff1a;核心線程數、最大線程數、阻塞隊列類型、…

【愛書不愛輸的程序猿】公網訪問本地搭建的WEB服務器之詳細教程

歡迎來到愛書不愛輸的程序猿的博客, 本博客致力于知識分享&#xff0c;與更多的人進行學習交流 本地電腦搭建Web服務器并用cpolar發布至公網訪問 前言1. 首先將PHPStudy、WordPress、cpolar下載到電腦2. 安裝PHPStudy3. 安裝cpolar&#xff0c;進入Web-UI界面4.安裝wordpress5.…

KU Leuven TU Berlin 推出“RobBERT”,一款荷蘭索塔 BERT

荷蘭語是大約24萬人的第一語言&#xff0c;也是近5萬人的第二語言&#xff0c;是繼英語和德語之后第三大日耳曼語言。來自比利時魯汶大學和柏林工業大學的一組研究人員最近推出了基于荷蘭RoBERTa的語言模型RobBERT。 谷歌的BERT&#xff08;來自Transformers的B idirectional …