20200518-onehot编码之get_dummies方法

# 临界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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值