树相关-XGBoost与LightGBM

  • 前一篇树相关的文章挖了一个XGBoost的坑,在此篇里把坑填上。同时,对XGBoost的改进模型(替代模型)LightGBM作一个介绍。

    查看更多

Thinkphp 5.x RCE漏洞

Thinkphp 5.x RCE漏洞

0x0 概要

Thinkphp为MVC处理结构,通过对路由的解析,使用控制器调用函数。
由于对兼容模式的路由处理没有进行过滤等,可以调用命名空间下的任意函数,从而产生了RCE漏洞。

查看更多

树相关-从决策树到kaggle大杀器

决策树

决策树的最优分支选择

分类树

  1. 枚举所有可能的划分,每次计算一个代价值,取代价最低的分裂方法。
  2. 设定一个阈值,若超过,则分裂。

回归树

  1. 在一次分裂时,遍历所有划分方法(每次划分为两组,分别计算损失函数并相加),找出损失函数和最小的作为本次分裂;然后使用递归划分出所有可能。
  2. 预测时,使用分组的组内平均数作为该组所有元素的预测值;损失函数可以用该组的各值与该组的平均数的残差平方和。

    查看更多

数据预处理及训练结果评估

数据预处理及训练结果评估

归一化(标准化)

1
2
3
4
#库名
from sklearn import preprocessing
#使用方法
X_scaled = preprocessing.scale(X)

查看更多

2018省赛AWD web writeup

2018年省赛AWD web writeup

  • 一点寒暄 > 本次比赛还是有很多遗憾,AWD做的太少,再加上经验不足,导致结果不好看,下面开始填坑。

  • 网站框架、版本分析
    在ThinkPHP路径下找到ThinkPHP.php文件,在其中找到版本号3.2.3,本版本存在缓存漏洞。
    找到之后,搜索出相同出处的网页: 主页 搜索结果 阅读获得thinkphp缓存漏洞的提示。

    查看更多

2018年巅峰极客 Web部分writeup

A simple cms writeup

做此题之前刚好做了一道原题,比赛的时候是做到最后一步的,但是出了差错没有出flag,很气。

  • 首先,打开连接,发现是onethink1.0框架。搜索该框架的漏洞,果然发现了getshell利用过程,原理如下: > 该框架是对thinkphp框架的二次开发,会将注册后的用户名内容存入临时php文件中。
    我们使用一句话来作为用户名注册账户,在登录后就将其存入缓存文件,最后访问缓存文件即可完成getshell。

原理比较简单,但是具体利用过程有几个关键点: 1. 注册用户名由于特殊字符不能直接输入进输入框。 2. 存放一句话的临时文件名并不知道。

查看更多

VIM初步

VIM使用初步

  • 一般指令
    查看帮助: help xxx

  • 修改文本指令:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    A:到行首第一个非空字符并输入
    I:到行尾最后一个非空字符并输入
    c:删除光标所在(后跟其他范围指令表示删除该范围)
    d:剪切一行
    x:剪切一个字符
    dtx :删除所有的内容,直到遇到x号(delete to x)
    <ctrl + a>:当前数加1
    <ctrl + x>:当前数减1
    <ctrl + p\n>:p:向前补全;n:向后补全。

  • 粘贴模式
    set paste

    查看更多

matplotlib初步学习

matplotlib学习

使用matplotlib.pylab库画图

  • matplotlib可以用来作为机器学习可视化的作图工具,在这里简单记录一下常用的一些画图方法。

    查看更多

杂·sklearn 保存训练结果

一、使用joblib保存结果

代码如下:

1
2
3
4
5
6
7
8
9
from sklearn.externals import joblib
#此处假设已训练好的模型为learnClassifier
#保存训练模型
joblib.dump(learnClassifier, 'learnClassifier.model')
#载入训练模型
learnClassifier = joblib.load('learnClassifier.model')

查看更多

对逻辑回归的进一步理解

概要

  • 逻辑回归即使用一个超平面将整个空间一分为二,并且在边界附近赋予连续(即不是非黑即白,而是可以有0-1之间的小数概率)的概率估计的二分类方法。

  • 逻辑回归使用\(θX\)作为划分数据的边界。

  • 逻辑回归使用

\[ g( Z) =\frac{1}{1+e^{Z}} \]

替代离散的分布函数,其中,g(Z)即概率统计中的分布函数,可根据极大似然估计得到使用已有样本点估计的近似值:从理论上来讲,此时的似然函数应该是最大的,可以用梯度上升法求之。

查看更多