1.题干
消费券核销预测:有超市部分顾客购买奶制品和使用优惠券的历史数据(文件名:优惠券核销数据.csv),包括性别(Sex:女1、男2),年龄段(Age:中青年1、中老年2),液奶品类(Class:低端1、中档2、高端3),单均消费额(AvgSpending),是否核销优惠券(Accepted:核销 1、未核销0)。现要进行新一轮的优惠券推送促销,为实现精准营销,需确定有大概率核销优惠券的顾客群。请分别采用Logistic回归模型和朴素贝叶斯分类器,对奶制品优惠券是否核销进行二分类预测,并分析哪些因素是影响消费券核销的重要因素。
2.数据格式
Accepted | Sex | Age | Class | AvgSpending |
0 | 2 | 1 | 1 | 38 |
0 | 1 | 1 | 1 | 33 |
0 | 2 | 1 | 1 | 37 |
0 | 2 | 1 | 1 | 40 |
0 | 2 | 1 | 1 | 34 |
0 | 2 | 1 | 1 | 34 |
0 | 2 | 1 | 1 | 38 |
0 | 2 | 1 | 1 | 36 |
... | ... | ... | ... | ... |
3.代码
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import accuracy_score, classification_report
data = pd.read_csv('优惠券核销数据.csv')
X = data.drop('Accepted', axis=1)
y = data['Accepted']
scaler = StandardScaler()
X = scaler.fit_transform(X)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
logistic_model = LogisticRegression()
logistic_model.fit(X_train, y_train)
y_pred_logistic = logistic_model.predict(X_test)
print("Logistic回归 Accuracy:", accuracy_score(y_test, y_pred_logistic))
print("Logistic回归分类情况:")
print(classification_report(y_test, y_pred_logistic))
print('------------------------------------------------------------')
naive_bayes_model = GaussianNB()
naive_bayes_model.fit(X_train, y_train)
y_pred_naive_bayes = naive_bayes_model.predict(X_test)
print("朴素贝叶斯分类器 Accuracy:", accuracy_score(y_test, y_pred_naive_bayes))
print("朴素贝叶斯分类情况:")
print(classification_report(y_test, y_pred_naive_bayes))