stanford openclassroom on machine learning matlab练习

本文介绍了三种常见的机器学习算法实现:线性回归、多元线性回归及逻辑回归,并使用斯坦福大学深度学习课程中的示例代码进行展示。通过这些示例,读者可以了解如何使用MATLAB实现这些算法。

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

Linear Regression

http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex2/ex2.html

clear all; close all; clc;
x=load('c:\ex2Data\ex2x.dat');
y=load('c:\ex2Data\ex2y.dat');

figure % open a new figure window
plot(x, y, 'o');
ylabel('height in meters')
xlabel('age in years')

m= length(y);
x= [ones(m,1), x];
theta = zeros(size(x(1,:)))';
alpha = 0.07;
MAX_INTERATION = 1500

for i = 1:MAX_INTERATION
    grad=(1/m).* x' *(x * theta-y);
    theta=theta-alpha*grad;
end

hold on;
plot(x(:,2), x * theta, '-');
legend('Training data', 'Liner regression')


 


Multivariate Linear Regression

http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex3/ex3.html

clear all; close all; clc;
x=load('c:\ex3Data\ex3x.dat');
y=load('c:\ex3Data\ex3y.dat');

m= length(y);
x= [ones(m,1), x];

sigma = std(x);
mu = mean(x);
x(:,2) = (x(:,2)-mu(2))./sigma(2);
x(:,3) = (x(:,3)-mu(3))./sigma(3);

theta = zeros(size(x(1,:)))';
alpha = 0.3;
J = zeros(50, 1);

for num_iterations = 1:50
    J(num_iterations) = (1/2*m).* (x * theta-y)'*(x * theta-y);
    
    grad=(1/m).* x' *(x * theta-y);
    theta=theta-alpha*grad;
end

figure; 
plot(0:49, J(1:50), '-');
xlabel('number of interations');
ylabel('cost j');
hold on;

Logistic Regression and Newton's Method

http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex4/ex4.html

clear all; close all; clc;
x=load('c:\ex4Data\ex4x.dat');
y=load('c:\ex4Data\ex4y.dat');

[m, n] = size(x);
x= [ones(m,1), x];

pos=find(y==1);
neg=find(y==0);

figure
plot(x(pos,2), x(pos,3), '+');hold on
plot(x(neg,2), x(neg,3), 'o');hold on
xlabel('exam 1 score');
ylabel('exam 2 score');

theta = zeros(n+1, 1);
% Define the sigmoid function
g = inline('1.0 ./ (1.0 + exp(-z))'); 

% Newton's method
MAX_ITR = 20;
J = zeros(MAX_ITR, 1);

for i = 1:MAX_ITR
    z = x*theta;
    h = g(z);
    
    grad = (1/m).*x' * (h-y);
    H=(1/m).*x' * diag(h) * diag(1-h) * x;
    
    J(i) = (1/m)*sum(-y.*log(h) - (1-y).*log(1-h));
    
    theta = theta - inv(H)*grad;
end

theta

% Calculate the probability that a student with
% Score 20 on exam 1 and score 80 on exam 2 
% will not be admitted
prob = 1 - g([1, 20, 80]*theta)

% Plot Newton's method result
% Only need 2 points to define a line, so choose two endpoints
plot_x = [min(x(:, 2))-2, max(x(:,2))+2];
plot_y = (-1./theta(3)).*(theta(2).*plot_x+theta(1));
plot(plot_x, plot_y)
legend('Admitted', 'Not admitted', 'Decision Boundary');
hold off

% Plot J
figure
plot(0:MAX_ITR-1, J, 'o--', 'MarkerFaceColor', 'r', 'MarkerSize', 8)
xlabel('Iteration'); ylabel('J')
% Display J
J


 

内容概要:本文深入探讨了Kotlin语言在函数式编程和跨平台开发方面的特性和优势,结合详细的代码案例,展示了Kotlin的核心技巧和应用场景。文章首先介绍了高阶函数和Lambda表达式的使用,解释了它们如何简化集合操作和回调函数处理。接着,详细讲解了Kotlin Multiplatform(KMP)的实现方式,包括共享模块的创建和平台特定模块的配置,展示了如何通过共享业务逻辑代码提高开发效率。最后,文章总结了Kotlin在Android开发、跨平台移动开发、后端开发和Web开发中的应用场景,并展望了其未来发展趋势,指出Kotlin将继续在函数式编程和跨平台开发领域不断完善和发展。; 适合人群:对函数式编程和跨平台开发感兴趣的开发者,尤其是有一定编程基础的Kotlin初学者和中级开发者。; 使用场景及目标:①理解Kotlin中高阶函数和Lambda表达式的使用方法及其在实际开发中的应用场景;②掌握Kotlin Multiplatform的实现方式,能够在多个平台上共享业务逻辑代码,提高开发效率;③了解Kotlin在不同开发领域的应用场景,为选择合适的技术栈提供参考。; 其他说明:本文不仅提供了理论知识,还结合了大量代码案例,帮助读者更好地理解和实践Kotlin的函数式编程特性和跨平台开发能力。建议读者在学习过程中动手实践代码案例,以加深理解和掌握。
内容概要:本文深入探讨了利用历史速度命令(HVC)增强仿射编队机动控制性能的方法。论文提出了HVC在仿射编队控制中的潜在价值,通过全面评估HVC对系统的影响,提出了易于测试的稳定性条件,并给出了延迟参数与跟踪误差关系的显式不等式。研究为两轮差动机器人(TWDRs)群提供了系统的协调编队机动控制方案,并通过9台TWDRs的仿真和实验验证了稳定性和综合性能改进。此外,文中还提供了详细的Python代码实现,涵盖仿射编队控制类、HVC增强、稳定性条件检查以及仿真实验。代码不仅实现了论文的核心思想,还扩展了邻居历史信息利用、动态拓扑优化和自适应控制等性能提升策略,更全面地反映了群体智能协作和性能优化思想。 适用人群:具备一定编程基础,对群体智能、机器人编队控制、时滞系统稳定性分析感兴趣的科研人员和工程师。 使用场景及目标:①理解HVC在仿射编队控制中的应用及其对系统性能的提升;②掌握仿射编队控制的具体实现方法,包括控制器设计、稳定性分析和仿真实验;③学习如何通过引入历史信息(如HVC)来优化群体智能系统的性能;④探索中性型时滞系统的稳定性条件及其在实际系统中的应用。 其他说明:此资源不仅提供了理论分析,还包括完整的Python代码实现,帮助读者从理论到实践全面掌握仿射编队控制技术。代码结构清晰,涵盖了从初始化配置、控制律设计到性能评估的各个环节,并提供了丰富的可视化工具,便于理解和分析系统性能。通过阅读和实践,读者可以深入了解HVC增强仿射编队控制的工作原理及其实际应用效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值