ML之PLiR之LARS:利用LARS算法求解ElasticNet回归类型问题(实数值评分预测)

简介: ML之PLiR之LARS:利用LARS算法求解ElasticNet回归类型问题(实数值评分预测)

设计思路


更新……




输出结果


['"alcohol"', '"volatile acidity"', '"sulphates"', '"total sulfur dioxide"', '"chlorides"', '"fixed acidity"', '"pH"', '"free sulfur dioxide"', '"citric acid"', '"residual sugar"', '"density"']


1、LARS




2、10-fold cross validation


Minimum Mean Square Error 0.5873018933136459

Index of Minimum Mean Square Error 311


image.png



实现代码

#initialize a vector of coefficients beta

beta = [0.0] * ncols

#initialize matrix of betas at each step

betaMat = []

betaMat.append(list(beta))

#number of steps to take

nSteps = 350

stepSize = 0.004

nzList = []

for i in range(nSteps):

   #calculate residuals

   residuals = [0.0] * nrows

   for j in range(nrows):

       labelsHat = sum([xNormalized[j][k] * beta[k] for k in range(ncols)])

       residuals[j] = labelNormalized[j] - labelsHat

   #calculate correlation between attribute columns from normalized wine and residual

   corr = [0.0] * ncols

   for j in range(ncols):

       corr[j] = sum([xNormalized[k][j] * residuals[k] for k in range(nrows)]) / nrows

   iStar = 0

   corrStar = corr[0]

   for j in range(1, (ncols)):

       if abs(corrStar) < abs(corr[j]):

           iStar = j; corrStar = corr[j]

   beta[iStar] += stepSize * corrStar / abs(corrStar)

   betaMat.append(list(beta))

   nzBeta = [index for index in range(ncols) if beta[index] != 0.0]

   for q in nzBeta:

       if (q in nzList) == False:

           nzList.append(q)

nameList = [names[nzList[i]] for i in range(len(nzList))]

print(nameList)

for i in range(ncols):

   #plot range of beta values for each attribute

   coefCurve = [betaMat[k][i] for k in range(nSteps)]

   xaxis = range(nSteps)

   plot.plot(xaxis, coefCurve)



相关文章
|
7月前
|
算法 前端开发 调度
贪心算法适用于解决什么类型的问题?
贪心算法适用于解决什么类型的问题?
341 1
|
7月前
|
算法 Shell
通信系统中ZF,ML,MRC以及MMSE四种信号检测算法误码率matlab对比仿真
通信系统中ZF,ML,MRC以及MMSE四种信号检测算法误码率matlab对比仿真
|
算法 测试技术 C#
C++前缀和算法应用:矩形区域不超过 K 的最大数值和
C++前缀和算法应用:矩形区域不超过 K 的最大数值和
|
4月前
|
负载均衡 NoSQL 算法
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
这篇文章是关于Java面试中Redis相关问题的笔记,包括Redis事务实现、集群方案、主从复制原理、CAP和BASE理论以及负载均衡算法和类型。
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
|
17天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于深度学习网络的宝石类型识别算法matlab仿真
本项目利用GoogLeNet深度学习网络进行宝石类型识别,实验包括收集多类宝石图像数据集并按7:1:2比例划分。使用Matlab2022a实现算法,提供含中文注释的完整代码及操作视频。GoogLeNet通过其独特的Inception模块,结合数据增强、学习率调整和正则化等优化手段,有效提升了宝石识别的准确性和效率。
|
6月前
|
算法
数据结构和算法学习记录——线性表之双向链表(上)-结点类型定义、初始化函数、创建新结点函数、尾插函数、打印函数、尾删函数
数据结构和算法学习记录——线性表之双向链表(上)-结点类型定义、初始化函数、创建新结点函数、尾插函数、打印函数、尾删函数
55 0
|
4月前
|
数据采集 前端开发 算法
基于朴素贝叶斯算法的新闻类型预测,django框架开发,前端bootstrap,有爬虫有数据库
本文介绍了一个基于Django框架和朴素贝叶斯算法开发的新闻类型预测系统,该系统具备用户登录注册、后台管理、数据展示、新闻分类分布分析、新闻数量排名和新闻标题预测等功能,旨在提高新闻处理效率和个性化推荐服务。
|
6月前
|
存储 机器学习/深度学习 算法
使用决策树算法预测隐形眼镜类型
使用决策树算法预测隐形眼镜类型
48 2
|
6月前
|
机器学习/深度学习 分布式计算 算法
在机器学习项目中,选择算法涉及问题类型识别(如回归、分类、聚类、强化学习)
【6月更文挑战第28天】在机器学习项目中,选择算法涉及问题类型识别(如回归、分类、聚类、强化学习)、数据规模与特性(大数据可能适合分布式算法或深度学习)、性能需求(准确性、速度、可解释性)、资源限制(计算与内存)、领域知识应用以及实验验证(交叉验证、模型比较)。迭代过程包括数据探索、模型构建、评估和优化,结合业务需求进行决策。
64 0
|
6月前
|
存储 算法
数据结构和算法学习记录——特殊线性表之队列-队列的概念、队列结构体类型定义 、基本接口函数、初始化函数、销毁队列函数、入队列函数、判断队列是否为空、出队列函数、读取队头队尾的数据 、计算队列数据个数
数据结构和算法学习记录——特殊线性表之队列-队列的概念、队列结构体类型定义 、基本接口函数、初始化函数、销毁队列函数、入队列函数、判断队列是否为空、出队列函数、读取队头队尾的数据 、计算队列数据个数
49 0