楼主: andystata
2097 5

[问答] 如何求最优的直线解析式(一个有趣的问题) [推广有奖]

  • 3关注
  • 0粉丝

本科生

25%

还不是VIP/贵宾

-

威望
0
论坛币
935 个
通用积分
0.0617
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1116 点
帖子
58
精华
0
在线时间
68 小时
注册时间
2015-7-2
最后登录
2017-11-1

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

example 如图所示,有两种颜色的点,想求一条最优的直线,使得尽可能多的蓝色点在直线上方,尽可能多的橙色点在直线下方。
(which means 找一条线尽可能把这两种点分开)
我想的是可以用正确率来评价直线的优劣:
蓝色点数量为n1, 橙色点数量为n2. 一共有N=n1+n2个点。
在某条直线a1上方的蓝色点数量(被直线正确区分的蓝色点的数量)为m1,在a1下方的橙色点(被直线正确区分的橙色点的数量)为m2。
那么直线a1的正确率就是:(m1+m2)/N
我们目标就是找到正确率最大的那条直线。
但是这个要怎么code啊 。。写循环吗?。。
欢迎讨论!!!谢谢!!
上面那幅图是这样画出来的:
lm_male_h=ggplot(data=data1111, aes(x=slope, y=intercept, color=whether_hcc))+
  geom_point(aes(color=factor(whether_hcc)),size=0.5)+
  xlim(c(-1,5))+
  ylim(c(-3,250))+
  ggtitle("k and b scatter of male hepc \n with AFP_value as response")


数据见附件
data1111.csv.zip (5.74 KB) 本附件包括:
  • data1111.csv

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:有趣的问题 Intercept response Whether Scatter

沙发
andystata 发表于 2017-8-9 05:18:18 |只看作者 |坛友微信交流群
哪位大神要是能帮我解决这个问题,奖励炉石传说新版本60卡包

使用道具

藤椅
cheetahfly 在职认证  发表于 2017-8-9 14:56:57 |只看作者 |坛友微信交流群
你所提出的问题“找到正确率最大的那条直线”在绝大多数情况下有无穷多的解,比如:
classifier.png
上图中有无限多条直线都能够将两类点分开,且,每条直线的你所定义的“正确率(m1+m2)/N”都是相同的。
所以,你需要重新提出你的问题,要保证在大部分条件下有唯一最优解。

其实,你的这个问题属于一个“Binary Classification”的问题,在数学上已经研究得比较成熟了,比如用
Support Vector Classifier来解决,就是一个比较完善的最优化解法,简要概述如下:
svc.png
总之,你所提出的问题是一个“数学问题”多过“编程问题”。



已有 1 人评分论坛币 收起 理由
admin_kefu + 30 热心帮助其他会员

总评分: 论坛币 + 30   查看全部评分

使用道具

板凳
andystata 发表于 2017-8-9 17:30:05 |只看作者 |坛友微信交流群
cheetahfly 发表于 2017-8-9 14:56
你所提出的问题“找到正确率最大的那条直线”在绝大多数情况下有无穷多的解,比如:

上图中有无限多条直 ...
谢谢!那请问要是我需要任意一条满足条件的,需要怎么code啊

使用道具

报纸
cheetahfly 在职认证  发表于 2017-8-9 23:47:34 |只看作者 |坛友微信交流群
andystata 发表于 2017-8-9 17:30
谢谢!那请问要是我需要任意一条满足条件的,需要怎么code啊
正如我之前阐述的个人浅见,这首先是一个数学问题,其次才是编程问题,具体来说,
就是先要推导出寻找“正确率最大”的任意一条直线的数学方法,然后再用编程去实现它。
如果蓝色点和橙色点能够被完美地分成两部分,即,能够找到直线获得100%的正确率,当然,这肯定是最优解之一,无需证明。
但是,假如100个两种颜色的点交错在一起,一条直线分出了83个点,17个点在错误的一边,如何能够知道这已经是最好的结果了?“穷举法”在这个场合就不适用了,需要数学上的证明和推导才行。
你可以试下再数学论坛也咨询一下。

使用道具

地板
andystata 发表于 2017-8-9 23:53:41 |只看作者 |坛友微信交流群
cheetahfly 发表于 2017-8-9 23:47
正如我之前阐述的个人浅见,这首先是一个数学问题,其次才是编程问题,具体来说,
就是先要推导出寻找“ ...
好的,感谢!

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-25 15:51