Идентифицировать фрукт: яблоко, груша, слива, абрикос по трем признакам
В приведенных ниже задачах, используя условный оператор, необходимо составить программу идентификации. Предусмотреть защиту от неверного ввода данных. Для неопознанного объекта должно выдаваться соответствующее сообщение на экран.
Задача
Идентифицировать фрукт: яблоко, груша, слива, абрикос по трем признакам.
Добавлено через 3 часа 17 минут
Как я понял, то можно идентифицировать по признакам:
1. цвету: красное яблоко/зеленая груша и т.п.
и сделать через условный оператор if (a=1)&&(b=2)&&(c=3) then cout a=1 — цвет красный
b=2 — круглое
c=3 — что то еще
А дальше в голову ничего не лезет
Организовать поиски спектаклей по трем признакам
В театре начался новый театральный сезон, сведения: Дата спектакля, время, название, жанр, автор, и.
Организовать поиски игр по трем признакам
Имеются сведения о играх продающихся в магазине Меломан, название игр, её жанр, стоимость, и.
Определить тип числа по трем признакам
Помогите пожалуйста разобраться с данной задачей. Долго искал искал нечто похожее, но.
Составить программу,которая сравнивает треугольники.(по трём признакам)
Составить программу,которая сравнивает треугольники.(по трём признакам)
Сообщение было отмечено Bambilo как решение
Решение
по цвету не очень, яблоко может быть как красным так и зелёным
косточка бархат круглый (овальный) яблоко М - Y груша М - N слива Б - Y абрикос Б + Y
Сообщение от Yetty
да, пример, конечно, так себе. не очень. но доля реальной ценности, конечно, в таком коде есть. только признаков больше, и определение фрукта — многоступенчатое. как вариант: от вопроса «откуда он доставлен» до вопроса(ов) «сколько косточек» и «какова структура мякоти» и/или «из какого цветка образовался плод» (хотя последний вопрос можно исключить, т.к. в большинстве реальности нам это неизвестно по факту на настоящий момент).
вообще, определители в различного рода биологических наук именно так и построены — по логике
модель у ТСа, конечно, не ахти. но это не запрет на кодирование такой его модели.
просто потом, когда поймёт, как кодить это «дерево принятия решений» — будет дорабатывать свою модель. (чтобы отличить яблоки от груш) — Yetty, не думаю, что он пришёл в этот раздел за советами по вопросу. rкак это моделировать. скорее, по вопросу кода-алгоритма. в рамках алгоритма — а какие Уровни Абстракции он будет использовать — может, это его know-how и он не хочет его в public бросать. его явно алгоритм реализации логики интересует.
p.s.
(факторы/признаки всегда можно заменить/ доработать потом)
источник :
Data Science. Наука о данных с нуля — Joel Grus / Джоэл Грас (правда др. язык) — c 171
Для того, чтобы построить Дерево Решений, необходимо решить какие вопросы задавать и в каком порядке.
в общем, там на стр.233 даже пример (правда на др. языке). В идеале, надо подобрать вопросы, ответы на которые дают максимальное количество информации. Идея о «количестве информации» определяется термином энтропия.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
from collections import Counter, defaultdict from functools import partial import math, random def entropy(class_probabilities): """given a list of class probabilities, compute the entropy""" return sum(-p * math.log(p, 2) for p in class_probabilities if p) def class_probabilities(labels): total_count = len(labels) return [count / total_count for count in Counter(labels).values()] def data_entropy(labeled_data): labels = [label for _, label in labeled_data] probabilities = class_probabilities(labels) return entropy(probabilities) def partition_entropy(subsets): """find the entropy from this partition of data into subsets""" total_count = sum(len(subset) for subset in subsets) return sum( data_entropy(subset) * len(subset) / total_count for subset in subsets ) def group_by(items, key_fn): """returns a defaultdict(list), where each input item is in the list whose key is key_fn(item)""" groups = defaultdict(list) for item in items: key = key_fn(item) groups[key].append(item) return groups def partition_by(inputs, attribute): """returns a dict of inputs partitioned by the attribute each input is a pair (attribute_dict, label)""" return group_by(inputs, lambda x: x[0][attribute]) def partition_entropy_by(inputs,attribute): """computes the entropy corresponding to the given partition""" partitions = partition_by(inputs, attribute) return partition_entropy(partitions.values()) def classify(tree, input): """classify the input using the given decision tree""" # if this is a leaf node, return its value if tree in [True, False]: return tree # otherwise find the correct subtree attribute, subtree_dict = tree subtree_key = input.get(attribute) # None if input is missing attribute if subtree_key not in subtree_dict: # if no subtree for key, subtree_key = None # we'll use the None subtree subtree = subtree_dict[subtree_key] # choose the appropriate subtree return classify(subtree, input) # and use it to classify the input def build_tree_id3(inputs, split_candidates=None): # if this is our first pass, # all keys of the first input are split candidates if split_candidates is None: split_candidates = inputs[0][0].keys() # count Trues and Falses in the inputs num_inputs = len(inputs) num_trues = len([label for item, label in inputs if label]) num_falses = num_inputs - num_trues if num_trues == 0: # if only Falses are left return False # return a "False" leaf if num_falses == 0: # if only Trues are left return True # return a "True" leaf if not split_candidates: # if no split candidates left return num_trues >= num_falses # return the majority leaf # otherwise, split on the best attribute best_attribute = min(split_candidates, key=partial(partition_entropy_by, inputs)) partitions = partition_by(inputs, best_attribute) new_candidates = [a for a in split_candidates if a != best_attribute] # recursively build the subtrees subtrees = { attribute : build_tree_id3(subset, new_candidates) for attribute, subset in partitions.items() } subtrees[None] = num_trues > num_falses # default case return (best_attribute, subtrees) def forest_classify(trees, input): votes = [classify(tree, input) for tree in trees] vote_counts = Counter(votes) return vote_counts.most_common(1)[0][0] if __name__ == "__main__": inputs = [ ({'level':'Senior','lang':'Java','tweets':'no','phd':'no'}, False), ({'level':'Senior','lang':'Java','tweets':'no','phd':'yes'}, False), ({'level':'Mid','lang':'Python','tweets':'no','phd':'no'}, True), ({'level':'Junior','lang':'Python','tweets':'no','phd':'no'}, True), ({'level':'Junior','lang':'R','tweets':'yes','phd':'no'}, True), ({'level':'Junior','lang':'R','tweets':'yes','phd':'yes'}, False), ({'level':'Mid','lang':'R','tweets':'yes','phd':'yes'}, True), ({'level':'Senior','lang':'Python','tweets':'no','phd':'no'}, False), ({'level':'Senior','lang':'R','tweets':'yes','phd':'no'}, True), ({'level':'Junior','lang':'Python','tweets':'yes','phd':'no'}, True), ({'level':'Senior','lang':'Python','tweets':'yes','phd':'yes'},True), ({'level':'Mid','lang':'Python','tweets':'no','phd':'yes'}, True), ({'level':'Mid','lang':'Java','tweets':'yes','phd':'no'}, True), ({'level':'Junior','lang':'Python','tweets':'no','phd':'yes'},False) ] for key in ['level','lang','tweets','phd']: print(key, partition_entropy_by(inputs, key)) print() senior_inputs = [(input, label) for input, label in inputs if input["level"] == "Senior"] for key in ['lang', 'tweets', 'phd']: print(key, partition_entropy_by(senior_inputs, key)) print() print("building the tree") tree = build_tree_id3(inputs) print(tree) print("Junior / Java / tweets / no phd", classify(tree, { "level" : "Junior", "lang" : "Java", "tweets" : "yes", "phd" : "no"} )) print("Junior / Java / tweets / phd", classify(tree, { "level" : "Junior", "lang" : "Java", "tweets" : "yes", "phd" : "yes"} )) print("Intern", classify(tree, { "level" : "Intern" } )) print("Senior", classify(tree, { "level" : "Senior" } ))
для перевода кода на C++ лучше разделите своё ТЗ на подзадачи. открывая ветки по тем из них, которые требуют реальной помощи в языке С++
Добавлено через 7 минут
P.S.
моделируйте факторы, а не шум
Источник
фрукты, персик, яблоко, груша, абрикос, png
973x1024px 1.34MB
800x1200px 438.33KB
658x501px 251.33KB
500x600px 595.81KB
1600x900px 343.89KB
1000x666px 463.47KB
856x809px 273.64KB
1690x2105px 3.55MB
2131x2998px 6.43MB
744x744px 463KB
2500x2721px 6.5MB
1360x1430px 2.67MB
1000x1000px 1.08MB
658x658px 290.61KB
500x500px 818.83KB
2480x2480px 4.34MB
800x800px 352.22KB
591x591px 417.81KB
585x500px 541.96KB
2953x2953px 3.49MB
1575x1285px 1.91MB
515x590px 337.27KB
999x1024px 716.73KB
591x591px 297.87KB
632x641px 1.56MB
602x570px 266.5KB
800x650px 541.19KB
3960x4184px 15.98MB
2729x1868px 2.32MB
618x578px 323.32KB
2500x2721px 6.5MB
1000x1000px 3.82MB
980x1447px 161.58KB
3505x3179px 2.5MB
8000x4314px 6.44MB
1024x890px 1.01MB
1300x812px 703.84KB
2131x2998px 1.99MB
800x800px 227KB
2044x2079px 4.36MB
6649x8000px 4.73MB
1300x1300px 502.65KB
1000x1000px 31.28KB
1400x2288px 3.41MB
850x595px 329.53KB
1600x1600px 35.92KB
816x674px 667.27KB
1024x975px 992.9KB
1024x693px 544.43KB
600x499px 484.77KB
Загрузи больше
- Terms Of Use
- Privacy Policy
- Загрузить PNG
- Contact Us
Источник
фрукты яблоко груша персик абрикос нектарин. — презентация
Презентация на тему: » фрукты яблоко груша персик абрикос нектарин.» — Транскрипт:
Похожие презентации
ФРУКТЫ ГРУША ЯБЛОКО ВИШНЯ АЙВА БАНАН АЛЫЧА СЛИВА.
ФРУКТЫ Фрукты papa-vlad.narod.ru ГРУША Груша ЯБЛОКО Яблоко.
АПЕЛЬСИН АБРИКОС ВИНОГРАД ЯБЛОКО АНАНАС ЛИМОН.
ФРУКТЫ Viki.rdf.ru ЛАЙМ ГРАНАТ АНАНАС ГРУША ГРЕЙПФРУТ.
фрукты яблоко яблоки груша груши персик персики.
ФРУКТЫ ЯБЛОКО ГРУША БАНАН ПЕРСИК АБРИКОС ХУРМА.
фрукты Фрукты papa-vlad.narod.ru яблоко Яблоко яблоки Яблоки.
ФРУКТЫ Prezentacii.com ЯБЛОКО ГРУША БАНАН АПЕЛЬСИН.
ФРУКТЫ Фрукты 900igr.net ЛИМОН Лимон ЯБЛОКО ЗЕЛЁНОГО ЦВЕТА Яблоко зелёного цвета.
ФРУКТЫ © Презентация с сайта Кировчанка.ru www.kirovchanka.ru.
плодовые деревья грейпфрутовое дерево апельсиновое дерево.
плодовые деревья Плодовые деревья. 900igr.net грейпфрутовое дерево Грейпфрутовое дерево.
плодовые деревья грейпфрут апельсин гранат лимон.
Как растут фрукты. Это цветок банана Так растет банан. Банан это трава.
Путешествие на остров Сокровищ. Остров Слонов «Я учусь считать» с. 58 153.
Фруктовые деревья. Черешня Яблоня Вишня Груша.
Лазарева Лидия Андреевна, учитель начальных классов, Рижская основная школа «ПАРДАУГАВА», Рига, Латвия, 2008.
ЗАДАЧИ: Вспомнить какие полезные витамины необходимы для здоровья человека. Выполнить декоративный натюрморт в технике «фактурная аппликация» МКОУ «Новоярковская.
фрукты Фрукты papa-vlad.narod.ru манго Манго манго Манго.
ЯБЛОКО Круглое, румяное, Я расту на ветке ; Любят меня взрослые И маленькие детки.
Подбираем похожую презентацию.
Источник