# 临界VIP15天用户画像
import pandas as pd
#import xlrd
data = pd.read_excel('D:/工作内容/XX工作/外呼/VIP临界15天.xls')
type(data)
data.head(2)
#处理外呼时间为外呼日期
import datetime
import time
import pandas as pd
from datetime import datetime
#col=list(data.外呼时间)
#print(col)
new_外呼日期=[]
new_外呼时间=[]
周几=[]
for i in data['外呼时间']:
i=str(i)
t1=time.strptime(i,"%Y-%m-%d %H:%M:%S")
t2=time.strftime("%Y-%m-%d",t1)
t3=time.strftime("%H",t1)
t4=datetime.strptime(t2,'%Y-%m-%d').weekday()+1
new_外呼日期.append(t2)
new_外呼时间.append(t3)
周几.append(t4)
#将列表添加进原本的表格数据中
data['外呼日期']=new_外呼日期
data['外呼time']=new_外呼时间
data['周几']=周几
# print(new_外呼日期)
# print(new_外呼时间)
# print(周几)
data.info()
x=data.drop(['Y_label','外呼时间','座席工号','购买产品类型','实际购买产品名称','实际购买产品金额','交易时间','交易渠道','交易笔数'],axis=1)
x.info()
# 使用get_dummies方法做onehot编码
import numpy as np
head_name = np.array(list(x))
print(head_name)
X = pd.get_dummies(
x,
# 要转码的列
columns=head_name,
# 生成的列名的前缀
prefix=head_name,
# 把空值也做编码
dummy_na=True,
# 把1 of k移除(dummy variable trap)
drop_first=True
)
#查看表头
np.array(list(X))
y=data['Y_label']
#开始训练
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,stratify=y,random_state=45,train_size=0.8)
#以data数据的第6和第7个特征,
#以及目标函数建立模型
from sklearn import tree
from sklearn.linear_model import LogisticRegressionCV
#设置树的限制条件
dtr=LogisticRegressionCV(cv=5)
# dtr = tree.DecisionTreeClassifier(max_depth =3)
dtr.fit(X_train,y_train)
# print(Y)
# print(X)
y_train_hat=dtr.predict(X_train)
metrics.accuracy_score(y_train,y_train_hat)
data['Y_label'].value_counts()
from sklearn import metrics
metrics.accuracy_score(y_train,y_train_hat,normalize=False) #其中normalize=False是显示预测值余总真实值有多少是一样的
y_test_hat=dtr.predict(X_test)
from sklearn.metrics import classification_report
print(classification_report(y_test,y_test_hat))
metrics.accuracy_score(y_test,y_test_hat)
y_test.value_counts()
print(classification_report(y_train,y_train_hat))
print(classification_report(y_test,y_test_hat))
#若是逻辑回归算法则这步省略
import matplotlib.pyplot as plt
from sklearn import tree
tree.plot_tree(dtr)
20200518-onehot编码之get_dummies方法
最新推荐文章于 2023-07-19 17:34:53 发布