机器学习
文章平均质量分 92
一根吸管
数据分析自学之路
(所有内容都是个人的读书笔记,不供任何参考)
展开
-
决策树的简单应用(数据分析学习10)
继续进一步学习了决策树 记录了ID3 C4.5 CART等经典的算法。 引入了袋装法,boosting法,和随机森林法。 from sklearn.model_selection import KFold#K-FOLD优化所在的库 from sklearn.model_selection import cross_val_score#计算准确率所在的库 from sklearn.ensemble import BaggingClassifier#袋装集成算法所在的库 from sklearn.tree im转载 2020-11-05 09:16:04 · 242 阅读 · 0 评论 -
线性回归《机器学习实战》读书笔记(数据分析学习DAY9)
今天下午又补充学习了其他几个基本的线性回归算法 原理较为简单: def lwlr(testPoint, xArr, yArr, k=1.0):#高斯核权重调整局部加权线性回归 xMat = mat(xArr); yMat = mat(yArr).T m = shape(xMat)[0] weights = mat(eye((m)))#返回m*m,对角线元素为1,其余元素为0的矩阵 for j in range(m): diffMat = testPoint -原创 2020-11-03 16:11:12 · 713 阅读 · 0 评论 -
标准线性回归《机器学习实战》读书笔记(数据分析学习DAY9)
最近课业繁忙,留给自学机器学习的时间少了 今天学习了线性回归,这部分较为简单。无论是原理还是代码。 def standRegres(xArr, yArr): xMat = mat(xArr); yMat = mat(yArr).T xTx = xMat.T*xMat if linalg.det(xTx) == 0.0: print("This matrix is singular, cannot do inverse") return ws =原创 2020-11-03 14:36:33 · 98 阅读 · 0 评论 -
支持向量机《机器学习实战》读书笔记(数据分析学习DAY8)
今天把SMO的代码部分理解了一下,代码的理解不难,主要还是数学关系的推导。个人对于最优化方法的学习可能还远远不够。 代码和这位dalao的文章适配 https://blog.csdn.net/hx14301009/article/details/79762666 仔细阅读这位大佬的文章后确实受益匪浅。 def smoSimple(dataMatIn, classLabels, C, toler, maxIter): dataMatrix = mat(dataMatIn); labelMat = ma原创 2020-11-01 10:16:43 · 136 阅读 · 1 评论 -
支持向量机《机器学习实战》读书笔记(数据分析学习DAY7)
支持向量机的原理,以及优化目标函数的推导复杂了许多, 还涉及了松弛变量等我之前没有接触的新内容。 为了更好的理解原理,我计划用西瓜书再研读一边原理。 今日只做简单的准备函数工作: def loadDataSet(flieName): dataMat = []; labelMat = [] fr = open(fileName) for line in fr.readlines(): lineArr = line.strip().split('\t')原创 2020-10-29 10:56:10 · 82 阅读 · 0 评论 -
逻辑回归分类《机器学习实战》读书笔记(数据分析学习DAY6)
昨天和今天学完了逻辑回归。 逻辑回归和之前学习的几个机器学习方法有本质区别,第一次引入的最优化算法,逻辑回归中使用的是梯度算法,即使函数向变化(大或小)最快的方向改变。在逻辑回归中,改变的目标是函数各变量的系数,目标找到最优系数/ w := w - a 损失函数梯度f(w) 为了得到梯度,我们需要了解逻辑回归的损失函数,并对每个w(每个系数) 求偏导 最后我们可以得到逻辑函数的损失函数的梯度为 1/mXTerror 即各数据与误差相乘构成的向量 由此可以得到最优化权重。 import numpy as np原创 2020-10-28 10:37:19 · 128 阅读 · 0 评论 -
朴素贝叶斯预测《机器学习实战》读书笔记(数据分析学习DAY5)
今天完成了朴素贝叶斯预测的学习,其基本原理是利用条件概率进行预测 基本思路如下: 1.先生成一个库,库中包含了所有可能出现的元素。 2.库由先前的各种种类的对象构成,对象有种类和元素两种属性。 3.现在我们可以构建训练集,获取如下条件概率。 元素 i 在种类 J中出现的概率 实现过程为,计算种类J中出现的所有元素数量,以及元素i出现的数量,两者相除 表示为 P(i | J) 我们想要得到是,通过某一对象,出现的元素判断它属于哪一个种类 即计算各种类 P(J | i1,i2,i3…)的条件概率 (下用I表示)原创 2020-10-27 14:32:12 · 118 阅读 · 0 评论 -
决策树树建立《机器学习实战》读书笔记(数据分析学习DAY4)
今天学习了决策树的最后一部分。 基本树的建立用到了递归的思想,这个名词真的有些模糊了。本科期间数据结构的课是半蹭的,基本知识也忘了好多。后面金融数据的分析也用不到太多数据结构的思想。 虽然理解上没什么问题,但靠自己估计还是写不出来的。 代码如下 def majorityCnt(classList): classCount={} for vote in classList: if vote not in classCount.keys():classCount[vote] =原创 2020-10-26 10:38:46 · 104 阅读 · 0 评论 -
决策树数据集划分与选择《机器学习实战》读书笔记(数据分析学习DAY3)
昨天完成了信息熵的计算,今天继续完成决策树的学习 在决策树中,很重要的一点就是将数据分类成几块。 而分类需要考虑从物体特征的哪一点去分类,决定分类的特征称为特征值。 比如一个物体有6种属性,按6种属性可基础的拥有6种分类方法,但按照各分类方法实现的分类结果的好坏是不一样的。 信息熵就提供给我们一种很好地判断分类决策是否正确的判断依据。 即决策树的每一次分类,都希望能得到最规整的信息分类结果,即最小的信息熵。 实现代码如下,接昨天的代码: def splitDataSet(dataSet, axis, val原创 2020-10-24 10:20:48 · 145 阅读 · 0 评论 -
决策树信息熵计算《机器学习实战》读书笔记(数据分析学习DAY2)
今天课多,并且终于周五了 稍微学习一下休息了 今天开始学习决策树机器学习 第一部分为信息熵 其概念为 某信息出现的概率的以2为底的对数的期望 sigma ( pi * log(pi,2)) 其主要作用为帮助我判断特征值的优劣。 如某一特征值统一性高,则拥有较高的信息增益,可以当作此类的代表 具体代码如下: from math import log def calcshannonEnt (dataSet): numEntries = len(dataSet) #返回数据集中所含数据的数量 la原创 2020-10-23 21:55:51 · 157 阅读 · 0 评论 -
KNN算法实现《机器学习实战》读书笔记(数据分析学习DAY1)
学习的第一个机器学习算法为KNN算法 当然KNN算法可以通过sklearn库直接调用 但还是希望可以通过操作一边记住原理,以及顺便复习一些python的基础函数 本代码并非原创,摘选自《机器学习实战》的代码部分 但由于该书调用了部分python的自带函数 故并非可以一眼看懂,故做此读书笔记,用注释帮助自己理解。 from numpy import* import operator def createDataSet(): group = array([[1.0,1.1],[1.0,1.0],[0,0原创 2020-10-22 21:16:30 · 100 阅读 · 0 评论