郑捷《机器学习算法原理与编程实践》学习笔记(第七章预测技术与哲学)7.3岭回归

金秀 金秀     2022-08-23     502

关键词:

7.3 岭回归

7.3.1 验证多重共线性

7.3.2 岭回归理论

7.3.3 岭际分析

7.3.4 k值的判断

7.3.5 辅助函数

 (1)导入多维数据集:加载数据集

def loadDataSet(filename):
    numFeat    = len(open(filename).readline().split(	))-1#get number of fields
    dataMat    = []
    labelMat   = []
    fr         = open(filename)
    for line in fr.readlines():
        lineArr = []
        curLine = line.strip().split(	)
        for i in range(numFeat):
            lineArr.append(float(curLine[i]))
        dataMat.append(lineArr)
        labelMat.append(float(curLine[-1]))
    return dataMat,labelMat

(2)标准化矩阵数据集

 

#标准化数据集
def normData(xArr,yArr):
    xMat = mat(xArr)
    yMat = mat(yArr).T
    yMean = mean(yMat,0)
    xMean = mean(xMat,0)
    ynorm = yMat - yMean
    xVar  = var(xMat,0)
    xnorm = (xMat-xMean)/xVar
    return xnorm,ynorm

 (3)绘制图形

def scatterplot(wMat,k):#绘制图形
    fig = plt.figure()
    ax  = fig.add_subplot(111)
    wMatT = wMat.T
    m,n   = shape(wMatT)
    for i in xrange(m):
        ax.plot(k,wMatT[i,:])
        ax.annotate("feature["+str(i)+"]",xy = (0,wMatT[i,0]),color = black)
    plt.show()

 7.3.6 岭回归实现与K值确定

#前8列为Arr,后1列为yArr
xArr,yArr = loadDataSet(abalone.txt)
xMat,yMat = normData(xArr,yArr) #标准化数据集

Knum      = 30 #确定k的迭代次数
wMat      = zeros((Knum,shape(xMat)[1]))
klist     = zeros((Knum,1))
for i in xrange(Knum):
    k = float(i)/500  #算法的目的是确定k的值
    klist[i] = k      #k值列表
    xTx      = xMat.T*xMat
    denom    = xTx + eye(shape(xMat)[1])*k
    if linalg.det(denom) == 0.0:
        print "This matrix is singular,connot do inverse"
        sys.exit(0)
    ws = linalg.inv(denom) * (xMat.T*yMat)
    wMat[i,:] = ws.T
print klist
scatterplot(klist,klist)
scatterplot(wMat,klist)

 

 

 

 

参考资料:郑捷《机器学习算法原理与编程实践》 仅供学习研究

郑捷《机器学习算法原理与编程实践》学习笔记(第四章推荐系统原理)kmeans

(上接第二章)  4.3.1KMeans算法流程  算法的过程如下:  (1)从N个数据文档随机选取K个文档作为质心  (2)对剩余的每个文档测量其到每个质心的距离,并把它归到最近的质心的类  (3)重新计算已经得到的各... 查看详情

郑捷《机器学习算法原理与编程实践》学习笔记(第六章神经网络初步)6.5boltzmann机算法

6.5Boltzmann机算法6.5.1问题的提出6.5.2模拟退化原理6.5.3Boltzmann分布与退火过程6.5.4Boltzmann机类与退火过程   Boltzmann网络初始时,需要根据参数设置一系列的初始值,主要参数在_init_中  (1)构造方法如下classBoltzmannNet(object... 查看详情

郑捷《机器学习算法原理与编程实践》学习笔记(第二章中文文本分类—朴素贝叶斯算法)

(上接第二章)  2.3分类算法:朴素贝叶斯  2.3.1贝叶斯公式推导(略)  分类的流程:    第一阶段:训练数据生成训练样本集:TF-IDF  第二阶段:对每个类别计算p(yi)。  第三个阶段:对每个特征属性计算... 查看详情

郑捷《机器学习算法原理与编程实践》学习笔记(第三章决策树的发展)_scikit-learn与回归树

  (上接第三章)   3.4Scikit-Learn与回归树  3.4.1回归算法原理  在预测中,CART使用最小剩余方差(squaredResidualsMinimization)来判断回归时的最优划分,这个准则期望划分之后的子树与样本点的误差方差最小。这样决策... 查看详情

郑捷《机器学习算法原理与编程实践》学习笔记(第六章神经网络初步)6.3自组织特征映射神经网路(smo)

 具体原理网址:http://wenku.baidu.com/link?url=zSDn1fRKXlfafc_tbofxw1mTaY0LgtH4GWHqs5rl8w2l5I4GF35PmiO43Cnz3YeFrrkGsXgnFmqoKGGaCrylnBgx4cZC3vymiRYvC4d3DF3自组织特征映射神经网络(Self-OrganizingFeatureMap。也称Kohonen映 查看详情

机器学习之逐次下降法(机器学习算法原理与实践)郑捷

逐次下降法的定义:对于给定的方程组,使用公式:  其中k为迭代次数(k=0,1,2,…) 逐步代入求近似解的方法称为迭代法如果存在(记为),称此迭代法收敛,显然就是方程组的解,否则称此迭代法发散。研究的收敛... 查看详情

《机器学习算法原理与编程实践》学习笔记

(上接第一章)1.2对象、矩阵与矢量化编程1.2.1对象与维度(略)1.2.2初识矩阵(略)1.2.3矢量化编程与GPU运算(略)1.2.4理解数学公式与NumPy矩阵运算1.矩阵的初始化#coding:utf-8importnumpyasnp#导入NumPy包#创建3*5的全0矩阵和全1的矩阵my... 查看详情

《机器学习算法原理与编程实践》学习笔记

(上接第一章)1.2.5Linalg线性代数库  在矩阵的基本运算基础之上,NumPy的Linalg库可以满足大多数的线性代数运算。  .矩阵的行列式  .矩阵的逆  .矩阵的对称  .矩阵的秩  .可逆矩阵求解线性方程1.矩阵的行列式In[4... 查看详情

机器学习算法原理与编程实践之朴素贝叶斯分类

在介绍朴素贝叶斯分类之前,首先介绍一下大家都比较了解的贝叶斯定理,即已知某条件概率,如何得到两个时间交换后的概率,也就是在已知P(A|B)的情况下如何求得P(B|A)?可以通过如下公式求得:而朴素贝叶斯分类是一种简单... 查看详情

常用机器学习算法knn原理与实践

推荐两篇讲解与实践KNN比较好博客,感谢原作者总结http://blog.csdn.net/u012162613/article/details/41768407http://www.cnblogs.com/ybjourney/p/4702562.html 查看详情

机器学习算法与编程实践之中文文本分类

这周学习了机器学习算法与编程实践第二章——中文文本分类的部分内容。该章以文本挖掘为大背景,以文本分类算法为中心,详细介绍了中文文本分类项目的相关知识点。一、文本挖掘与文本分类的概念被普遍认可的文本挖掘... 查看详情

《深度卷积神经网络原理与实践》笔记第一章机器学习基础

...记(Version:1.0.2)整理作者:sq_csl第一章机器学习基础1.1机器学习概述1.1.1概念概念ML(MachineLearning)是一门发展了比较长时间的学科,其在发展过程中定义也发生了一些变化早期概念源于TomMit 查看详情

机器学习笔记_prml_adaboost算法的原理与推导

转自:http://blog.csdn.net/v_july_v/article/details/40718799 Adaboost算法的原理与推导 1Adaboost的原理1.1Adaboost是什么     AdaBoost,是英文"AdaptiveBoosting"(自适应增强)的缩写,由YoavFreund和Robert 查看详情

特征值与特征向量

取至:机器学习算法原理与编程实践(郑捷) #-*-coding:utf-8-*-#Filename:matrix05.pyimportoperatorfromnumpyimport*eps=1.0e-6#误差量#矩阵的特征值和特征向量A=mat([[8,1,6],[3,5,7],[4,9,2]])evals,evecs=linalg.eig(A)print"特征值:",evals,"\n 查看详情

《ros理论与实践》学习笔记机器人语音交互(代码片段)

《ROS理论与实践》学习笔记(七)机器人语音交互课程内容1.讯飞开放平台使用2.ROS语音识别与语音输出3.语音交互本讲作业结语在学习《ROS理论与实践》课程时,记录了学习过程中的编程练习,课后作业以及发现... 查看详情

学习笔记|机器学习决策树

文章目录一、算法原理二、基础知识1.自信息、信息熵与条件熵2.信息增益和增益率3.Gini值和Gini指数三、过拟合与剪枝四、连续值和缺失值处理1.连续值处理2.缺失值处理五、总结通过这篇博客,您将收获如下知识:熟悉决策树相... 查看详情

学习笔记|机器学习决策树

文章目录一、算法原理二、基础知识1.自信息、信息熵与条件熵2.信息增益和增益率3.Gini值和Gini指数三、过拟合与剪枝四、连续值和缺失值处理1.连续值处理2.缺失值处理五、总结通过这篇博客,您将收获如下知识:熟悉决策树相... 查看详情

阅读书单2020

...程序深入浅出密码学——常用加密技术原理与应用机器学习深入理解Java虚拟机:JVM高级特性与最佳实践HotSpot实战深入浅出promethuseElasticSearch源码解析与优化实践Tensorflow:实战Google深度学习框架深度学习原理与实践深度学... 查看详情