100天搞定机器学习
文章平均质量分 61
这是github一个开源项目,作者是Avik Jain,内容是从机器学习的基础概念起步,逐层递进,很适合初学者。截至到现在,已经有近16000多的star。为了学习ML的实战技巧,跟着这个开源项目学习了一段时间,并贡献了一点issues。
带着小板凳学习
一生中总会遇到这样的时候:你的内心已经兵荒马乱翻天覆地了,可是你在别人看来只是比平常时沉默了一点,没有人会觉得奇怪。这样的战争注定单枪匹马。
展开
-
最大似然损失与最小化交叉熵损失的异曲同工之妙
一、逻辑回归与softmax回归在逻辑回归问题中,我们使用sigmoid函数将线性模型的连续值映射到0~1的区间上,设置一定的阈值(二分类问题,大于阈值设置为1,小于阈值设置为0),从而得到某个类别的概率。如果将这个问题泛化,推广到多分类问题上(如图片的多分类),我们可以使用softmax函数将其输出单元从一个变成多个。1.sigmoid函数sigmoid函数是个很漂亮的S形,其作用可...原创 2020-05-07 22:14:57 · 2935 阅读 · 0 评论 -
kaggle经典比赛总结(一)Stacked Regressions to predict House Prices
kaggle经典比赛优秀社区总结:Stacked Regressions to predict House Prices本文主要讲述特征工程和Stacking回归模型,可以说本文是新手入kaggle必经历的过程。本篇文章主要讲述上如何在数据集上进行特征工程,然后使用sklearn的基础模型加上xgboost和lightGBM进行集成,目的是能够使得线性模型有很好鲁棒性,最终达到一个很好的预测效...原创 2019-11-17 21:04:29 · 2190 阅读 · 0 评论 -
100天搞定机器学习(100-Days-Of-ML)(十八)K-means聚类
第十八天K-means聚类无监督学习(Unsupervised Learning),顾名思义,就是不受监督的学习,一种自由的学习方式。该学习方式不需要先验知识进行指导,而是不断地自我认知,自我巩固,最后进行自我归纳,在机器学习中,无监督学习可以被简单理解为不为训练集提供对应的类别标识(label)。K-means聚类是一种典型的无监督学习模型。本章使用一些真实的地理位置来进行k-mean...原创 2019-04-06 12:21:32 · 301 阅读 · 0 评论 -
100天搞定机器学习(100-Days-Of-ML)(十七)Pandas处理缺失值
第十七天Pandas处理缺失值大多数教程里使用的数据与现实工作中的数据的区别在于后者很少是干净整齐的,许多流行的数据集都会有数据缺失的现象。如何处理这些缺失值对模型的训练有着重要的作用。下面学习一些处理缺失值的通用规则,Pandas对缺失值的表现形式,以及Pandas自带的几个处理缺失值的工具的用法。一、选择处理缺失值的方法在数据表或DataFrame中有很多识别缺失值的方法。一般情况下...原创 2019-03-17 17:55:20 · 337 阅读 · 0 评论 -
100天搞定机器学习(100-Days-Of-ML)(十六)Pandas数值运算方法
第十六天Pandas数值运算方法Numpy的基本功能之一是快速对每个元素进行运算,即包括基本算术,也包括更复杂的运算。Pandas继承了Numpy的功能。但是Pandas也实现了一些高效技巧:对于一元运算(像函数与三角函数),这些通用函数将在输出结果中保留索引和列标签;而对于二元运算(如加法和乘法),Pandas 在传递通用函数时会自动对齐索引进行计算。这就意味着,保存数据内容与组合不同来源...原创 2019-03-17 17:53:42 · 321 阅读 · 0 评论 -
100天搞定机器学习(100-Days-Of-ML)(十五)Pandas数据取值与选择
第十五天Pandas数据取值与选择在前面介绍了获取、设置、调整Numpy数组数值的方法,包括取值操作、切片操作、掩码操作、花哨的索引以及组合操作。下面介绍Pandas的Series 和DataFrame 对象相似的数据获取与调整操作。一、Series数据选择如前所述,Series 对象与一维NumPy 数组和标准Python 字典在许多方面都一样。只要牢记住这两个类比,就可以帮助我们更好地...原创 2019-03-17 17:52:06 · 226 阅读 · 0 评论 -
100天搞定机器学习(100-Days-Of-ML)(十四)Pandas简介
第十四天接下来学习Pandas工具。Pandas是在Numpy基础上建立的新程序库,提供了一种高效的DataFrame数据结构。DataFrame本质上是一种带有行标签和列标签、支持相同类型数据和缺失值的多维数组。Pandas不仅为带各种标签的数据提供了便利的存储界面,还实现了许多强大的操作。尤其它的Series和DataFrame对象,为数据我们处理那些消耗大量时间的数据清理任务提供了捷...原创 2019-02-24 11:25:42 · 241 阅读 · 0 评论 -
100天搞定机器学习(100-Days-Of-ML)(十三)随机森林
第十三天随机森林随机森林是有监督学习的集成学习模型,主要用于分类和回归。随机森林集成了很多的决策树模型,然后将其每颗树的预测结果组合以获得更加准确和稳定的预测结果。第一步:导入库并加载数据集import numpy as npimport pandas as pddataset = pd.read_csv('../datasets/Socail_Network_Ads...原创 2019-02-17 22:32:48 · 269 阅读 · 0 评论 -
100天搞定机器学习(100-Days-Of-ML)(十二)决策树
第十二天决策树决策树是一种有监督学习算法,主要用于分类问题,适用于可分类的、连续的输入和输出变量。 第一步:导入库并加载数据集import numpy as npimport pandas as pddataset = pd.read_csv('E:/dataset/Social_Network_Ads.cs')X = dataset.iloc[ : , [2,...原创 2019-02-10 21:33:10 · 323 阅读 · 0 评论 -
100天搞定机器学习(100-Days-Of-ML)(十一)Numpy数组的排序
第十一天Numpy数组的排序前面我们关注了用Numpy获取和操作数组。下面介绍用于排序Numpy数组的相关算法。这些算法也是计算机科学类课程非常喜欢的话题。比如插入排序、归并排序、快速排序、冒泡排序等。这些方法的任务:对一个列表或者数组进行排序。1.Numpy快速排序Python有内置的sort和sorted函数可以对列表进行排序,但是Numpy的sort函数实际上效率会更高。默认...原创 2019-01-27 15:39:10 · 254 阅读 · 0 评论 -
100天搞定机器学习(100-Days-Of-ML)(十)Numpy数组布尔掩码和花哨的索引
第十天Numpy数组布尔掩码和花哨的索引当你想基于默写准则来抽取、修改、计数或对一个数组中的值进行其他操作时,掩码就可以派上用场了。例如你可能希望统计数组中有多少值大于某一个给定值,或者删除所有超出某些阈值的异常点。在Numpy中,布尔掩码通常是完成这类任务的最高效方式。一、操作布尔数组通用函数中,我们看到+,-,*,/等一些运算符实现了数组的逐元素操作。Numpy还实现了<...原创 2019-01-19 23:43:27 · 539 阅读 · 0 评论 -
100天搞定机器学习(100-Days-Of-ML)(九)Numpy聚合和广播
第九天Numpy聚合和广播一、Numpy聚合函数当你面对大量的数据时,第一个步骤通常是计算相关数据的概括统计值。最常用的概括统计值可能是均值和标准差,这两个值能让你分别概括出数据集中的“经典”值,但是其他一些形式的聚合也是非常有用的(如求和、乘积、中位数、最小值和最大值、分位数等等)。1.数组值求和import numpy as npL = np.random.random...原创 2019-01-13 20:46:04 · 301 阅读 · 0 评论 -
100天搞定机器学习(100-Days-Of-ML)(八)Numpy数组通用函数
第八天Numpy数组通用函数Numpy数组的计算有时非常快,有时也非常慢。使Numpy数组变快的关键是利用向量化操作,通常是在Numpy的通用函数(ufunc)中实现。一、一般通用函数:通用函数有两种存在形式:一元通用函数(unary ufunc)对单个输入操作,二元通用函数(binary ufunc)对两个输入操作。1.数组的运算Numpy通用函数得到使用方式非常自然,因...原创 2019-01-12 20:46:00 · 316 阅读 · 3 评论 -
100天搞定机器学习(100-Days-Of-ML)(七)Numpy数组基础
第七天Numpy的学习(一)数组基础Python中的数据操作几乎等同于Numpy数据操作,甚至Pandas工具也是构建在Numpy数组的基础之上的。一、从Python列表创建数组1.首先,可以用np.array从Python列表创建数组:import numpy as npnp.array([1, 4, 2, 5, 3])Numpy创建数组要求必须包含同一类型的数据。如...原创 2019-01-05 20:42:43 · 328 阅读 · 1 评论 -
100天搞定机器学习(100-Days-Of-ML)(六)支持向量机SVM
第六天:支持向量机SVM支持向量机SVM是一个有监督的机器学习算法,它可用于分类和回归分析,最主要是用再分类问题中。在这个算法中,根据特征值,构建一个n维空间(其中n即是特征数量),把每个数据点投影到此空间内。通过查找一个超平面,把数据区分成两类。换句话说,算法输出一个最佳超平面,用于数据分类。对于SVM来说,它指的是距离两类数据最远的一个超平面,即是此超平面到最近元素的距离最远。 ...原创 2018-12-23 21:04:12 · 430 阅读 · 0 评论 -
100天搞定机器学习(100-Days-Of-ML)(五)KNN
第五天:KNNK近邻算法是一种简单但也是常用的分类算法,它也可以用于回归计算。KNN是无参数学习(这意味着它不会对底层数据的分布做出任何假设),它是基于实例(意味着我们的算法没有显示地学习模型,相反,它选择的是记忆训练实例)并在一个有监督的学习环境中使用。第一步:导入库import numpy as npimport pandas as pd第二步:加载数据集数据集同第...原创 2018-12-14 22:36:31 · 562 阅读 · 0 评论 -
100天搞定机器学习(100-Days-Of-ML)(四)逻辑回归
第四天:逻辑回归逻辑回归被用来处理不同的分类问题,看名字是回归模型实际上是分类模型,这里的目的是预测当前被观察的对象属于什么类别。逻辑回归模型会提供一个离散的输出结果。一个简单的例子是判断一封邮件是否是垃圾邮件。第一步:处理数据集数据集:该数据集包含了社交网络中的用户的信息,如用户id,性别,年龄,薪水。现在有一个汽车公司发布一款新的比较奢侈的SUV车,我们的任务就是根据这些信息预...原创 2018-12-09 20:38:38 · 1165 阅读 · 2 评论 -
100天搞定机器学习(100-Days-Of-ML)(三)多元线性回归
第三天:多元线性回归对比第二天的简单线性回归,多元线性回归包括两个及两个以上的变量。第一步:导入必要的库并加载数据集数据集如下:import pandas as pdimport numpy as np--------------------dataset = pd.read_csv('E:/dataset/50_Startups.csv')X = dataset...原创 2018-12-02 16:21:56 · 706 阅读 · 0 评论 -
100天搞定机器学习(100-Days-Of-ML)(二)简单线性回归
第二天:简单线性回归这里使用单一特征来建立线性回归模型用来预测y=b0+b1x,在这个回归任务中,我们使用单一变量x来预测y,然后通过找到最佳拟合线来最小化预测误差。本实例中我们将根据一个学生所学习的小时数来预测他的分数。第一步:导入库、加载数据集和划分数据集数据集如下:import pandas as pdimport numpy as npimport matpl...原创 2018-11-20 22:25:10 · 486 阅读 · 0 评论 -
100天搞定机器学习(100-Days-Of-ML)(一)数据预处理
这是github一个开源项目,作者是Avik Jain,内容是从机器学习的基础概念起步,逐层递进,很适合初学者。github地址是https://github.com/Avik-Jain/100-Days-Of-ML-Code。截至到现在,已经有近16000多的star。为了学习ML的实战技巧,跟着这个开源项目学习了一段时间,并贡献了一点issues。现在将自己的学习过程总结起来,仅供以后参考...原创 2018-11-17 20:48:53 · 1129 阅读 · 0 评论