模型构建以及训练用到的重要API

这篇博客介绍了如何使用Numpy从头构建一个简单的线性回归模型。首先,通过`np.fromfile`读取数据并进行reshape操作以适应模型。接着,依据样本数量与特征数量划分训练数据,并进行数据归一化处理。然后,定义了模型的梯度计算、梯度更新以及训练过程,采用随机梯度下降法(SGD)进行模型训练。整个过程详细阐述了模型构建与训练的关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 模型构建

1.1 读入数据

import numpy as np
data = np.fromfile(datafile, sep=' ')

datafile为数据所在的地址,sep为数据的分隔符号,用这条语句可以方便地将数据以一维数组的方式取出。

1.2 数据格式转换

data = data.reshape(row_num, column_num) # row_num为行数,column_num为列数

在波士顿房价预测模型中,每一个样本有13个特征,1个目标值,即每一个样本都有14个值,所以很快可以确定列数为14,行数就是 data中数据总数/14。

1.3 数据集划分

offset = int(data.shape[0] * ratio)
training_data = data[:offset]

ratio就是我们需要划分的比例,data.shape[0]就是样本的总数。

1.4 归一化处理

for i in range(feature_num):
    data[:, i] = (data[:, i] - avgs[i]) / (maximums[i] - minimums[i])

将数据放缩到0~1之间,起到统一量纲的作用。

1.5 构建模型

np.random.seed(0) 
# seed( ) 用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed( )值,则每次生成的随即数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。
numpy.random.rand(d0,d1,,dn)
# rand函数根据给定维度生成[0,1)之间的数据,包含0,不包含1
# dn表格每个维度
# 返回值为指定维度的array
np.dot(x, y)
# 将x与y矩阵中的元素做点乘
np.mean(x, axis= )
# 对矩阵x中的元素求平均,返回一个实数
# axis表示对矩阵x的哪一维求平均。

2. 模型训练

2.1 使用Numpy进行梯度计算

def gradient(self, x, y):
        z = self.forward(x)
        gradient_w = (z-y)*x
        gradient_w = np.mean(gradient_w, axis=0)
        gradient_w = gradient_w[:, np.newaxis]
        gradient_b = (z - y)
        gradient_b = np.mean(gradient_b)        
        return gradient_w, gradient_b

2.2 梯度更新

def update(self, gradient_w, gradient_b, eta = 0.01):
    self.w = self.w - eta * gradient_w
    self.b = self.b - eta * gradient_b

2.3 训练过程封装

def train(self, x, y, iterations=1000, eta=0.01):
    losses = []
    for i in range(iterations):
        z = self.forward(x)								# 前向计算
        L = self.loss(z, y)								# 损失函数
        gradient_w, gradient_b = self.gradient(x, y)	  # 计算梯度
        self.update(gradient_w, gradient_b, eta)		  # 更新梯度
        losses.append(L)
        if (i+1) % 10 == 0:
            print('iter {}, loss {}'.format(i, L))
    return losses

2.4 随机梯度下降法SGD

核心概念:

  • mini-batch:每次迭代时抽取出来的一批数据被称为一个mini-batch。
  • batch_size:一个mini-batch所包含的样本数目称为batch_size。
  • epoch:当程序迭代的时候,按mini-batch逐渐抽取出样本,当把整个数据集都遍历到了的时候,则完成了一轮训练,也叫一个epoch。启动训练时,可以将训练的轮数num_epochs和batch_size作为参数传入。
<think>好的,我现在需要处理用户关于如何在淘宝逛逛赚钱方法运营技巧的问题。首先,我得理解用户的需求。他们可能是一个想在淘宝上通过内容创作增加收入的新手,或者是已有店铺想要提升销量的卖家。接下来,我需要确定正确的搜索词,比如“淘宝逛逛赚钱方法”、“淘宝逛逛运营技巧”、“内容电商变现策略”等。 然后,我会调用网络搜索工具,查找相关的可靠信息。可能会找到官方指南、成功案例、行业分析文章等。需要筛选出最相关和实用的信息,比如内容定位、提升曝光的方法、变现途径等。 接下来,整合这些信息,按照用户的要求分步骤组织,避免使用第一人称和步骤词汇。每个方法或技巧需要清晰明了,可能包括如何选择内容方向、优化发布时间、使用数据分析工具等。同时,要注意引用内容不能堆在末尾,而是自然地融入各个步骤中。 在整理过程中,还要注意检查是否有需要代码或公式的地方。比如,如果有涉及算法推荐机制的解释,可能需要用数学公式,但根据搜索结果,可能更多是策略性的内容,所以这部分可能不适用。不过如果有提到ROI计算,可以用公式,比如$ROI = \frac{净利润 }{ 投入成本 } \times 100\%$,但不确定是否必要。 然后,生成相关问题部分,必须基于用户的问题和回答内容。比如,如何提升内容曝光、淘宝逛逛的变现方式、适合新手的技巧等。确保问题有针对性,能帮助用户进一步探索。 最后,检查格式是否符合要求,特别是代码和公式部分是否正确,相关问题是否在最后,标题是否正确,没有多余的空格或换行。确保所有要求都严格遵守,避免错误。</think>通过淘宝逛逛实现盈利的核心方法可分为内容运营流量获取、变现路径三个维度。以下为具体实施框架: **内容策略与账号定位** 账号需垂直细分领域(如美妆评测/母婴用品),建立差异化人设增强用户记忆点。内容形式采用短视频+图文组合,短视频时长控制在15-30秒内,封面设计使用醒目标题模板并保持统一视觉风格。高频更新机制建议每周5-7次内容发布,配合淘宝算法推荐的流量高峰期(12:00-14:00、19:00-21:00) **流量获取机制** 通过关键词矩阵布局提升搜索曝光,在标题/文案中嵌入$CTR=点击次数/展示次数$公式相关的高转化词(如「实测」「避坑指南」)。参与官方#逛逛精选#话题活动获取流量扶持,优质内容可获得日均10万+曝光量。建立用户互动体系,设置投票互动贴纸引导评论,回复时效控制在30分钟内 **变现路径设计** 开通淘宝联盟PID进行CPS分佣,商品链接需嵌入深度追踪代码: ```python # 淘宝联盟API链接生成示例 import hashlib def generate_pid_link(item_id,pid): sign = hashlib.md5(f'{pid}_{item_id}_mm_123_456'.encode()).hexdigest() return f'https://s.click.taobao.com/t?e=...&pid={pid}&item_id={item_id}&sign={sign}' ``` 品牌合作需建立媒体资源包(刊例价单条视频报价通常在800-5000元区间),通过阿里V任务平台接单。自营店铺导流需在内容中设置「点击橱窗」行动号召按钮,转化路径缩短至3步以内
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在下六斤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值