零基础入门金融风控-贷款违约预测-机器学习-数据分析

2023-11-17

零基础入门金融风控-贷款违约预测

一、赛题数据

赛题以预测用户贷款是否违约为任务,数据集报名后可见并可下载,该数据来自某信贷平台的贷款记录,总数据量超过120w,包含47列变量信息,其中15列为匿名变量。为了保证比赛的公平性,将会从中抽取80万条作为训练集,20万条作为测试集A,20万条作为测试集B,同时会对employmentTitle、purpose、postCode和title等信息进行脱敏。

数据可在阿里云学习赛中获得。

  • 字段表
id Field Description
1 id 为贷款清单分配的唯一信用证标识
2 loanAmnt 贷款金额
3 term 贷款期限(year)
4 interestRate 贷款利率
5 installment 分期付款金额
6 grade 贷款等级
7 subGrade 贷款等级之子级
8 employmentTitle 就业职称
9 employmentLength 就业年限(年)
10 homeOwnership 借款人在登记时提供的房屋所有权状况
11 annualIncome 年收入
12 verificationStatus 验证状态
13 issueDate 贷款发放的月份
14 purpose 借款人在贷款申请时的贷款用途类别
15 postCode 借款人在贷款申请中提供的邮政编码的前3位数字
16 regionCode 地区编码
17 dti 债务收入比
18 delinquency_2years 借款人过去2年信用档案中逾期30天以上的违约事件数
19 ficoRangeLow 借款人在贷款发放时的fico所属的下限范围
20 ficoRangeHigh 借款人在贷款发放时的fico所属的上限范围
21 openAcc 借款人信用档案中未结信用额度的数量
22 pubRec 贬损公共记录的数量
23 pubRecBankruptcies 公开记录清除的数量
24 revolBal 信贷周转余额合计
25 revolUtil 循环额度利用率,或借款人使用的相对于所有可用循环信贷的信贷金额
26 totalAcc 借款人信用档案中当前的信用额度总数
27 initialListStatus 贷款的初始列表状态
28 applicationType 表明贷款是个人申请还是与两个共同借款人的联合申请
29 earliesCreditLine 借款人最早报告的信用额度开立的月份
30 title 借款人提供的贷款名称
31 policyCode 公开可用的策略_代码=1新产品不公开可用的策略_代码=2
32 n系列匿名特征 匿名特征n0-n14,为一些贷款人行为计数特征的处理

二、评测标准

提交结果为每个测试样本是1的概率,也就是y为1的概率。评价方法为AUC评估模型效果(越大越好)。

三、代码演示

  • 说明:下面运行结果贴出的是部分图。
  • 环境:本案例使用的库
    • pandas 1.3.2
    • matplotlib 3.4.3
    • seaborn 0.11.2
    • numpy 1.21.2
    • scipy 1.4.1
    • scikit-learn 0.24.2
  • 使用的是jupyter notebook

1. 数据分析及处理

1.1.0导入相关库
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
from scipy import stats
import matplotlib as mpl
#显示所有列
pd.set_option('display.max_columns',None)
# 警告处理 
import warnings
warnings.filterwarnings('ignore')
%matplotlib inline
1.1.1数据预处理
df_train = pd.read_csv('train.csv')
df_test = pd.read_csv('testA.csv')
df_train.shape, df_test.shape

在这里插入图片描述

df_train['train_test'] = 'train'
df_test['train_test'] = 'test'

合并训练集和测试集

df = df_train.append(df_test)
df.reset_index(inplace=True)
df.drop('index',inplace=True,axis=1)
display(df.head())

在这里插入图片描述

df.info()

在这里插入图片描述
缺失值处理

# 需要处理的列名
is_na_cols = [
    'employmentTitle', 'employmentLength', 'postCode', 'dti', 'pubRecBankruptcies',
    'revolUtil', 'title',] + [f'n{i}' for i in range(15)]

对缺失值 用众数填充

# 对缺失值 用众数填充
for i in range(len(is_na_cols)):
    most_num = df[is_na_cols[i]].value_counts().index[0]
    df[is_na_cols[i]] = df[is_na_cols[i]].fillna(most_num)
df.info()

在这里插入图片描述
分开训练集和测试集

df_train = df[df['train_test'] == 'train']
df_test = df[df['train_test'] == 'test']

del df_train['train_test']
del df_test['train_test']
df_train.shape, df_test.shape

在这里插入图片描述
删除测试集的预测目标

del df_test['isDefault']
1.1.2数值型变量和非数值型变量的处理与分析
# 非数值型
non_numeric_cols = [
    'grade', 'subGrade', 'employmentLength', 'issueDate', 'earliesCreditLine'
]
# 数值型
numeric_cols = [
    x for x in df_test.columns if x not in non_numeric_cols + ['isDefault']
]
non_numeric_cols, numeric_cols

在这里插入图片描述

1.1.3数值型(numeric_cols)测试集与训练集分布

画箱式图可查看哪些列名是连续型和非连续型变量

# 画箱式图
column = numeric_cols # 列表头
fig = plt.figure(figsize=(20, 40))  # 指定绘图对象宽度和高度
for i in range(len(column)):
    plt.subplot(13, 4, i + 1)  # 13行3列子图
    sns.boxplot(df[column[i]], orient="v", width=0.5)  # 箱式图
    plt.ylabel(column[i], fontsize=8)
plt.show()

在这里插入图片描述

1.1.4取出数值连续性变量,查看数据分布
continuous_cols = [
    'id', 'loanAmnt', 'interestRate', 'installment', 'employmentTitle', 'homeOwnership',
    'annualIncome', 'purpose', 'postCode', 'regionCode', 'dti', 'delinquency_2years',
    'ficoRangeLow', 'ficoRangeHigh', 'openAcc', 'pubRec', 'revolBal', 'revolUtil','totalAcc',
    'title', 'n14'
] + [f'n{i}' for i in range(11)] 
non_continuous_cols = [
    x for x in numeric_cols if x not in continuous_cols
]

可视化正太分布,查看测试集与训练集的数据是否相同,相同可保留,差距会影响预测结果,就去除。

dist_cols = 6
dist_rows = len(df_test[continuous_cols].columns)
plt.figure(figsize=(4*dist_cols,4*dist_rows))

i=1
for col in df_test[continuous_cols].columns:
    ax=plt.subplot(dist_rows,dist_cols,i)
    ax = sns.kdeplot(df_train[continuous_cols][col], color="Red", shade=True)
    ax = sns.kdeplot(df_test[continuous_cols][col], color="Blue", shade=True)
    ax.set_xlabel(col)
    ax.set_ylabel("Frequency")
    ax = ax.legend(["train","test"])
    
    i+=1
plt.show()

在这里插入图片描述

画QQ图及正态分布图

  • QQ图:曲线越接近直线,越接近正态分布,预测效果更好。
train_cols = 6
train_rows = len(df[continuous_cols].columns)
plt.figure(figsize=(4*train_cols,4*train_rows))

i=0
for col in df[continuous_cols].columns:
    i+=1
    ax=plt.subplot(train_rows,train_cols,i)
    sns.distplot(df[continuous_cols][col],fit=stats.norm)
    i+=1
    ax=plt.subplot(train_rows,train_cols,i)
    res = stats.probplot(df[continuous_cols][col], plot=plt)
plt.show()

在这里插入图片描述
训练集的数据和测试集的数据分布差不多可以将他们整合到一起进行处理

1.1.5查看数值非连续性型数据分布
for i in range(len(non_continuous_cols)):
    print("%s这列的非连续性数据的分布:"%non_continuous_cols[i])
    print(df[non_continuous_cols[i]].value_counts())

在这里插入图片描述

1.1.6查看非数值型数据分布
for i in range(len(non_numeric_cols)):
    print("%s这列非数值型数据的分布:\n"%non_numeric_cols[i])
    print(df[non_numeric_cols[i]].value_counts())

在这里插入图片描述

2. 特征工程

2.1.1 数值非连续性型数据处理
  1. policyCode字段
df['policyCode'].describe()

在这里插入图片描述

# 字段只有一个值,不用了
df.drop('policyCode',axis=1,inplace=True)
  1. n13字段
df['n13'] = df['n13'].apply(lambda x: 1 if x not in [0] else x)
df['n13'].value_counts()

在这里插入图片描述

2.1.2 非数值型数据
  1. grade字段
# 非数值型编码
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
df['grade'] = le.fit_transform(df['grade'])
df['grade'].value_counts()

在这里插入图片描述
2. subGrade字段

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
df['subGrade'] = le.fit_transform(df['subGrade'])
df['subGrade'].value_counts()

在这里插入图片描述
3. employmentLength字段

# 构造编码函数
def encoder(x):
    if x[:-5] == '10+ ':
        return 10
    elif x[:-5] == '< 1':
        return 0
    else:
        return int(x[0])
df['employmentLength'] = df['employmentLength'].apply(encoder)
df['employmentLength'].value_counts()

在这里插入图片描述
4. issueDate字段

  • 计算离现在多少月就ok了
from datetime import datetime
def encoder1(x):
    x = str(x)
    now = datetime.strptime('2020-07-01','%Y-%m-%d')
    past = datetime.strptime(x,'%Y-%m-%d')
    period = now - past
    period = period.days
    return round(period / 30, 2)
df['issueDate'] = df['issueDate'].apply(encoder1)
df['issueDate'].value_counts()

在这里插入图片描述
5. earliesCreditLine字段

def encoder2(x):
    if x[:3] == 'Jan':
        return x[-4:] + '-' + '01-01'
    if x[:3] == 'Feb':
        return x[-4:] + '-' + '02-01'
    if x[:3] == 'Mar':
        return x[-4:] + '-' + '03-01'
    if x[:3] == 'Apr':
        return x[-4:] + '-' + '04-01'
    if x[:3] == 'May':
        return x[-4:] + '-' + '05-01'
    if x[:3] == 'Jun':
        return x[-4:] + '-' + '06-01'
    if x[:3] == 'Jul':
        return x[-4:] + '-' + '07-01'
    if x[:3] == 'Aug':
        return x[-4:] + '-' + '08-01'
    if x[:3] == 'Sep':
        return x[-4:] + '-' + '09-01'
    if x[:3] == 'Oct':
        return x[-4:] + '-' + '10-01'
    if x[:3] == 'Nov':
        return x[-4:] + '-' + '11-01'
    if x[:3] == 'Dec':
        return x[-4:] + '-' + '12-01'
df['earliesCreditLine'] = df['earliesCreditLine'].apply(encoder2)
df['earliesCreditLine'].value_counts()

在这里插入图片描述

df['earliesCreditLine'] = df['earliesCreditLine'].apply(encoder1)
df['earliesCreditLine'].value_counts()

在这里插入图片描述

3. 保存文件

train = df[df['train_test'] == 'train']
test = df[df['train_test'] == 'test']
del test['isDefault']
del train['train_test']
del test['train_test']
train.to_csv('train_process.csv')
test.to_csv('test_process.csv')

4. 数据建模

4.1.1数据查看
# 数据处理
import numpy as np
import pandas as pd

# 数据可视化
import matplotlib.pyplot as plt

# 特征选择和编码
from sklearn.preprocessing import LabelEncoder

# 机器学习
from sklearn import model_selection, tree, preprocessing, metrics
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier
from sklearn.linear_model import LinearRegression, LogisticRegression, Ridge, Lasso, SGDClassifier
from sklearn.tree import DecisionTreeClassifier

# 网格搜索、随机搜索
import scipy.stats as st
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import RandomizedSearchCV

# 模型度量(分类)
from sklearn.metrics import precision_recall_fscore_support, roc_curve, auc

# 警告处理 
import warnings
warnings.filterwarnings('ignore')

# 在Jupyter上画图
%matplotlib inline
train = pd.read_csv('train_process.csv')
test = pd.read_csv('test_process.csv')
train.shape, test.shape

在这里插入图片描述

train.columns,test.columns

在这里插入图片描述

# 删除Unnamed: 0
del train['Unnamed: 0']
del test['Unnamed: 0']
## 为了正确评估模型性能,将数据划分为训练集和测试集,并在训练集上训练模型,在测试集上验证模型性能。
from sklearn.model_selection import train_test_split

## 选择其类别为0和1的样本 (不包括类别为2的样本)
data_target_part = train['isDefault']
data_features_part = train[[x for x in train.columns if x != 'isDefault' and 'id']]

## 测试集大小为20%, 80%/20%分
x_train, x_test, y_train, y_test = train_test_split(data_features_part, data_target_part, test_size = 0.2, random_state = 2020)
x_train.head()

在这里插入图片描述

y_train.head()

在这里插入图片描述

4.1.1选择算法

以下是用到的算法.

  • Logistic Regression
  • Random Forest
  • Decision Tree
  • Gradient Boosted Trees
# 绘制AUC曲线
import time
def plot_roc_curve(y_test, preds):
    fpr, tpr, threshold = metrics.roc_curve(y_test, preds)
    roc_auc = metrics.auc(fpr, tpr)
    plt.title('Receiver Operating Characteristic')
    plt.plot(fpr, tpr, 'b', label = 'AUC = %0.2f' % roc_auc)
    plt.legend(loc = 'lower right')
    plt.plot([0, 1], [0, 1],'r--')
    plt.xlim([-0.01, 1.01])
    plt.ylim([-0.01, 1.01])
    plt.ylabel('True Positive Rate')
    plt.xlabel('False Positive Rate')
    plt.show()
# Logistic Regression
clf1 = LogisticRegression(solver='sag', max_iter=100, multi_class='multinomial')
clf1.fit(x_train, y_train)
## 在训练集和测试集上分布利用训练好的模型进行预测
train_predict = clf1.predict(x_train)
test_predict = clf1.predict(x_test)
from sklearn import metrics

## 利用accuracy(准确度)【预测正确的样本数目占总预测样本数目的比例】评估模型效果
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_train,train_predict))
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_test,test_predict))

在这里插入图片描述

# 网格搜索
from sklearn.model_selection import GridSearchCV
param_grid = {
              'penalty': ['l2', 'l1'],
              'class_weight': [None, 'balanced'],
              'C': [0, 0.1, 0.5, 1],
                'intercept_scaling': [0.1, 0.5, 1]
             }

clf2 = LogisticRegression(solver='sag')
rfc = GridSearchCV(clf2, param_grid, scoring = 'neg_log_loss', cv=3, n_jobs=-1)
rfc.fit(x_train, y_train)
print(rfc.best_score_)
print(rfc.best_params_)

在这里插入图片描述

# Logistic Regression
clf1 = LogisticRegression(solver='sag', max_iter=100, penalty='l2', 
                          class_weight=None, C=0.1, intercept_scaling=0.1)
model = clf1.fit(x_train, y_train)
## 在训练集和测试集上分布利用训练好的模型进行预测
train_predict = clf1.predict(x_train)
test_predict = clf1.predict(x_test)
from sklearn import metrics

## 利用accuracy(准确度)【预测正确的样本数目占总预测样本数目的比例】评估模型效果
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_train,train_predict))
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_test,test_predict))

在这里插入图片描述

# 画图
plot_roc_curve(y_test, model.predict_proba(x_test)[:,1])

在这里插入图片描述

# Random Forest

clf1 = RandomForestClassifier()
clf1.fit(x_train, y_train)
## 在训练集和测试集上分布利用训练好的模型进行预测
train_predict = clf1.predict(x_train)
test_predict = clf1.predict(x_test)
from sklearn import metrics

## 利用accuracy(准确度)【预测正确的样本数目占总预测样本数目的比例】评估模型效果
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_train,train_predict))
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_test,test_predict))

在这里插入图片描述

# 决策树
clf1 = DecisionTreeClassifier()
model = clf1.fit(x_train, y_train)
## 在训练集和测试集上分布利用训练好的模型进行预测
train_predict = clf1.predict(x_train)
test_predict = clf1.predict(x_test)
from sklearn import metrics

## 利用accuracy(准确度)【预测正确的样本数目占总预测样本数目的比例】评估模型效果
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_train,train_predict))
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_test,test_predict))

在这里插入图片描述

plot_roc_curve(y_test, model.predict_proba(x_test)[:,1])

在这里插入图片描述

# Gradient Boosting Trees

clf1 = GradientBoostingClassifier()
model = clf1.fit(x_train, y_train)
## 在训练集和测试集上分布利用训练好的模型进行预测
train_predict = clf1.predict(x_train)
test_predict = clf1.predict(x_test)
from sklearn import metrics

## 利用accuracy(准确度)【预测正确的样本数目占总预测样本数目的比例】评估模型效果
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_train,train_predict))
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_test,test_predict))

在这里插入图片描述

plot_roc_curve(y_test, model.predict_proba(x_test)[:,1])

在这里插入图片描述
代码演示结束

三、拓展

感兴趣的话还可以做一下特征融合、模型融合,做更好地特征工程使得模型AUC得分更高。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

零基础入门金融风控-贷款违约预测-机器学习-数据分析 的相关文章

  • 使用Python开发Web应用程序

    我一直在用 python 做一些工作 但这都是针对独立应用程序的 我很想知道 python 的任何分支是否支持 Web 开发 有人还会建议一个好的教程或网站吗 我可以从中学习一些使用 python 进行 Web 开发的基础知识 既然大家都说
  • Django REST序列化器:创建对象而不保存

    我已经开始使用 Django REST 框架 我想做的是使用一些 JSON 发布请求 从中创建一个 Django 模型对象 然后使用该对象而不保存它 我的 Django 模型称为 SearchRequest 我所拥有的是 api view
  • InterfaceError:连接已关闭(使用 django + celery + Scrapy)

    当我在 Celery 任务中使用 Scrapy 解析函数 有时可能需要 10 分钟 时 我得到了这个信息 我用 姜戈 1 6 5 django celery 3 1 16 芹菜 3 1 16 psycopg2 2 5 5 我也使用了psyc
  • 将字符串转换为带有毫秒和时区的日期时间 - Python

    我有以下 python 片段 from datetime import datetime timestamp 05 Jan 2015 17 47 59 000 0800 datetime object datetime strptime t
  • 如何打印没有类型的defaultdict变量?

    在下面的代码中 from collections import defaultdict confusion proba dict defaultdict float for i in xrange 10 confusion proba di
  • 为 pandas 数据透视表中的每个值列定义 aggfunc

    试图生成具有多个 值 列的数据透视表 我知道我可以使用 aggfunc 按照我想要的方式聚合值 但是如果我不想对两列求和或求平均值 而是想要一列的总和 同时求另一列的平均值 该怎么办 那么使用 pandas 可以做到这一点吗 df pd D
  • __del__ 真的是析构函数吗?

    我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
  • 从 scikit-learn 导入 make_blobs [重复]

    这个问题在这里已经有答案了 我收到下一个警告 D Programming Python ML venv lib site packages sklearn utils deprecation py 77 DeprecationWarning
  • 运行多个 scrapy 蜘蛛的正确方法

    我只是尝试使用在同一进程中运行多个蜘蛛新的 scrapy 文档 http doc scrapy org en 1 0 topics practices html但我得到 AttributeError CrawlerProcess objec
  • python pandas 中的双端队列

    我正在使用Python的deque 实现一个简单的循环缓冲区 from collections import deque import numpy as np test sequence np array range 100 2 resha
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • HTTPS 代理不适用于 Python 的 requests 模块

    我对 Python 还很陌生 我一直在使用他们的 requests 模块作为 PHP 的 cURL 库的替代品 我的代码如下 import requests import json import os import urllib impor
  • ExpectedFailure 被计为错误而不是通过

    我在用着expectedFailure因为有一个我想记录的错误 我现在无法修复 但想将来再回来解决 我的理解expectedFailure是它会将测试计为通过 但在摘要中表示预期失败的数量为 x 类似于它如何处理跳过的 tets 但是 当我
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例

随机推荐

  • 朴素贝叶斯与KNN算法

    朴素贝叶斯算法 数学基础 我们先举一个例子 投硬币是一个随机过程 我们不能预测任意一次投币结果是正面还是反面 我们只能谈论其下一次结果是正面或者反面的概率 如果容貌取得一些额外的数据 如硬币的精准成分 硬币的最初位置 投币的力量与方向 硬币
  • springmvc+mybatis+mysql+log4j.xml+logjdbc+maven聚合+nexus+dubbo demo骨架

    说明 该项目采用maven聚合工程 项目骨架是我们以前架构师搭建骨架 现在已经拆分出来供大家下载使用 可以扩展使用 里面用到技术有springmvc mybatis mysql log4j xml logjdbc maven nexus d
  • java项目整合linux上的redis

    在linux上部署redis 1 在linux上安装redis 先下载redis 下载网址为 https redis io 放到 usr local src目录下 使用命令解压tar xzvf redis tar gz 进入redis目录
  • OWASP Dependency-Check工具集成

    OWASP Dependency Check工具集成 SonarQube 插件不执行分析 而是读取现有的 Dependency Check 报告 先要通过Jenkins插件去执行扫描 然后sonar里面再分析报告 一 搭建本地NVD Mir
  • 解决新版edge浏览器首页被搜狗、haoqq等垃圾搜索引擎捆绑问题,并将启动首页设为edge自带新标签页

    最近想试一下edge浏览器 发现每次启动都是这个haoqq com 这是主页被恶意挟持了 经过不懈努力终于给他关闭了 edge真香 解决步骤 1 打开电脑管家 或火绒软件 找到浏览器保护 电脑管家是在工具箱里 火绒的话在防护中心 系统防护
  • Verilog:【1】时钟分频电路(clk_divider.sv)

    碎碎念 作为Basic Verilog的第一个学习笔记 打算用这种命名方式来对博客进行命名 应该有助于检索 简单阅览了部分工程的代码 发现里面有很多嵌套关系 因此决定先从基础模块开始 也是为了整个博客内容的流畅性 读者朋友有问题的话 也可以
  • java robot截图报错_robot framework笔记(介绍+基础关键字)

    robot framework库 Builtin 提供了一组通常需要的通用关键字 String 生成 修改和验证字符串的库 Screenshot 提供关键字捕捉桌面截图 XML 生成 修改和验证xml文件的库 DateTime 日期和时间转
  • 腾讯mini项目-【指标监控服务重构】2023-08-13

    今日已办 使用watermill框架替代当前的base runner框架 a 参考官方提供的sarama kafka Pub Sub https github com ThreeDotsLabs watermill kafka 实现kafk
  • node-sass与node版本不匹配问题解决方法

    Node和node sass的版本存在绑定关系 关系对照表如下 如果版本不匹配 比如在node16上面安装node sass 4 x 那么就可能会报以下错误 此时如果没有别的项目受影响 最好是将node的版本降低一下 咨询朋友说最好是降级n
  • Java线程:线程的调度-休眠

    本文转载至 http lavasoft blog 51cto com 62575 221790 Java线程 线程的调度 休眠 Java线程调度是Java多线程的核心 只有良好的调度 才能充分发挥系统的性能 提高程序的执行效率 这里要明确的
  • Linux 面试题

    一 填空题 1 在Linux系统中 以 文件 方式访问设备 2 Linux内核引导时 从文件 etc fstab 中读取要加载的文件系统 3 Linux文件系统中每个文件用 i节点 来标识 4 全部磁盘块由四个部分组成 分别为引导块 专用块
  • 给WPF的DataGrid添加行号的方法(在XAML中添加,不是添加到行最前面那种)

  • 主机入侵检测系统wazuh3.13单机部署

    Wazuh涉及两个主要组件的安装 Wazuh服务器和Elastic Stack 此外 Wazuh agent需要部署到受监视的主机上 Wazuh server 运行Wazuh管理器和API 它从已部署的代理收集和分析数据 Elastic S
  • Mac brew安装mysql之后无法启动mysql

    使用Mac brew装完mysql之后 连接mysql报错 songdeMacBook Pro mysql song mysql uroot p Enter password ERROR 2002 HY000 Can t connect t
  • Linux之硬链接和软链接

    硬链接 1 包含在目录中的一个文件名就是一个文件的硬链接 或简称链接 Link 在同一目录或者不同目录中 同一个文件可以有好几个链接 对应好几个文件名 创建链接的命令 ln P1 P2 用来创建一个新的硬链接 即为由路径P1标识的文件创建一
  • 推荐几个UI/UX设计师常用软件和网站

    网站 Dribbble dribbble com Dribble是一个面向创作家 艺术工作者 设计师等创意类作品的人群 提供作品在线服务 供网友在线查看已经完成的作品或者正在创作的作品的交流网站 Dribbble还针对手机推出了相应的软件
  • Nginx介绍

    Nginx介绍 是什么 Nginx是一款轻量级的Web 服务器 反向代理服务器及电子邮件 IMAP POP3 代理服务器 在BSD like 协议下发行 其特点是占有内存少 并发能力强 事实 上nginx的并发能力在同类型的网页服务器中表现
  • Win11怎么设置任务栏大小?Win11调整任务栏

    有用户在使用Win11系统的过程中发现任务栏大小不一样 非常影响美观 有什么办法可以设置Win11任务栏的大小吗 下面小编就给大家带来Win11调整任务栏大小的教程 希望对大家有帮助 Win11 4月最新版下载 Ghost Win11 22
  • Spring学习总结

    Spring学习总结 文章目录 Spring学习总结 toc 一 Spring介绍 1 概念 2 下载路径 二 IOC容器 1 IOC概念和原理 什么是IOC IOC底层原理 2 IOC接口 3 IOC操作 Bean管理 什么是Bean管理
  • 零基础入门金融风控-贷款违约预测-机器学习-数据分析

    零基础入门金融风控 贷款违约预测 一 赛题数据 赛题以预测用户贷款是否违约为任务 数据集报名后可见并可下载 该数据来自某信贷平台的贷款记录 总数据量超过120w 包含47列变量信息 其中15列为匿名变量 为了保证比赛的公平性 将会从中抽取8