<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Gnos96的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Gnos96</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Gnos96]]></copyright><item><title><![CDATA[labelme json_to_dataset批量处理生成mask]]></title><link>https://blog.youkuaiyun.com/Gnos96/article/details/127051266</link><guid>https://blog.youkuaiyun.com/Gnos96/article/details/127051266</guid><author>Gnos96</author><pubDate>Mon, 26 Sep 2022 12:14:43 +0800</pubDate><description><![CDATA[labelme json_to_dataset批量处理生成mask]]></description><category></category></item><item><title><![CDATA[python小白之路：第十八章 集成学习与随机森林]]></title><link>https://blog.youkuaiyun.com/Gnos96/article/details/109079460</link><guid>https://blog.youkuaiyun.com/Gnos96/article/details/109079460</guid><author>Gnos96</author><pubDate>Wed, 14 Oct 2020 17:38:56 +0800</pubDate><description><![CDATA[集成学习

将多个学习模块的结果统一成一个最终的成果机器学习方法。其中每个单独的分类器称为基分类器。

Voting模型

根据基分类器的结果进行投票作为最终预测结果

代码
from sklearn.ensemble import VotingClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier

voting_clf = VotingCla]]></description><category></category></item><item><title><![CDATA[python小白之路：第十七章 决策树模型]]></title><link>https://blog.youkuaiyun.com/Gnos96/article/details/109079387</link><guid>https://blog.youkuaiyun.com/Gnos96/article/details/109079387</guid><author>Gnos96</author><pubDate>Wed, 14 Oct 2020 17:37:38 +0800</pubDate><description><![CDATA[决策树
1 什么是决策树
生活中我们经常会遇到需要进行决策的事情，而在得到最终决定的过程中，我们通过一些策略或方法来进行判断，并不断思考，最终得到一个判断或结论。
决策树是一种树形结构，可以把我们进行决策的过程直观表示出来。从根结点出发，自上而下，对样本数据进行分类，其中内部结点表示一个特征或属性，叶结点代表着最终样本被归到的某一个类别。
1.1 栗子
假设HR筛选简历以年龄(中年、青年)、学历(本科、研究生、博士)、工作经验(无、0~3年、3年以上)、写代码(会、不会)来决定是否面试。
根据以上这个假设，]]></description><category></category></item><item><title><![CDATA[python小白之路：第十六章 逻辑回归模型（二）]]></title><link>https://blog.youkuaiyun.com/Gnos96/article/details/109079362</link><guid>https://blog.youkuaiyun.com/Gnos96/article/details/109079362</guid><author>Gnos96</author><pubDate>Wed, 14 Oct 2020 17:35:14 +0800</pubDate><description><![CDATA[分类模型的评估指标
在构建完模型后，还会存在着参数的设定、特征的选取或者算法的优劣等带来的问题，进而影响模型的效果。同时，由于我们构建模型的目的和需求不同，有时候不能简单的以一个方面去评估模型的好坏，因此，存在着评价模型的一系列指标，这些指标从不同方面评估模型。
1 混淆矩阵(Confusion Matrix)
混淆矩阵能够比较全面的反映模型的性能，由它能够得到一些指标。
二分类结果混淆矩阵如下所示：




右测为真实情况，下面为预测结果
正例(Positive)
反例(Negative)




正例
]]></description><category></category></item><item><title><![CDATA[python小白之路：第十六章 逻辑回归模型（一）]]></title><link>https://blog.youkuaiyun.com/Gnos96/article/details/109079253</link><guid>https://blog.youkuaiyun.com/Gnos96/article/details/109079253</guid><author>Gnos96</author><pubDate>Wed, 14 Oct 2020 17:34:09 +0800</pubDate><description><![CDATA[逻辑回归 Logistic Regression
1 原理
1.1 分类问题
目标是面对某种事物，估计它的可能性，判断属于哪种已知的样本类，比如买不买某种东西、是不是垃圾邮件等。类别的数量可以有很多，所以按数量可以分为二分类(binary classification)和多元分类(multiclass classification)。但是对于多分类问题也可以通过OvR、OvO等一些策略方法转为二分类问题。
1.1.1 OvR(One vs Rest)
一对剩余的所有，也可能叫OvA。总之思路就是假如有四个类]]></description><category></category></item><item><title><![CDATA[python小白之路：第十五章 线性回归模型-K折交叉验证]]></title><link>https://blog.youkuaiyun.com/Gnos96/article/details/109079038</link><guid>https://blog.youkuaiyun.com/Gnos96/article/details/109079038</guid><author>Gnos96</author><pubDate>Wed, 14 Oct 2020 17:30:27 +0800</pubDate><description><![CDATA[K-fold Cross Validation K折交叉验证
1.思路
假设有n个观测值，即训练集数据为n，将其均分为K组。其中，K-1组子集作为训练集来训练模型，用剩余的那一组子集作为验证集来计算预测误差。重复以上过程，直到每个子集都做过一次验证集，即得到了K次的预测误差。将K次的预测误差取平均得到一个交叉验证误差，用K个模型最终的验证集的分类准确率的平均数作为此次K-CV下分类器的性能指标。
2.目的
2.1 拟合(fitting)
我们希望能够把数据点用光滑曲线连接起来，找到合适的函数表示曲线。
2.]]></description><category></category></item><item><title><![CDATA[python小白之路：第十九章 Boosting模型（二）]]></title><link>https://blog.youkuaiyun.com/Gnos96/article/details/109078957</link><guid>https://blog.youkuaiyun.com/Gnos96/article/details/109078957</guid><author>Gnos96</author><pubDate>Wed, 14 Oct 2020 17:20:49 +0800</pubDate><description><![CDATA[提升树模型(Boosting Decision Tree,BDT)

以决策树为基函数的提升方法。
对于分类问题的决策树是二叉分类树；对于回归问题是二叉回归树。
一个根结点直接连两个叶结点的简单决策树称为决策树桩。

1 算法

前向分步算法+加法模型
针对不同问题，损失函数有所不同

第m步模型：
fm(x)=fm−1(x)+T(xi;Θm)
f_m(x)=f_{m-1}(x)+T(x_i;\Theta_m)
fm​(x)=fm−1​(x)+T(xi​;Θm​)
参数Θm\Theta_mΘm​:
Θ^m=]]></description><category></category></item><item><title><![CDATA[python小白之路：第十九章 Boosting模型（一）]]></title><link>https://blog.youkuaiyun.com/Gnos96/article/details/109077690</link><guid>https://blog.youkuaiyun.com/Gnos96/article/details/109077690</guid><author>Gnos96</author><pubDate>Wed, 14 Oct 2020 16:42:27 +0800</pubDate><description><![CDATA[Boosting(提升)

集成学习的一种方法。相比于bagging的并行式，boosting是序列式或者串行的方式，各个基分类器间有依赖关系。
类似于我们人类的学习方式。在学习一些知识的过程中，通过某种方式比如月考期中期末考试，有些知识点我们确认已经较为掌握，可有的知识点我们通过测验发现做错了，自己掌握的并不好，因此，会着重去练习犯错的知识点，以期降低错误率。
对于原始训练集，第一次我们训练了一个弱学习器1，统计了错误的情况，即这次训练的效果。根据这次的效果，给予犯错误的样本更高的权重，得到第二次训练的数]]></description><category></category></item><item><title><![CDATA[python小白之路：第五章 模块、包与库 第五节 异常处理]]></title><link>https://blog.youkuaiyun.com/Gnos96/article/details/107023358</link><guid>https://blog.youkuaiyun.com/Gnos96/article/details/107023358</guid><author>Gnos96</author><pubDate>Mon, 29 Jun 2020 16:44:41 +0800</pubDate><description><![CDATA[异常处理

非正常，没有达到预期目标；


是一个事件，并且这个事件在我们程序的运行过程中出现，会影响程序的正常运行。


两种: 1.语法错误导致的异常； 2.逻辑错误导致的异常


常见异常类 ： 网上都有


如何处理：
如果错误发生的情况可以预知，那么就可以使用流程控制进行预防处理
如果错误发生的情况不可预知，那么可以用try…except…在错误发生时进行处理

tey except用法
1.不指定错误类型，只要发生就进入except：
 try:
     # 可能发生异常错误的代码
     ]]></description><category></category></item><item><title><![CDATA[python小白之路：第五章 模块、包与库 第四节 第三方库和虚拟环境初识]]></title><link>https://blog.youkuaiyun.com/Gnos96/article/details/107023322</link><guid>https://blog.youkuaiyun.com/Gnos96/article/details/107023322</guid><author>Gnos96</author><pubDate>Mon, 29 Jun 2020 16:39:15 +0800</pubDate><description><![CDATA[第三方库的管理 pip

pip就是python的包管理工具，可以方便的管理第三方库（包）


使用：pip install 包名（库名）
注：如果有多个python环境的情况下，可能需要使用pip3

虚拟环境 venv

在当前的系统环境中，去配置另外一个python的运行环境，可以创建多个不同的虚拟环境，相互独立，互不影响


可以在没有权限的情况下安装新的库


不同的应用可以使用不同的库或版本


虚拟环境中的库升级也不影响其他环境


可以作为一个项目的专有环境，在需要部署时，一键导出项目的所需]]></description><category></category></item><item><title><![CDATA[python小白之路：第五章 模块、包与库 第三节 模块与包]]></title><link>https://blog.youkuaiyun.com/Gnos96/article/details/107023239</link><guid>https://blog.youkuaiyun.com/Gnos96/article/details/107023239</guid><author>Gnos96</author><pubDate>Mon, 29 Jun 2020 16:38:10 +0800</pubDate><description><![CDATA[自定义模块的使用

自己创建一个python脚本，定义一些类或方法，供别的脚本导入后使用

自定义包和使用
1.包

可以理解为一个文件夹，里面包含了多个python文件

2.包的结构
&gt; 包（文件夹）
 |---------__init__.py          包的标志性文件，可以有内容也可以没有
 |---------a.py                 a模块（文件）
 |---------子包                 文件夹中的文件夹 这么理解
 |---------|---]]></description><category></category></item><item><title><![CDATA[python小白之路：第五章 模块、包与库 第二节 内置模块]]></title><link>https://blog.youkuaiyun.com/Gnos96/article/details/107022740</link><guid>https://blog.youkuaiyun.com/Gnos96/article/details/107022740</guid><author>Gnos96</author><pubDate>Mon, 29 Jun 2020 16:32:43 +0800</pubDate><description><![CDATA[序列化

可以把python中的数据，以文本或二进制的方式进行转换，并且还能反序列化为原来的数据。

1.二进制序列化模块pickle
 import pickle


一些函数：

pickle.dumps()

序列化，可以把一个python的任意对象序列化成为一个二进制

pickle.loads()

反序列化，可以把一个序列化后的二进制数据反序列化为python的对象

pickle.dump(vars,file=)

序列化，可以把一个数据对象进行序列化并写入到文件中

pickle.load(]]></description><category></category></item><item><title><![CDATA[python小白之路：第五章 模块、包与库 第一节 文件]]></title><link>https://blog.youkuaiyun.com/Gnos96/article/details/107022552</link><guid>https://blog.youkuaiyun.com/Gnos96/article/details/107022552</guid><author>Gnos96</author><pubDate>Mon, 29 Jun 2020 16:20:02 +0800</pubDate><description><![CDATA[基础操作

file : 存储在磁盘中，针对磁盘中的文件的读写


操作步骤：打开文件open（）、读写文件read/write()、关闭文件close()

open()打开文件
1.语法

open（文件的路径，打开的方式，[字符集]）


文件的路径：URL 统一资源定位符

  a.相对路径：给别人指路，有参照物 ：’./‘ 当前目录; ’../‘ 当前目录上一级目录
  
  b.绝对路径：收货地址，无参照物直接给地址信息


打开的方式：基础模式 w r x a   扩展模式 b +

  w ]]></description><category></category></item><item><title><![CDATA[python小白之路：第四章数据类型第五节集合]]></title><link>https://blog.youkuaiyun.com/Gnos96/article/details/106773112</link><guid>https://blog.youkuaiyun.com/Gnos96/article/details/106773112</guid><author>Gnos96</author><pubDate>Mon, 15 Jun 2020 22:58:59 +0800</pubDate><description><![CDATA[集合的基本操作和常规操作
1.定义

确定的一组无序的数据的集合，值不能重复
语法：{}、set()、集合推导式
False和0只能存在一个，True和1只能存在一个
列表放不进去

2.冰冻集合

v = frozenset（）
一旦定义不能修改，只能做运算
本身就是一个强制转换类的函数，可以把其他任何容器类型的数据转为冰冻集合

3.集合推导式
    # 普通推导式
    varset ={1,2,3,4}
    newset = {i&lt;&lt;1 for i in varset}
    ]]></description><category></category></item><item><title><![CDATA[python小白之路：第四章数据类型第四节字典]]></title><link>https://blog.youkuaiyun.com/Gnos96/article/details/106773084</link><guid>https://blog.youkuaiyun.com/Gnos96/article/details/106773084</guid><author>Gnos96</author><pubDate>Mon, 15 Jun 2020 22:54:42 +0800</pubDate><description><![CDATA[字典
相关函数
len()

返回列表元素个数。

vard = {'a':1,'b':2}
print(len(vard))
# 2

str() &amp; type()

强制转换为字符串


查询数据类型

 vard = {'a': 1 ,'b':2}
    res = str(vard)
    print(res,type(res))
    # {'a': 1, 'b': 2} &lt;class 'str'&gt;

dict.clear()

用于删除字典内所有元素。

 vard =]]></description><category></category></item><item><title><![CDATA[python小白之路：第四章数据类型第三节元组]]></title><link>https://blog.youkuaiyun.com/Gnos96/article/details/106773039</link><guid>https://blog.youkuaiyun.com/Gnos96/article/details/106773039</guid><author>Gnos96</author><pubDate>Mon, 15 Jun 2020 22:52:36 +0800</pubDate><description><![CDATA[元组
函数:
len()

返回元组元素个数。

res = 1,2,3
print(len(res))
# 3

max() &amp; min()

返回元组元素中最大和最小值

res = 1,2,3
print(max(res))
print(min(res))
# 3
# 1

tuple()

转换为元组

res = tuple('123')
print(res)
# ('1', '2', '3')

元组推导式:

语法 ： （变量运算 for in 容器）


返回的是生成器

生成器  ]]></description><category></category></item><item><title><![CDATA[python小白之路：第四章数据类型第二节列表]]></title><link>https://blog.youkuaiyun.com/Gnos96/article/details/106773006</link><guid>https://blog.youkuaiyun.com/Gnos96/article/details/106773006</guid><author>Gnos96</author><pubDate>Mon, 15 Jun 2020 22:50:01 +0800</pubDate><description><![CDATA[len()

重点记忆


返回列表元素个数。

varl  = [1,2,3]
print(len(varl))
# 3

max()

返回列表元素中的最大值。

varl  = [1,2,3]
print(max(varl))
# 3

min()

返回列表元素中的最小值。

varl  = [1,2,3]
print(min(varl))
# 1

list()

重点记忆


用于将元组或字符串转换为列表。

str = '123'
vart = (1,2,3)
print(list(str))]]></description><category></category></item><item><title><![CDATA[python小白之路：第四章数据类型第一节详解字符串]]></title><link>https://blog.youkuaiyun.com/Gnos96/article/details/106772899</link><guid>https://blog.youkuaiyun.com/Gnos96/article/details/106772899</guid><author>Gnos96</author><pubDate>Mon, 15 Jun 2020 22:47:34 +0800</pubDate><description><![CDATA[capitalize()

返回原字符串的副本，将字符串的第一个字母变成大写,其他字母变小写

str = 'hello word'
print(str.capitalize())
# Hello word

center(width[,fillchar])

返回一个指定的宽度width居中的字符串，fillchar为填充的字符，默认为空格。

   str = 'hello word'
    print(str.center(15,'%'))
    # %%%hello word%%

ljust(]]></description><category></category></item><item><title><![CDATA[python小白之路：第三章函数第三节]]></title><link>https://blog.youkuaiyun.com/Gnos96/article/details/106423084</link><guid>https://blog.youkuaiyun.com/Gnos96/article/details/106423084</guid><author>Gnos96</author><pubDate>Fri, 29 May 2020 12:32:20 +0800</pubDate><description><![CDATA[内置函数

range():



功能 ：

能够生成一个指定的数列



参数 ：

start  开始的值，默认为0
stop   结束的值
step   可选，步进值，默认为1



返回值 ：

可迭代的对象，数字序列




zip() :



功能 ：

可以接收多个可迭代的对象，然后把每个可迭代对象中的第i个元素组合在一起成为一个元组，这些元组形成一个新的迭代器



参数 ：

*iterables   任意个的可迭代对象



返回值 ：

返回一个元组的迭代器



栗子 ：


	]]></description><category></category></item><item><title><![CDATA[python小白之路：第三章函数第二节]]></title><link>https://blog.youkuaiyun.com/Gnos96/article/details/106423030</link><guid>https://blog.youkuaiyun.com/Gnos96/article/details/106423030</guid><author>Gnos96</author><pubDate>Fri, 29 May 2020 12:28:01 +0800</pubDate><description><![CDATA[高阶函数

递归函数 ：


定义了一个函数。然后在函数内。自己调用了自己这个函数。
递归函数内必须要有结束，不然会一直调用下去
一层一层的进入，再一层一层的返回

	 def digui(num) :
	         print(num)
	         if num&gt;0:
	            digui(num-1)
	         print(num)

     结果：
     3
     2
     1
     0
     0
     1
     2
    ]]></description><category></category></item></channel></rss>