C# 在C语言中使用SQLServer2008决策树进行预测#
我正在创建一个C#应用程序,我将通过一个简单的示例来解释我想要什么: 考虑下表:C# 在C语言中使用SQLServer2008决策树进行预测#,c#,sql-server-2008,ssas,decision-tree,C#,Sql Server 2008,Ssas,Decision Tree,我正在创建一个C#应用程序,我将通过一个简单的示例来解释我想要什么: 考虑下表: name age reply choice ------+-------+-------+------- John 10-20 yes apple Kate 20-30 yes orange Sam 10-20 yes apple Peter 10-20 no ---- Tom 20-30 no ---- Mik
name age reply choice
------+-------+-------+-------
John 10-20 yes apple
Kate 20-30 yes orange
Sam 10-20 yes apple
Peter 10-20 no ----
Tom 20-30 no ----
Mike 10-20 yes orange
我想为所有回答的人建立一个预测性的“年龄”决策树。然后预测那些没有回答的人的选择 该表保存在SQL Server 2008数据库中。SQLServer2008中有一个功能允许这样做。我搜索了Microsoft帮助网站,但没有找到任何关于如何使用它的明确指南
我如何在我的C#代码中使用它,有人得到了它的一步一步指南吗?这就可以做到:
-- create table
declare @t table (name varchar(50), age varchar(50), reply varchar(3), answer varchar(50))
insert @t (name, age, reply, answer)
values ('John', '10-20', 'yes', 'apple'),
('Kate', '20-30', 'yes', 'orange'),
('Sam', '10-20', 'yes', 'apple'),
('Peter', '10-20', 'no', '----'),
('Tom', '20-30', 'no', '----'),
('Mike', '10-20', 'yes', 'orange')
-- get answer
select t.name, t.age, t.reply, case t.reply when 'yes' then t.answer else w.answer end answer
from @t t
left join (
select age, answer
from (
select age, answer, count(*) cnt, row_number() over (partition by age order by count(*) desc) rnk
from @t
where reply = 'yes'
group by age, answer
) s
where rnk = 1
) w on t.age = w.age
只需找出as为每个年龄段提供的答案最多,如果没有给出答案,则选择该答案
当两个答案之间出现平局时,它只选择一个。我认为这是第一位的,但并不能保证它会一直做到这一点
请注意,如果你有一个答案为a:B=55%:45%的群体,那么所有没有答案的人都会得到答案a,因此你可以通过这样做来改变人口的平均数。只是想让你知道 你能告诉我2008年的具体功能是什么吗?因为它对我来说并不重要。。这个例子的预期结果是什么?彼得吃苹果,汤姆吃橘子?您可以通过一个相对简单的查询来实现这一点。需要更多的帮助。您好,谢谢您的回复。是的,结果将是彼得得到苹果(因为大多数“10-20”想要汤姆得到苹果和橘子)。我提到的功能在这个链接中有描述。另外,如果这可以通过查询来完成,你能帮我吗?我不在乎我用什么,我只想要结果。非常感谢你