feat(projects): 新增Scikit-learn综合案例示例代码及样例数据
This commit is contained in:
41
projects/machine-learning/mock_choosing_watermelon.py
Normal file
41
projects/machine-learning/mock_choosing_watermelon.py
Normal file
@@ -0,0 +1,41 @@
|
||||
import unittest
|
||||
|
||||
|
||||
def get_answer_by_feature(feature, answer):
|
||||
if feature in answer:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def is_better_watermelon(appearance, pattern, spot_range, echo):
|
||||
features = [
|
||||
get_answer_by_feature(appearance, {"round", "oval"}),
|
||||
get_answer_by_feature(pattern, {"clear", "bright"}),
|
||||
get_answer_by_feature(spot_range, {"middle", "big"}),
|
||||
get_answer_by_feature(echo, {"clear", "pleasant"}),
|
||||
]
|
||||
|
||||
if features.count(True) >= 3:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
class TestChooseBetterWatermelon(unittest.TestCase):
|
||||
|
||||
samples = [
|
||||
dict(appearance="broken", pattern="clear", spot_range="big", echo="depressing"),
|
||||
dict(appearance="round", pattern="clear", spot_range="big", echo="pleasant"),
|
||||
dict(appearance="oval", pattern="bright", spot_range="middle", echo="clear"),
|
||||
dict(
|
||||
appearance="round", pattern="blured", spot_range="small", echo="depressing"
|
||||
),
|
||||
]
|
||||
|
||||
def test_is_better_watermelon(self):
|
||||
for sample in self.samples:
|
||||
with self.subTest(**sample):
|
||||
self.assertTrue(is_better_watermelon(**sample))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main(verbosity=2)
|
||||
Reference in New Issue
Block a user