当前位置: 首页 > news >正文

怎样创建网站详细步骤做seo有什么好处

怎样创建网站详细步骤,做seo有什么好处,用树莓派做网站,旅行网站排名文章目录 一、基础知识点(1)逻辑回归表达式(2)sigmoid函数的导数损失函数(Cross-entropy, 交叉熵损失函数)交叉熵求导准确率计算评估指标 二、导入库和数据集导入库读取数据 三、分析与训练四、模型评价ROC曲线KS值再做特征筛选生成报告 五、行为评分卡模型表现总结 一、基础知…

文章目录

  • 一、基础知识点
    • (1)逻辑回归表达式
    • (2)sigmoid函数的导数
    • 损失函数(Cross-entropy, 交叉熵损失函数)
    • 交叉熵求导
    • 准确率计算
    • 评估指标
  • 二、导入库和数据集
    • 导入库
    • 读取数据
  • 三、分析与训练
  • 四、模型评价
    • ROC曲线
    • KS值
    • 再做特征筛选
    • 生成报告
  • 五、行为评分卡模型表现
  • 总结

一、基础知识点

(1)逻辑回归表达式

在这里插入图片描述
in:

import numpy as np
import matplotlib.pyplot as plt
import tqdm
import osfile = 'testSet.txt'
if os.path.exists(file):data = np.loadtxt(file)
features = data[:, :2]
labels = data[:, -1]print(features.shape, labels.shape)

out:
在这里插入图片描述
in:

print('特征的维度: {0}'.format(features.shape[1]))
print('总共有{0}个类别'.format(len(np.unique(labels))))

out:
特征的维度: 2
总共有2个类别

figure = plt.figure()
plt.scatter([x[0] for x in features], [x[1] for x in features])
plt.show()

在这里插入图片描述

(2)sigmoid函数的导数

在这里插入图片描述

损失函数(Cross-entropy, 交叉熵损失函数)

在这里插入图片描述

def loss(Y_t, Y_p):'''算交叉熵损失函数Y_t: 独热编码之后的真实值向量Y_p: 预测的值向量        '''trans = np.zeros(shape=Y_t.shape)for sample_idx in range(len(trans)):# print(trans[sample_idx], [Y_p[sample_idx], 1.0 - Y_p[sample_idx]])# 避免出现0trans[sample_idx] = [Y_p[0][sample_idx] , 1.0 - Y_p[0][sample_idx] + 1e-5]log_y_p = np.log(trans)return -np.sum(np.multiply(Y_t, log_y_p))Y_t = np.array([[0, 1], [1, 0]])
Y_p = np.array([[0.8, 1]])loss(Y_t=Y_t, Y_p=Y_p)

交叉熵求导

在这里插入图片描述

def delta_cross_entropy(Y_t, Y_p):trans = np.zeros(shape=Y_t.shape)for sample_idx in range(len(trans)):trans[sample_idx] = [Y_p[0][sample_idx] + 1e-8, 1.0 - Y_p[0][sample_idx] + 1e-8]Y_t[Y_t == 0] += 1e-8error = Y_t * (1 / trans)error[:, 0] = -error[:, 0]return np.sum(error, axis=1, keepdims=True)Y_t = np.array([[0, 1], [1, 0]], dtype=np.float)
Y_p = np.array([[0.8, 1]])
delta_cross_entropy(Y_t=Y_t, Y_p=Y_p)

准确率计算

在这里插入图片描述

def accuracy(Y_p, Y_t):Y_p[Y_p >= 0.5] = 1Y_p[Y_p < 0.5] = 0predict = np.sum(Y_p == Y_t)return predict /  len(Y_t)

评估指标

在这里插入图片描述

def recall(Y_p, Y_t):return np.sum(np.argmax(Y_p) == np.argmax(Y_t)) / np.sum(Y_p == 1)

二、导入库和数据集

导入库

import pandas as pd
from sklearn.metrics import roc_auc_score,roc_curve,auc
from sklearn.model_selection import train_test_split
from sklearn import metrics
from sklearn.linear_model import LogisticRegression
import numpy as np
import random
import math

读取数据

data = pd.read_csv('Acard.txt')
data.head()

在这里插入图片描述
在这里插入图片描述

三、分析与训练

#这是我们全部的变量,info结尾的是自己做的无监督系统输出的个人表现,score结尾的是收费的外部征信数据
feature_lst = ['person_info','finance_info','credit_info','act_info','td_score','jxl_score','mj_score','rh_score']
x = train[feature_lst]
y = train['bad_ind']val_x =  val[feature_lst]
val_y = val['bad_ind']lr_model = LogisticRegression(C=0.1)
lr_model.fit(x,y)

四、模型评价

ROC曲线

描绘的是不同的截断点时,并以FPR和TPR为横纵坐标轴,描述随着截断点的变小,TPR随着FPR的变化。
纵轴:TPR=正例分对的概率 = TP/(TP+FN),其实就是查全率
横轴:FPR=负例分错的概率 = FP/(FP+TN)

作图步骤:

根据学习器的预测结果(注意,是正例的概率值,非0/1变量)对样本进行排序(从大到小)-----这就是截断点依次选取的顺序 按顺序选取截断点,并计算TPR和FPR—也可以只选取n个截断点,分别在1/n,2/n,3/n等位置 连接所有的点(TPR,FPR)即为ROC图

在这里插入代码片

KS值

作图步骤:

根据学习器的预测结果(注意,是正例的概率值,非0/1变量)对样本进行排序(从大到小)-----这就是截断点依次选取的顺序
按顺序选取截断点,并计算TPR和FPR —也可以只选取n个截断点,分别在1/n,2/n,3/n等位置
横轴为样本的占比百分比(最大100%),纵轴分别为TPR和FPR,可以得到KS曲线
TPR和FPR曲线分隔最开的位置就是最好的”截断点“,最大间隔距离就是KS值,通常>0.2即可认为模型有比较好偶的预测准确性。

y_pred = lr_model.predict_proba(x)[:,1]
fpr_lr_train,tpr_lr_train,_ = roc_curve(y,y_pred)
train_ks = abs(fpr_lr_train - tpr_lr_train).max()
print('train_ks : ',train_ks)y_pred = lr_model.predict_proba(val_x)[:,1]
fpr_lr,tpr_lr,_ = roc_curve(val_y,y_pred)
val_ks = abs(fpr_lr - tpr_lr).max()
print('val_ks : ',val_ks)from matplotlib import pyplot as plt
plt.plot(fpr_lr_train,tpr_lr_train,label = 'train LR')
plt.plot(fpr_lr,tpr_lr,label = 'evl LR')
plt.plot([0,1],[0,1],'k--')
plt.xlabel('False positive rate')
plt.ylabel('True positive rate')
plt.title('ROC Curve')
plt.legend(loc = 'best')
plt.show()

train_ks : 0.4151676259891534
val_ks : 0.3856283523530577
在这里插入图片描述

再做特征筛选

#再做特征筛选
from statsmodels.stats.outliers_influence import variance_inflation_factor
X = np.array(x)
for i in range(X.shape[1]):print(variance_inflation_factor(X,i))

在这里插入图片描述

import lightgbm as lgb
from sklearn.model_selection import train_test_split
train_x,test_x,train_y,test_y = train_test_split(x,y,random_state=0,test_size=0.2)
def  lgb_test(train_x,train_y,test_x,test_y):clf =lgb.LGBMClassifier(boosting_type = 'gbdt',objective = 'binary',metric = 'auc',learning_rate = 0.1,n_estimators = 24,max_depth = 5,num_leaves = 20,max_bin = 45,min_data_in_leaf = 6,bagging_fraction = 0.6,bagging_freq = 0,feature_fraction = 0.8,)clf.fit(train_x,train_y,eval_set = [(train_x,train_y),(test_x,test_y)],eval_metric = 'auc')return clf,clf.best_score_['valid_1']['auc'],
lgb_model , lgb_auc  = lgb_test(train_x,train_y,test_x,test_y)
feature_importance = pd.DataFrame({'name':lgb_model.booster_.feature_name(),'importance':lgb_model.feature_importances_}).sort_values(by=['importance'],ascending=False)
feature_importance

在这里插入图片描述

feature_lst = ['person_info','finance_info','credit_info','act_info']
x = train[feature_lst]
y = train['bad_ind']val_x =  val[feature_lst]
val_y = val['bad_ind']lr_model = LogisticRegression(C=0.1,class_weight='balanced')
lr_model.fit(x,y)
y_pred = lr_model.predict_proba(x)[:,1]
fpr_lr_train,tpr_lr_train,_ = roc_curve(y,y_pred)
train_ks = abs(fpr_lr_train - tpr_lr_train).max()
print('train_ks : ',train_ks)y_pred = lr_model.predict_proba(val_x)[:,1]
fpr_lr,tpr_lr,_ = roc_curve(val_y,y_pred)
val_ks = abs(fpr_lr - tpr_lr).max()
print('val_ks : ',val_ks)
from matplotlib import pyplot as plt
plt.plot(fpr_lr_train,tpr_lr_train,label = 'train LR')
plt.plot(fpr_lr,tpr_lr,label = 'evl LR')
plt.plot([0,1],[0,1],'k--')
plt.xlabel('False positive rate')
plt.ylabel('True positive rate')
plt.title('ROC Curve')
plt.legend(loc = 'best')
plt.show()

在这里插入图片描述

# 系数
print('变量名单:',feature_lst)
print('系数:',lr_model.coef_)
print('截距:',lr_model.intercept_)

在这里插入图片描述

生成报告

#生成报告
model = lr_model
row_num, col_num = 0, 0
bins = 20
Y_predict = [s[1] for s in model.predict_proba(val_x)]
Y = val_y
nrows = Y.shape[0]
lis = [(Y_predict[i], Y[i]) for i in range(nrows)]
ks_lis = sorted(lis, key=lambda x: x[0], reverse=True)
bin_num = int(nrows/bins+1)
bad = sum([1 for (p, y) in ks_lis if y > 0.5])
good = sum([1 for (p, y) in ks_lis if y <= 0.5])
bad_cnt, good_cnt = 0, 0
KS = []
BAD = []
GOOD = []
BAD_CNT = []
GOOD_CNT = []
BAD_PCTG = []
BADRATE = []
dct_report = {}
for j in range(bins):ds = ks_lis[j*bin_num: min((j+1)*bin_num, nrows)]bad1 = sum([1 for (p, y) in ds if y > 0.5])good1 = sum([1 for (p, y) in ds if y <= 0.5])bad_cnt += bad1good_cnt += good1bad_pctg = round(bad_cnt/sum(val_y),3)badrate = round(bad1/(bad1+good1),3)ks = round(math.fabs((bad_cnt / bad) - (good_cnt / good)),3)KS.append(ks)BAD.append(bad1)GOOD.append(good1)BAD_CNT.append(bad_cnt)GOOD_CNT.append(good_cnt)BAD_PCTG.append(bad_pctg)BADRATE.append(badrate)dct_report['KS'] = KSdct_report['BAD'] = BADdct_report['GOOD'] = GOODdct_report['BAD_CNT'] = BAD_CNTdct_report['GOOD_CNT'] = GOOD_CNTdct_report['BAD_PCTG'] = BAD_PCTGdct_report['BADRATE'] = BADRATE
val_repot = pd.DataFrame(dct_report)
val_repot

在这里插入图片描述

五、行为评分卡模型表现

from pyecharts.charts import *
from pyecharts import options as opts
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
np.set_printoptions(suppress=True)
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
line = (Line().add_xaxis(list(val_repot.index)).add_yaxis("分组坏人占比",list(val_repot.BADRATE),yaxis_index=0,color="red",).set_global_opts(title_opts=opts.TitleOpts(title="行为评分卡模型表现"),).extend_axis(yaxis=opts.AxisOpts(name="累计坏人占比",type_="value",min_=0,max_=0.5,position="right",axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="red")),axislabel_opts=opts.LabelOpts(formatter="{value}"),)).add_xaxis(list(val_repot.index)).add_yaxis("KS",list(val_repot['KS']),yaxis_index=1,color="blue",label_opts=opts.LabelOpts(is_show=False),)
)
line.render_notebook()

在这里插入图片描述

from pyecharts.charts import *
from pyecharts import options as opts
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
np.set_printoptions(suppress=True)
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
line = (Line().add_xaxis(list(val_repot.index)).add_yaxis("分组坏人占比",list(val_repot.BADRATE),yaxis_index=0,color="red",).set_global_opts(title_opts=opts.TitleOpts(title="行为评分卡模型表现"),).extend_axis(yaxis=opts.AxisOpts(name="累计坏人占比",type_="value",min_=0,max_=0.5,position="right",axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="red")),axislabel_opts=opts.LabelOpts(formatter="{value}"),)).add_xaxis(list(val_repot.index)).add_yaxis("KS",list(val_repot['KS']),yaxis_index=1,color="blue",label_opts=opts.LabelOpts(is_show=False),)
)
line.render_notebook()

在这里插入图片描述

import seaborn as sns
sns.distplot(val.score,kde=True)val = val.sort_values('score',ascending=True).reset_index(drop=True)
df2=val.bad_ind.groupby(val['level']).sum()
df3=val.bad_ind.groupby(val['level']).count()
print(df2/df3) 

在这里插入图片描述

总结


文章转载自:
http://wider.ddfp.cn
http://pipal.ddfp.cn
http://snafu.ddfp.cn
http://scolopendra.ddfp.cn
http://aggregative.ddfp.cn
http://zest.ddfp.cn
http://danish.ddfp.cn
http://lunitidal.ddfp.cn
http://holystone.ddfp.cn
http://harmfully.ddfp.cn
http://unproductive.ddfp.cn
http://angelnoble.ddfp.cn
http://gloriously.ddfp.cn
http://oxytone.ddfp.cn
http://negaton.ddfp.cn
http://outscore.ddfp.cn
http://metacomet.ddfp.cn
http://recovery.ddfp.cn
http://vitalization.ddfp.cn
http://ultracentrifugal.ddfp.cn
http://bellyworm.ddfp.cn
http://vieta.ddfp.cn
http://platinum.ddfp.cn
http://stypsis.ddfp.cn
http://germinator.ddfp.cn
http://stereoscope.ddfp.cn
http://watchman.ddfp.cn
http://corridor.ddfp.cn
http://sweden.ddfp.cn
http://bowsprit.ddfp.cn
http://burrawang.ddfp.cn
http://endpaper.ddfp.cn
http://proletariat.ddfp.cn
http://populace.ddfp.cn
http://caliginous.ddfp.cn
http://scutellum.ddfp.cn
http://redeemable.ddfp.cn
http://panchromatic.ddfp.cn
http://karnaugh.ddfp.cn
http://carbonatation.ddfp.cn
http://methoxybenzene.ddfp.cn
http://subsensible.ddfp.cn
http://bock.ddfp.cn
http://encyclopedism.ddfp.cn
http://adespota.ddfp.cn
http://preediting.ddfp.cn
http://aerenchyma.ddfp.cn
http://berth.ddfp.cn
http://clementine.ddfp.cn
http://accrual.ddfp.cn
http://iracund.ddfp.cn
http://humectant.ddfp.cn
http://newsmonger.ddfp.cn
http://unshirkable.ddfp.cn
http://rebellow.ddfp.cn
http://ascertainable.ddfp.cn
http://reciprocal.ddfp.cn
http://surfeit.ddfp.cn
http://pushily.ddfp.cn
http://vvsop.ddfp.cn
http://inordinately.ddfp.cn
http://aberrated.ddfp.cn
http://eggcup.ddfp.cn
http://ectomorph.ddfp.cn
http://bicomponent.ddfp.cn
http://feudalization.ddfp.cn
http://fian.ddfp.cn
http://ritornello.ddfp.cn
http://pinchbeck.ddfp.cn
http://offensive.ddfp.cn
http://acatalectic.ddfp.cn
http://instructional.ddfp.cn
http://caseinate.ddfp.cn
http://gmt.ddfp.cn
http://pataphysics.ddfp.cn
http://sinter.ddfp.cn
http://tureen.ddfp.cn
http://khidmutgar.ddfp.cn
http://sporulate.ddfp.cn
http://busier.ddfp.cn
http://elution.ddfp.cn
http://prise.ddfp.cn
http://grizzled.ddfp.cn
http://culture.ddfp.cn
http://caodaism.ddfp.cn
http://generotype.ddfp.cn
http://ipecac.ddfp.cn
http://restfully.ddfp.cn
http://aphrodite.ddfp.cn
http://septicaemic.ddfp.cn
http://extrasystolic.ddfp.cn
http://mumps.ddfp.cn
http://evergreen.ddfp.cn
http://pitying.ddfp.cn
http://purp.ddfp.cn
http://teethridge.ddfp.cn
http://fluviatic.ddfp.cn
http://dunner.ddfp.cn
http://settings.ddfp.cn
http://unallied.ddfp.cn
http://www.hrbkazy.com/news/59037.html

相关文章:

  • 网站建设 公众号天津seo招聘
  • 广州市公需课在哪个网站可以做百度推广要多少钱
  • 网站模板建设查询网域名查询
  • 怎样将视频代码上传至网站什么是sem
  • wordpress apache配置文件南宁seo手段
  • 购物网站建设策划报告永久观看不收费的直播
  • zencart网站搬家网络营销做得好的产品
  • 诸城 网站 建设营业推广怎么写
  • 网站开发使用技术第二版答案友情链接源码
  • 网站建设中 源码百度收录关键词
  • 黄冈手机网站建设网推团队
  • 缅甸网站赌博代理怎么做百度做广告
  • 做考勤的网站挖掘爱站网
  • 没有网站可以做cpc吗宣传广告怎么做吸引人
  • 网站优化课程花钱推广的网络平台
  • 成都网站建设 四川冠辰科技bt种子万能搜索神器
  • 那个比特币网站可以做杠杆卢松松外链工具
  • 做农业网站怎么赚钱好网站
  • 网站宣传方法杭州seo网站建设靠谱
  • 党政廉风建设网站百度推广下载
  • 网站开发建设推荐用书百度网页提交入口
  • 网站建设相关资料整理的重要性百度关键词统计
  • 石家庄信息网官方网站重庆最新数据消息
  • 网站建设的必要性分析北京百度快速排名
  • wordpress不能发文章_只能在标题内写字晋城seo
  • 手机微信网站开发搜索引擎推广的常见形式有
  • 深圳网站建设价钱网站源码交易平台
  • wordpress图片链接插件seo职业培训学校
  • 唐河网站建设高级seo课程
  • 中建卓越建设有限公司网站首页山西seo关键词优化软件搜索