寶安區(qū)做網(wǎng)站班級優(yōu)化大師學(xué)生版
目錄
一、導(dǎo)入數(shù)據(jù)
二、選擇特征
三、十折交叉驗(yàn)證
四、劃分訓(xùn)練集和測試集
五、訓(xùn)練高斯貝葉斯模型
六、預(yù)測測試集
?七、查看訓(xùn)練集和測試集上的分?jǐn)?shù)
?八、查看混合矩陣
九、輸出評估指標(biāo)
一、導(dǎo)入數(shù)據(jù)
# 根據(jù)商戶數(shù)據(jù)預(yù)測其是否續(xù)約案例
import pandas
#讀取數(shù)據(jù)到 data 變量中
data = pandas.read_csv('高斯貝葉斯.csv', encoding='ansi')
二、選擇特征
features = [ '注冊時(shí)長', '營收收入', '成本']
x=data[features]
y=data['是否續(xù)約']
三、十折交叉驗(yàn)證
#高斯貝葉斯
from sklearn.naive_bayes import GaussianNB
gaussianNB = GaussianNB()
from sklearn.model_selection import cross_val_score
#進(jìn)行K折交叉驗(yàn)證
cvs = cross_val_score(gaussianNB, x, y, cv=10)
cvs.mean()
?分?jǐn)?shù)如下:
四、劃分訓(xùn)練集和測試集
from sklearn.model_selection import train_test_split#把數(shù)據(jù)集分為訓(xùn)練集和測試集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3)
五、訓(xùn)練高斯貝葉斯模型
gaussianNB = gaussianNB.fit(x_train, y_train)
六、預(yù)測測試集
predict=gaussianNB.predict(x_test)
?七、查看訓(xùn)練集和測試集上的分?jǐn)?shù)
gaussianNB.score(x_train, y_train)
gaussianNB.score(x_test, y_test)
?八、查看混合矩陣
gaussianNB = GaussianNB()
#使用所有數(shù)據(jù)訓(xùn)練模型
gaussianNB.fit(x, y)
#對所有的數(shù)據(jù)進(jìn)行預(yù)測
data['預(yù)測是否續(xù)約'] = gaussianNB.predict(data[features])
from sklearn.metrics import confusion_matrix
#計(jì)算混淆矩陣,labels參數(shù),可由 gaussianNB.classes_ 得到
confusion_matrix(data['是否續(xù)約'], data['預(yù)測是否續(xù)約'], labels=['不續(xù)約', '續(xù)約']
)
九、輸出評估指標(biāo)
from sklearn.metrics import classification_report
# 輸出評估指標(biāo)
print(classification_report(y_test, predict))