《李宏毅机器学习》task3

李宏毅2020机器学习作业1——Linear Regression ————————————————————————————————————————————— 开始之前声明:本文参考了李宏毅机器学习作业说明. 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功... 阅读详情

待修改

'''读取数据'''
data = pd.read_csv('train.csv')   #DataFrame类型
del data['datetime']
del data['item']
'''整理训练集合'''
ItemNum=18
X_Train=[]        #训练样本features集合
Y_Train=[]        #训练样本目标PM2.5集合
for i in range(int(len(data)/ItemNum)):
    day = data[i*ItemNum:(i+1)*ItemNum] #一天的观测数据
    for j in range(15):
        x = day.iloc[:, j:j + 9]
        y = int(day.iloc[9,j+9])
        X_Train.append(x)
        Y_Train.append(y)

通过执行上面的Python代码,将3600个样本分别存入X_Train、Y_Train中。

'''小批量梯度下降'''
dict={0:8,1:8,2:8,3:8,4:8,5:8,6:8,7:8,8:8,9:9,10:9,11:9,12:9,13:9,14:9,15:9,16:9,17:9,18:12,19:12,20:12,21:12,22:12,23:12,24:12,25:12,26:12}
iteration_count = 10000   #迭代次数
learning_rate = 0.000001  #学习速率
b=0.0001    #初始化偏移项
parameters=[0.001]*27     #初始化27个参数
loss_history=[]
for i in range(iteration_count):
    loss=0
    b_grad=0
    w_grad=[0]*27
    examples=list(randint(0, len(X_Train)-1) for index in range(100))
    for j in range(100):
        index=examples.pop()
        day = X_Train[index]
        partsum = b+parameters[0]*day.iloc[8,0]+parameters[1]*day.iloc[8,1]+parameters[2]*day.iloc[8,2]+parameters[3]*day.iloc[8,3]+parameters[4]*day.iloc[8,4]+parameters[5]*day.iloc[8,5]+parameters[6]*day.iloc[8,6]+parameters[7]*day.iloc[8,7]+parameters[8]*day.iloc[8,8]+parameters[9]*day.iloc[9,0]+parameters[10]*day.iloc[9,1]+parameters[11]*day.iloc[9,2]+parameters[12]*day.iloc[9,3]+parameters[13]*day.iloc[9,4]+parameters[14]*day.iloc[9,5]+parameters[15]*day.iloc[9,6]+parameters[16]*day.iloc[9,7]+parameters[17]*day.iloc[9,8]+parameters[18]*day.iloc[12,0]+parameters[19]*day.iloc[12,1]+parameters[20]*day.iloc[12,2]+parameters[21]*day.iloc[12,3]+parameters[22]*day.iloc[12,4]+parameters[23]*day.iloc[12,5]+parameters[24]*day.iloc[12,6]+parameters[25]*day.iloc[12,7]+parameters[26]*day.iloc[12,8]-Y_Train[index]
        loss=loss + partsum * partsum
        b_grad = b_grad + partsum
        for k in range(27):
            w_grad[k]=w_grad[k]+ partsum * day.iloc[dict[k],k % 9]
    loss_history.append(loss/2)
    #更新参数
    b = b - learning_rate * b_grad
    for t in range(27):
        parameters[t] = parameters[t] - learning_rate * w_grad[t]

'''评价模型'''
data1 = pd.read_csv('test.csv')
del data1['id']
del data1['item']
X_Test=[]
ItemNum=18
for i in range(int(len(data1)/ItemNum)):
    day = data1[i*ItemNum:(i+1)*ItemNum] #一天的观测数据
    X_Test.append(day)
Y_Test=[]
data2 = pd.read_csv('answer.csv')
for i in range(len(data2)):
    Y_Test.append(data2.iloc[i,1])
b=0.00371301266193
parameters=[-0.0024696993501677625, 0.0042664323568029619, -0.0086174899917209787, -0.017547874680980298, -0.01836289806786489, -0.0046459546176775678, -0.031425910733080147, 0.018037490234208024, 0.17448898242705385, 0.037982590870111861, 0.025666115101346722, 0.02295437149703404, 0.014272058968395849, 0.011573452230087483, 0.010984971346586308, -0.0061003639742210781, 0.19310213021199321, 0.45973205224805752, -0.0034995637680653086, 0.00094072189075279807, 0.00069329550591916357, 0.002966257320079194, 0.0050690506276038138, 0.007559004246038563, 0.013296350700555241, 0.027251049329127801, 0.039423988570899793]
Y_predict=[]
for i in range(len(X_Test)):
    day=X_Test[i]
    p=b+parameters[0]*day.iloc[8,0]+parameters[1]*day.iloc[8,1]+parameters[2]*day.iloc[8,2]+parameters[3]*day.iloc[8,3]+parameters[4]*day.iloc[8,4]+parameters[5]*day.iloc[8,5]+parameters[6]*day.iloc[8,6]+parameters[7]*day.iloc[8,7]+parameters[8]*day.iloc[8,8]+parameters[9]*day.iloc[9,0]+parameters[10]*day.iloc[9,1]+parameters[11]*day.iloc[9,2]+parameters[12]*day.iloc[9,3]+parameters[13]*day.iloc[9,4]+parameters[14]*day.iloc[9,5]+parameters[15]*day.iloc[9,6]+parameters[16]*day.iloc[9,7]+parameters[17]*day.iloc[9,8]+parameters[18]*day.iloc[12,0]+parameters[19]*day.iloc[12,1]+parameters[20]*day.iloc[12,2]+parameters[21]*day.iloc[12,3]+parameters[22]*day.iloc[12,4]+parameters[23]*day.iloc[12,5]+parameters[24]*day.iloc[12,6]+parameters[25]*day.iloc[12,7]+parameters[26]*day.iloc[12,8]
    Y_predict.append(p)
def dev_degree(y_true,y_predict):    #评价函数
    sum=0
    for i in range(len(y_predict)):
        sum=sum+(y_true[i]-y_predict[i])*(y_true[i]-y_predict[i])
    return sum/len(y_predict)
print(dev_degree(Y_Test,Y_predict))

从ADC校准到精准测量:避开PY32F030小信号采样的那些坑 本文深入探讨了PY32F030微控制器进行ADC小信号采样时面临的挑战与解决方案。从硬件设计、软件滤波算法到系统级校准策略,详细分析了如何避开常见陷阱,实现精准测量,特别是在25mV以下小信号场景中的应用实践。 阅读详情

相关推荐

idea 编译打包nacos2.0.3源码,生成可执行jar 包常见问题

idea 编译打包nacos2.0.3源码,生成可执行jar 包常见问题

fyihdg的专栏 1218

李宏毅机器学习-task3

大作业: 按照Homework1_introduction.txt的要求完成这次作业 访问我的百度云可以下载数据 链接:https://pan.baidu.com/s/1IykfA4Z0-JLLXx9MvDcesg 提取码:esel import numpy as np import pandas as pd from sklearn.preprocessing import S...

zuyuhuo6777的博客 647

Telegram Bot Api使用教程

其中token为你的机器人token,method为telegram给定的方法,在获取群组chat_id那一步就使用了telegram的其中一个方法(getUpdates),其他方法后面会介绍。telegram发送消息的方式类似与钉钉机器人,都是向一个api发送http请求,而且对于同一个APItelegram支持GET和POST两种请求方式.请求的api格式如下。通常来说我们都需要让机器人在一个群组里工作,所以首先我们需要将机器人添加到我们指定的群组,在群组里发送随意消息并@这个机器人,比如...

豫迷糊的码上生活 1万+

机器学习中常见算法推导总结

本博客基于周志华老师《机器学习》、Ian Goodfellow《Deep Learning》、李航老师《统计学习方法》以及网上部分资料,为自己的学习笔记、总结以及备忘录,由于本人刚入门,欢迎大家指出错误。如有侵权,望告知,谢谢。机器学习常见算法推导,主要以下几种算法:knn、线性回归、逻辑回归、lda、感知机、bp、svm、em、pcak近邻法(k-nearest neighbor,k-NN): ...

qq_26399819的博客 4362

RT-Thread与LWIP协议栈在GD32F450XX上的移植实战:从FreeRTOS到RT-Thread的切换指南

本文详细介绍了将LWIP协议栈从FreeRTOS移植到RT-Thread系统,并在GD32F450XX开发板上实现的完整实战指南。重点解析了sys_arch适配层、邮箱与信号量接口的关键改造,以及网络驱动ethernetif.c的适配步骤,帮助开发者解决线程通信差异,实现稳定网络连接。

linux6sysadmin的博客 825

西安交通大学软件学院——分布式系统练习题(综合题)

摘要:本文探讨了分布式系统的核心特性与关键问题。首先阐述了分布式系统的8种透明性特性,包括访问、定位、迁移等。然后通过具体案例分析了分布式事务的回滚机制、域名解析的迭代与递归过程、不同分布式系统的异同比较。重点讨论了RPC通信中客户端/服务器崩溃的处理方法,包括消灭、再生和到期三种策略。最后介绍了Lamport时间戳算法在进程通信中的应用及问题解决方案。全文涵盖了分布式系统设计中的透明性、可靠性、一致性等核心问题。

qq_73044452的博客 204

DW李宏毅机器学习——Task3

1、误差的来源 Where does the error come from ? 并不是模型越复杂,误差越小 error due to ‘bias’ and error due to ‘variance’ 理论上有一个最佳的函数f^\hat ff^​,但我们没办法知道。利用训练数据,我们可以找到f∗f^*f∗,这个f∗f^*f∗只是f^\hat ff^​的估计值。 Bias and Variance of Estimator: 估计随机变量xxx的均值: 假设xxx的均值uuu, ...

momokofly的博客 250

使用自制的NTC测量模块测试Plecs的热仿真效果

可以测试:您完全可以用这个模型来测试热仿真。NTC 模型是连接电气域和热域的关键桥梁。实现闭环:通过这种方式,您创建了一个高度真实的正反馈闭环系统:负载增加 -> 损耗增加 -> 温度升高 -> NTC 阻值变化 -> 控制电路可能因此调整(如降低频率或电流)-> 损耗变化 -> 温度变化。应用场景:这对于设计过温保护 (OTP) 电路风扇控制系统以及分析热失控条件非常有用。单位:确保热域中使用的单位( Kelvin 或 Celsius )与您的 C-Script 模型输入期望的单位一致。

312

【李宏毅机器学习CP1-3】(task1)机器学习简介&分类|回归

文章目录1.机器学习的过程2.机器学习相关分类3.选择合适的model,loss function4.CP3(1)回归定义和应用例子回归定义应用举例(2)模型步骤Step 1:模型假设 - 线性模型一元线性模型(单个特征)多元线性模型(多个特征)Step 2:模型评估 - 损失函数收集和查看训练数据如何判断众多模型的好坏Step 3:最佳模型 - 梯度下降如何筛选最优的模型(参数w,b)梯度下降推演最优模型的过程梯度下降算法在现实世界中面临的挑战w和b偏微分的计算方法(3)如何验证训练好的模型的好坏(4)更

发现问题,并解决问题,批判性思维 1696

LSTM 双向 Bi-LSTM

LSTM 双向 Bi-LSTM

jacke121的专栏 1519

DeepSeek+Cline:开启自动化编程新纪元

随着 AI 技术不断进步,编程领域迎来效率变革。DeepSeek 与 Cline 的结合,成为自动化编程的强大工具。DeepSeek 凭借先进的自然语言处理能力,能精准理解编程需求;Cline 作为 VSCode 插件,可实现代码生成、调试、注释等功能的无缝衔接。本文详细阐述二者安装配置、实战操作流程,涵盖从基础代码生成到复杂项目开发的应用技巧,同时解答常见问题,帮助开发者快速掌握这对 “智能搭档”,提升编程效率,解锁自动化编程的无限可能。

邓邓子的博客 6257

【李宏毅机器学习CP5-8】(task3上)误差分析+梯度下降优化

学习心得 (1) 文章目录学习心得一、误差Error分析1.估测变量x的偏差和方差1)评估x的偏差bias2)评估x的方差variable2.不同模型情况1)不同模型的方差2)不同模型的偏差3)方差VS偏差3.判断&分析1)偏差大-欠拟合2)方差大-过拟合4.模型的选择1)交叉验证2)N-折交叉验证二、梯度下降0.复习梯度下降1.梯度下降的数学理论1)泰勒展开式2)利用泰勒展开式化简2.措施1)调整学习速率自适应学习率Adagrad 算法2)随机梯度下降法3)特征放缩三、Gradient Desce

发现问题,并解决问题,批判性思维 1418

STM32串口控制LED灯的亮灭

STM32中的串口控制LED灯的亮灭,分为两种方式,一种是直接发送数字0和1来控制灯的亮灭,另一种是通过发送字符串来控制。 我所使用的开发板主控芯片是STM32F401RET6,主频84MHz, 首先要进行串口的初始化: /* 函数功能:串口的初始化 函数名:Usart_Init 返回值:无 参数:u32 brr 备注: USART1_TXD->PA9 USART1_RXD->PA10 */ void Usart_Init(u32 brr) { float div; u16 div

博客 2万+

【李宏毅机器学习CP9】(task3下)PM2.5预测+numpy实现神经网络logistic回归

学习心得 小批量梯度下降算法中,初始参数的选择很重要,不同的初始参数,其对应损失函数收敛速度也不一样 learning rate 采用递减的方式选取的,根据经验的选择也很重要,在实验中,多积累、多总结。 文章目录学习心得第一部分:PM2.5预测一、作业描述二、任务要求三、大致任务实现方案1方案2方案3四、Reference第二部分:用numpy实现一个简单神经网络logistic回归模型一、包(库)的介绍二、问题概述三、学习算法的框架四、构建自己的算法1.Helper函数2.Initializing pa

发现问题,并解决问题,批判性思维 1814

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Datawhale AI 夏令营 第五期 Task3 学习笔记

今天晚上交流会听完后深感自己在很多方面的不足,希望今后自己也能从机器学习/深度学习的基础知识学起,比如看李宏毅老师的学习教程及视频,努力让自己学有所获,在工作中能有所应用。Task3的任务是学习上分思路---数据集增强与模型预测。听了一场助教以及几位群里大神的上分交流会,但由于时间太紧,所以没来得及进行上分实践。

csgzbg的专栏 317

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Datawhale X 李宏毅苹果书 AI夏令营 第五期 跟李宏毅学深度学习(入门)Task3:《深度学习详解》- 2 机器学习框架&实践攻略

Task3:《深度学习详解》- 2 机器学习框架&实践攻略(

图像检索小菜鸟_bianwencyy_的专栏 413

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【李宏毅机器学习CP21】(task6)卷积神经网络

学习心得/总结 (1)CNN误差反向传播的细节可以参考《深度学习的数学》P200的5.5部分,还没看。 (2)卷积层可通过重复使用卷积核有效地表征局部空间,卷积核(过滤器filterfilterfilter)通过卷积的计算结果(相似度)表示该卷积核和扫描过的图像块的灰色格子部分相吻合的个数——该值越大则说明越符合卷积核的偏好程度。 ——卷积的结果矩阵为特征映射(featurefeaturefeature mapmapmap) (3)说到内积,要和HadamardHadamardHadamard乘积区分,后者

发现问题,并解决问题,批判性思维 1596

【李宏毅机器学习2021】Task02 回归

本系列是针对datawhale《李宏毅机器学习-2022 10月》的学习笔记。本次是对回归的学习总结。本节通过视频学习到回归任务的提出,三个要素,及如何优化。李老师通过层层递进,提出问题解决问题的方式不断打磨方法,从中介绍回归任务的始末,引出深度学习及网络加深伴随的过拟合问题。

QAQterrible的博客 1002

Datawhale十月组队学习--《李宏毅机器学习》--Task02

Datawhale十月组队学习:《李宏毅机器学习》 往期指路    Task01:什么是机器学习 文章目录Datawhale十月组队学习:《李宏毅机器学习》往期指路前言一、回归(Regression)二、使用步骤1.引入库2.读入数据总结 前言   本篇主要对《李宏毅机器学习》中关于【回归】部分的知识记录。 一、回归(Regression)    1、不是模型越复杂越好 2、还需要考虑数据集的大小 3、只考虑CP值是不对的,还要考虑因素,需要重新设置function set 4、过拟合:Regular

可乐的博客 527

《李宏毅机器学习》task1

1.什么是机器学习 2.中心极限定理、正态分布、最大似然估计 3.线性回归loss function推导 4.损失函数和凸函数之间的关系

devcy的博客 316

《李宏毅机器学习》task2

《李宏毅机器学习》task21.偏差和方差学习误差由偏差和方差而产生过拟合,欠拟合2.鞍点,全局最优和局部最优3.梯度下降Mini-Batch与SGDBatch与Mini-Batch,SGD的区别如何根据样本大小选择哪个梯度下降写出SGD和Mini-Batch的代码4.交叉验证5.归一化6.回归模型评价指标 1.偏差和方差 学习误差由偏差和方差而产生 偏差与方差分别是用于衡量一个模型泛化误差的...

devcy的博客 424

DW李宏毅机器学习笔记--Task01-机器学习介绍

文章目录前言一、机器学习介绍1.人工智能、机器学习、深度学习之间的关系2.Hand-crafted rules与Machine learning3.机器学习的思路二、机器学习相关的技术1.监督学习A.回归(Regression)问题分类(Classification)问题Deep Learning2.半监督学习迁移学习无监督学习监督学习中的结构化学习(structured learning)强化学习总结 前言 这是我在Datawhale组队学习李宏毅机器学习的记录,既作为我学习过程中的一些记录,也供同好们

StarryPilgrim 449

《李宏毅机器学习》task7

import numpy as np import pandas as pd def cancShannonEnt(dataSet): ''' :param dataSet: dataSet :return: shannonEnt ''' # 计算公式前,注意数据的格式(array) numEntries = len(dataSet) # 获取数据的行数 labe...

devcy的博客 208

《李宏毅机器学习》task5

《李宏毅机器学习》task5推导LR损失函数(1)学习LR梯度下降(2)利用代码描述梯度下降(选做)(3)Softmax原理(4)softmax损失函数(5)softmax梯度下降(6)参考文献 推导LR损失函数(1) 假定: LR逻辑回归假设样本服从泊松0–1分布,因此p(y|x)表达式: 求最大似然估计: 进而求最大对数似然估计: 损失函数: 损失函数表征预测值与真实值之间的差异程度...

devcy的博客 436

台大李宏毅机器学习作业4(HW4)——可解释机器学习

最近刚开始学习机器学习,看的是台湾大学李宏毅老师的视频课程Machine Learning 2019,李宏毅老师课程共有8个作业,在网上大约可以搜到前三个作业的解答,分别是PM2.5预测,人薪酬的二分类和表情分类,我在做这三次作业中主要参考了秋沐霖的三篇博客,链接如下: 作业1:线性回归预测PM2.5----台大李宏毅机器学习作业1(HW1) 作业2:Logistic回归预测收入----台大李宏毅...

Horizon2333的博客 3815

【李宏毅机器学习】01:机器学习介绍 Introduction

机器学习介绍 Introduction 主要内容: 一、机器学习步骤 二、机器学习框架 三、机器学习学习地图 四、总结 对本课程的内容做了概述,并介绍了不同的机器学习方法

PKM of bk 716
上一篇: 《李宏毅机器学习》task2
下一篇: TensorFlow mnist数字识别
程序员椰子橙
博客等级 码龄9年 46粉丝 163原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值