机器学习开始01-线性回归

Go 与机器学习:如何用 Go 实现简单的 ML 模型 摘要 本文探讨了 Go 语言在机器学习领域的潜力,尽管其生态不如 Python 成熟,但凭借高效性、并发性和简洁性,Go 适合构建高性能机器学习系统。文章介绍了 GoLearn、Gonum 等机器学习库,并通过线性回归示例演示了数据准备、模型训练和预测的全流程。同时,文章扩展至多变量线性回归,展示 Go 处理复杂任务的能力。尽管 Go 的机器学习工具仍在发展,但其在并发计算和大规模数据处理中的优势使其成为值得关注的选择,尤其适合需要高性能集成的生产环境。 阅读详情


就搞最简单的线性回归(欢迎交流学习)
version:202507
环境配置请移步

什么线性回归

简单来讲就是构建一个方程,y=ax+b,a和b需要通过已经知道的y和x的关系取求得,最后呢,会得到一个能够根据输入的x得到的y值跟已知y值差距最小的一个方程,就比如下图就是一个回归,equation就是我们的模型。求得这个equation的过程就是我们的数据建模。
在这里插入图片描述
你看这不就已经学会了

线性回归和机器学习的关系

机器学习的历史
机器学习是一种人工智能领域中的方法,它让计算机通过数据和算法自主学习和改进,来获取新的知识和洞见。在机器学习的过程中,我们需要寻找最适合的算法来解决问题,线性回归就是其中之一。

线性回归的适用性

回归模型是一种重要的预测性建模技术,用于研究和揭示因变量(目标)与自变量(预测器)之间的关系,因变量和自变量都是连续的,回归线的性质也是线性的。线性回归的目标是在给定一个或多个自变量的情况下,找到一个最佳拟合线来描述因变量和自变量之间的关系;

线性回归的构建步骤

1.收集数据
2.数据EDA
3.特征工程
4.建立模型
5.训练模型
6.模型评估与优化

举个例子

喜闻乐见,房价预测,预测房价与什么有关系,这就是我们要解决的问题
1.获取数据

train = pd.read_csv("../data/train.csv") # 训练集 训练模型
testA = pd.read_csv("../data/test.csv") # 验证集 帮模型“调试优化”

2.数据EDA&特征工程(一边探查,一边处理)参考

# 二、数据EDA
#train.columns.tolist() # 查看数据列名
#pd.set_option('display.max_rows', None)
#print("train",train.shape) # 查看大小
#print(train.dtypes)
#train.describe()

# 绘制数值变量的关联关系
# 自动识别拆分数值型列和非数值型列
numeric_cols = train.select_dtypes(include=['number']).columns.tolist()
non_numeric_cols = train.select_dtypes(exclude=['number']).columns.tolist()
数值列的相关性
n_features = len(numeric_cols)
n_cols = 4
n_rows = (n_features + n_cols - 1) // n_cols
 
fig, axes = plt.subplots(
    nrows=n_rows,
    ncols=n_cols,
    figsize=(18, 5 * n_rows),  # 增大画布
    constrained_layout=True     # 启用自动布局
)
axes = axes.flatten()

for idx, feature in enumerate(numeric_cols):
    ax = axes[idx]  # 获取当前子图对象
    ax.scatter(train[feature], train['SalePrice'],s=10)
    ax.set_title(f"{feature}-price")
    ax.set_xlabel(feature)
    ax.set_ylabel("price")
plt.show()

在这里插入图片描述

# 从上面的图可以看出,那些列和房价具有一定的相关性
# LotFrontage 地块临街长度
# LotArea 土地面积 
# OverallQual 整体材料质量
# OverallCond	总体状况
# YearBuilt 建造年份
# YearRemodAdd 改造年份
# GarageYrBlt 车库建造年份 
#MasVnrArea 砖石饰面面积 
#BsmtFinSF1 地下室完成面积
#BsmtUnfSF 地下室未完成面积 
#TotalBsmtSF 地下室总面积 
#1stFlrSF 一层面积 
#2ndFlrSF 二层面积 
#TotRmsAbvGrd	地上总房间数
#GarageArea	车库面积
#GarageCars	车库容量
#WoodDeckSF	木甲板面积
#GrLivArea 地上居住面积
#OpenPorchSF 开放门廊面积
# 画热力图,查看相关性系数,进一步分析
corrmat = train.corr(numeric_only=True)
f, ax = plt.subplots(figsize=(12, 9))
sns.heatmap(corrmat, vmax=.8, square=True,cmap='coolwarm')

在这里插入图片描述

#进一步分析,选出10个相关性最强的变量
k = 10 #number ofvariables for heatmap 前十名
cols = corrmat.nlargest(k, 'SalePrice')['SalePrice'].index # 取相关性最强的前10名
cm = np.corrcoef(train[cols].values.T)  # 计算皮尔逊相关系数矩阵
sns.set(font_scale=1.25) # 全局设置seaborn的字体缩放比例
# 绘制热力图
hm = sns.heatmap(cm, cbar=True, annot=True, square=True, fmt='.2f', annot_kws={'size': 10},
yticklabels=cols.values, xticklabels=cols.values)
plt.show()

在这里插入图片描述

# 从上面的分析中,我们可以找出数值变量与价格相关性高的列
# FullBath、YearBuilt 并不是十分明显
# TotalBsmtSF、1stFlrSF 可以选这一个
# Garage系列可以选择一个
high_ofvariables = ['OverallQual','GrLivArea','GarageArea','TotalBsmtSF','TotRmsAbvGrd']
文本特征列相关性分析
# 对文本进行编码转换
from sklearn.preprocessing import LabelEncoder
for col in non_numeric_cols:
    le = LabelEncoder()
    train[col+'_encoded'] = le.fit_transform(train[col])
    testA[col+'_encoded'] = le.fit_transform(testA[col])
ANOVA方差分析
from sklearn.feature_selection import f_classif
label_columns = []
for col in non_numeric_cols:
    label_columns.append(col+'_encoded')


x=train[label_columns]   
y=train['SalePrice']
f_scores, p_values = f_classif(x, y)

feature_scores = pd.DataFrame({
    'Feature': x.columns,
    'F_Score': f_scores,
    'P_Value': p_values
}).sort_values('F_Score', ascending=False)

pd.set_option('display.float_format', lambda x: '%.10f' % x)

print("ANOVA分析结果:")
print(feature_scores)
#F_Score越高,特征与目标变量的相关性越强
#P_Value < 0.05 表示统计显著

在这里插入图片描述

# 通过ANOVA分析结果,我们可以考虑保留的特征列是
feature_data = feature_scores.query('F_Score>=1.5 and P_Value<0.05')
for i in feature_data['Feature']:
    high_ofvariables.append(i)

fianlly_train = train[high_ofvariables]
finall_test=test[high_ofvariables]
空值处理
# 空值处理 
# 查看空值
missing_report = pd.DataFrame({
    'Missing_Count': fianlly_train.isnull().sum(),
    'Missing_Ratio': (fianlly_train.isnull().sum() / len(fianlly_train)).round(4),
    'Valid_Count': fianlly_train.count(),
    'Valid_Ratio': (fianlly_train.count() / len(fianlly_train)).round(4)
})
#没有空值 不处理

missing_report2 = pd.DataFrame({
    'Missing_Count': finall_test.isnull().sum(),
    'Missing_Ratio': (finall_test.isnull().sum() / len(finall_test)).round(4),
    'Valid_Count': finall_test.count(),
    'Valid_Ratio': (finall_test.count() / len(finall_test)).round(4)
})
finall_test['GarageArea'] = finall_test['GarageArea'].fillna(finall_test['GarageArea'].mode()[0])
finall_test['TotalBsmtSF'] = finall_test['TotalBsmtSF'].fillna(finall_test['TotalBsmtSF'].mode()[0])

构建模型

# 训练模型
#导入线性回归模型
from sklearn.linear_model import LinearRegression #导入模型
#模型定义
model = LinearRegression()
#开始训练模型
# model1 = model.fit(X_scaled,y)
model1 = model.fit(fianlly_train,train['SalePrice'])

模型验证

predict = model1.predict(finall_test)
submission_df = pd.DataFrame(data={'Id': testA.index, 'SalePrice': predict})
submission_df.to_csv('output.csv', index=False)
吴恩达机器学习第一次编程作业----LinearRegression 1:Simple Octave/MATLAB function 第一个任务是输出一个5*5的单位矩阵,这个只需要在warmUpExercise.m文件里面添加 A = eye(5) 即可。 输出结果如下图: A = eye(5) 1.1 Submitting Solutions 这个是讲如何提交文件的,如果是在coursea上面看课程的同学就可以提交,如果在网易云... 阅读详情

相关推荐

Databricks上Spark ML线性回归落地实战:稳准快的工业级实践

线性回归作为最基础的机器学习模型,其核心在于可解释性、稳定性与工程可扩展性。在大数据场景下,单机sklearn受限于内存、IO和扩展一致性,而Spark ML依托分布式计算引擎,通过L-BFGS优化、向量化特征处理与Delta Lake原生集成,实现千万级样本的高效训练与毫秒级预测。关键技术价值体现在:内存恒定占用、谓词下推加速、schema动态兼容及UDF编译执行。典型应用场景包括销量预测、设备寿命分析与故障预警等需高可靠、低延迟、强审计的工业系统。本文聚焦Databricks平台,深入LinearReg

chenzhuofei4155的博客 471

【从零开始的ML-01】-LinearRegression 自变量进行标准化会对模型带来的影响

数据的标准化 是将数据按比例缩放,使之落入一个小的特定区间,在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权 常见的标准化类型: 标准差标准化: 经过处理的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为: 其中μ为所有样本数据的均值,σ为所有样本数据的标准差。 线性标准化(也叫离差标准化): 对原始数据的线性变换,使结果落到[0,1]区间,转换函数如下: 其中max(x)为样本数据的最大值,min(x)为样本.

qq_45728434的博客 3475

【机器学习--线性回归01】线性回归模型

    等了很久,终于进入机器学习环节了。开始前只想说一句话:数学一定一定要学好!!!没有学完概率的我今天开头真的是看的昏昏欲睡,就算是现在也只能大概理解其原理,等抓紧时间学完概率,再来好好咀嚼一下这部分内容。最后给自己一碗鸡汤:从菜鸟走向大神,这是道路。目标函数    对于线性回归模型,它的目标函数一般包括两部分:损失函数和正则项。                             在回归...

SalvatioN 551

十个机器学习基本算法之 - 线性回归

  在 图解最常用的10个机器学习算法!   §01 线性回归

TSINGHUAJOKING 2945

Pytorch从零开始实现线性回归

下面是线性回归的矢量计算表达式的实现。我们使用mm函数做矩阵乘法。def linreg(X, w, b): # 本函数已保存在d2lzh_pytorch包中⽅方便便以后使⽤用我们使用上一节描述的平方损失来定义线性回归的损失函数。在实现中,我们需要把真实值y变形成预测值y_hat的形状。以下函数返回的结果也将和y_hat的形状相同。以下的sgd函数实现了上一节中介绍的小批量随机梯度下降算法。它通过不断迭代模型参数来优化损失函数。这里自动求梯度模块计算得来的梯度是一个批量样本的梯度和。

AI_ayuan的博客 479

SPARTAN6 + Verilog - FPGA step by step 从0开始学习(1)

SPARTAN6 + Verilog - FPGA step by step 从0开始学习(1)Step 1 软件安装Step 2 硬件获取Step 3 开始从头到脚建一个工程Step 3.1 新建一个工程 从0开始学习FPGA,最好的办法就是先建一个最简单的模块,并且跑起来,然后再慢慢展开。下面这个例子是要按照一定的周期点亮核心板上的一个led。 Step 1 软件安装 这个从0开始学习是用的xilinx的SPARTAN6。SPARTAN6集成开发环境用ISE,不能用Vivado,各自对应的版本不同。安装

xfacexx点点记录 5512

机器学习01线性回归模型

机器学习01-线性回归模型 1、线性回归 参考周志华老师的《机器学习》中对线性回归的定义: 给定数据集D={(x1,y1),(x2,y2),...,(xm,ym))}D=\{(x_1,y_1),(x_2,y_2),...,(x_m,y_m))\}D={(x1​,y1​),(x2​,y2​),...,(xm​,ym​))},其中xi=xi1;xi2;,...;xid,yi∈R.x_i={x_{i1};x_{i2};,...;x_{id}}, y_i∈R.xi​=xi1​;xi2​;,...;xid​,yi​

Jasmine的学习小站 833

如何在windows下使用cmake编译源码

MyProject/└── build/在MyProject目录下创建并编辑。创建build目录并进入。使用cmake命令生成构建文件。使用适当的命令编译项目。运行生成的可执行文件。

cdj444asdg的博客 3345

从零开始手撕线性回归:代码实战带你深入理解机器学习基础

线性回归是机器学习中最基础且重要的算法之一,广泛应用于预测分析和数据建模。本文将带领读者从零开始理解线性回归的核心原理,并通过Python代码实战一步步实现一个简单的线性回归模型。无论你是机器学习初学者还是希望巩固基础的开发者,本文都将为你提供清晰的学习路径。线性回归是一种监督学习算法,用于建立输入变量(特征)与输出变量(目标)之间的线性关系。其核心思想是找到一条最佳拟合直线,使得预测值与真实值之间的误差最小。假设我们有一组数据点 ,线性回归试图找到参数 和 ,使得以下公式成立: y=wx+b y = w

平时不搬砖的博客 1049

运算放大器测试方法-输入失调电压

由于运放输入回路的不对称性,在输入端将产生一定的误差信号,从而限制运放信号灵敏度。通常用输入失调电压(VOS)、输入失调电流(Ios)和输入偏置电流(IB)表示。运放有四个主要特征:输入失调特征、开环特征、共模特征及输出特征。其放大倍数较大,由于外界的影响,即使运放的输入端产生较小的输入信号,经过放大,在输出端也会产生较大的误差。为能精确测量其性能,一般采用辅助运放进行测试。下面着重讲了运放的主要参数及如何精确测量这些参数。文中DUT代表被测运放,A代表辅助运放。

weixin_46135931的博客 1万+

本地部署DeepSeek连接MATLAB:打造私有化AI编程助手全攻略

大型语言模型(LLM)通过理解自然语言生成代码、解释技术概念,其核心原理是基于海量数据训练的Transformer架构。这项技术为工程计算和数据分析带来了效率革命,尤其在代码生成、调试辅助和文档自动化等场景价值显著。开源模型如DeepSeek-coder凭借优秀的代码理解能力,结合Ollama提供的本地化部署方案,实现了完全离线、低延迟的私有化部署。通过配置国内镜像加速下载,并利用MATLAB内置的HTTP通信函数构造API请求,工程师可以在熟悉的MATLAB环境中直接调用本地模型,处理数据清洗、算法验证等

weixin_30239339的博客 517

机器学习笔记01:线性回归(Linear Regression)和梯度下降(Gradient Decent)

最近在Coursera上看吴大神的Machine Learning,感觉讲的真的很棒。所以觉得应该要好好做做笔记,一方面是加强自己对ML中一些方法的掌握程度和理解,另一方面也能方便自己或者同样爱好ML的同学。线性回归(Linear Regression)  线性回归(Linear Regression)应该是机器学习中最基本的东西了。所谓回归,想必大家在高中时期的课程里面就接触过,给定一系列离散的点

请叫我AXin 1万+

[HBM] RAM Cell Self Repair | 内存单元自我修复

对抗错误的大都是冗余,内存颗粒在设计的时候也考虑增加冗余。具体的说:添加冗余或备用的存储单元行和列,及时将测试中的故障进行修复和替换,存储器修复包括行修复,列修复或两者的组合。

串起点滴 783

【机器学习笔记1】一元线性回归模型及预测

一元线性回归、代价函数、梯度下降算法、样例(含数据)及代码

issey的博客 9991

华为OD机试 - 机器人活动区域(Python/JS/C/C++ 双机位C卷 200分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。现有一个机器人,可放置于 M × N的网格中任意位置,每个网格包含一个非负整数编号。当相邻网格的数字编号差值的绝对值小于等于 1 时,机器人可在网格间移动问题:求机器人可活动的最大范围对应的网格点数目。说明:1)网格左上角坐标为 (0, 0),右

学Java,找哪吒 1432

华为OD机试真题 新系统【查找温度记录统计信息】

华为OD机试 新系统真题【查找温度记录统计信息】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【查找温度记录统计信息】多语言题解。

qq_45776114的博客 486

手撸机器学习算法之自己实现线性回归

线性回归是机器学习中最经典的算法,因为后面的多层感知也是基于这些算法进行演变而来的,所以当我们完全了解了机器学习之后对于我们了解后面的算法是很有帮助的,尤其对于经典的,每一个机器学习模型都会用到的梯度下降,损失计算进行更深刻的认识是非常具有帮助的。同时本次的博客将会把整个机器学习我认为比较经典的算法通通进行自己的手动实现,供大家进行参考和学习,那么我们就开始实现本次的第一个机器学习算法,线性回归吧。线性回归的本质就是使用一组参数去拟合样本数据,在二维平面上就是使用y = kx + b这一条直线去拟合所有的样

weixin_43754303的博客 717

SAP BTP ABAP RAP 开发对象命名规范与落地实践

摘要:SAP BTP ABAP开发中的命名规范实践 在企业级ABAP开发中,命名规范是提升交付效率的工程化手段。SAP推荐采用[/<namespace>/][<prefix>]_<object_name>_[<suffix>]的结构化命名框架,解决多对象、多团队的协同问题。关键实践包括:使用组织专属命名空间避免冲突;通过prefix区分同类型对象的不同语义(如UI_/API_);object_name体现业务语义而非技术细节;suffix表达次级差异。在具体对

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1433

机器学习——线性回归

机器学习——线性回归介绍线性回归——模型公式线性回归——评价模型线性回归——更新模型线性回归——Demo 介绍   线性回归,是接触机器学习时候,最开始的内容。线性回归可以做拟合问题,也可以做分类问题。在线性回归问题(或者说任何问题)只需要关注三个问题:模型公式、评价模型、更新模型。 线性回归——模型公式 什么是线性回归?   回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系

黑色五叶草的博客 569

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

线性回归的从零开始实现

接下来,我们必须定义模型,将模型的输入和参数同模型的输出关联起来。回想一下,要计算线性模型的输出, 我们只需计算输入特征X和模型权重w的矩阵-向量乘法后加上偏置b。注意,上面的Xw是一个向量,而b是一个标量。回想一下 数据操作中描述的广播机制: 当我们用一个向量加一个标量时,标量会被加到向量的每个分量上。"""线性回归模型"""因为需要计算损失函数的梯度,所以我们应该先定义损失函数。这里我们使用 线性回归中描述的平方损失函数。在实现中,我们需要将真实值y的形状转换为和预测值y_hat的形状相同。

woshilyc7890的博客 1231

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

机器学习&&深度学习——线性回归的从零开始实现

机器学习&&深度学习——线性回归的从零开始实现

m0_52380556的博客 695

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

SparkMLlib之01-Spark机器学习库介绍

Spark机器学习库简介MLlib是Spark的机器学习库。旨在简化机器学习的工程实践工作,并方便扩展到更大规模。MLlib由一些通用的学习算法和工具组成,包括分类、回归、聚类、协同过滤、降维等,同时还包括底层的优化原语和高层的管道API。它提供如下工具: 机器学习算法:常规机器学习算法包括分类、回归、聚类和协同过滤。 特征工程:特征提取、特征转换、特征选择以及降维。 管道:构造、评估和调整的管道的

Levine Huang 1083

手写机器学习算法系列01——线性回归

线性回归是最简单的机器学习算法,说白了就是构造一元或者多元的线性方程,然后根据现有样本数据进行函数拟合,求解出线性方程的各个参数,之后就可以通过该线性方程进行相关预测。

黄嘉成的博客 1920

【机器学习与实战】回归分析与预测 :线性回归-01-一元线性回归原理

【机器学习与实战】回归分析与预测 :一元线性回归原理

AIxiaoyun001的博客 1295

机器学习线性回归_机器学习从零开始系列连载——线性回归

以通用的监督学习为例,基本包含4个部分:01偏差与方差● 在机器学习算法中,偏差是由先验假设的不合理带来的模型误差,高偏差会导致欠拟合:所谓欠拟合是指对特征和标注之间的因果关系学习不到位,导致模型本身没有较好的学到历史经验的现象;● 方差表征的是模型误差对样本发生一定变化时的敏感度,高方差会导致过拟合:模型对训练样本中的随机噪声也做了拟合学习,导致在未知样本上应用时出现效果较差的现象;● 机器学习...

weixin_39718173的博客 168

ml-basics入门指南:从零开始掌握机器学习基础概念

ml-basics是一个专为机器学习初学者设计的实践项目,提供了丰富的练习笔记本,帮助你循序渐进地掌握机器学习核心概念。无论你是零基础的新手还是希望巩固基础知识的学习者,这个项目都能为你提供清晰的学习路径和 hands-on 实践体验。 ## 📋 项目核心内容概览 ml-basics项目结构清晰,包含多个主题的学习模块和挑战练习,主要分为以下几个部分: ### 基础理论学习模块 项目根目

gitblog_01076的博客 946
上一篇: Matplotlib入门09-绘制多子图
下一篇: HDFS基础命令
Aronup
博客等级 码龄7年 75粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值