刚接触机器学习,读书之余编小程序测试效果。贴上供学习用的简易代码,仅供刚开始学习的新手做测试及理解算法用。菜鸟也要飞
没有写画分界线的代码,求得分界线方程后可用这个网站画出分界线图像: http://zh.numberempire.com/graphingcalculator.php
测试数据:坐标系中随便6个点的坐标。分成两类。标签分别设置成1,0。
#include <iostream>
#include <cmath>
using namespace std;
int main(){
double d1[3] = { 1, 1, 3 };//点一(1,3)
double d2[3] = { 1, 3, 1 };//点二(3,1)
double d3[3] = { 1, 4, 8 };//点三(4,8)
double d4[3] = { 1, 3, 5};//点四(3,5)
double d5[3] = { 1, 7, 7 };//点五(7,7)
double d6[3] = { 1, 5, 4 };//点六(5,4)
double w[3] = { 1, 1, 1 };//回归系数
double dclass[6] = { 0,0, 0, 1, 1, 1 };//指定的初始分类 点一、二、三类别为0,四、五、六类别为1
double h[6];//当前分类
double derror[6];//每步当前分类与指定分类的误差
double a = 0.01;//步长
double b0, b1, b2;//三个buffer,用来存储样本数据乘以该样本当前对应的误差 用来修正数据
for (int i = 0; i <1000; i++){//迭代1000次
h[0] = 1 / (1 + exp(-(d1[0] * w[0] + d1[1] * w[1] + d1[2] * w[2])));//sigmoid函数
h[1] = 1 / (1 + exp(-(d2[0] * w[0] + d2[1] * w[1] + d2[2] * w[2])));
h[2]

本文介绍了作者在学习机器学习过程中,使用Logistic回归算法进行实践的经历。提供了简易的代码示例,适用于初学者理解和测试算法。文中提到,虽然未包含绘制分界线的代码,但可以通过外部网站生成分界线图像,并给出了测试数据:6个点分为两类,用1和0标记。
最低0.47元/天 解锁文章
6363

被折叠的 条评论
为什么被折叠?



