狠狠综合久久久久综合网址-a毛片网站-欧美啊v在线观看-中文字幕久久熟女人妻av免费-无码av一区二区三区不卡-亚洲综合av色婷婷五月蜜臀-夜夜操天天摸-a级在线免费观看-三上悠亚91-国产丰满乱子伦无码专区-视频一区中文字幕-黑人大战欲求不满人妻-精品亚洲国产成人蜜臀av-男人你懂得-97超碰人人爽-五月丁香六月综合缴情在线

代寫CSC 330、代做C/C++編程語言
代寫CSC 330、代做C/C++編程語言

時間:2024-04-03  來源:  作者: 我要糾錯



CSC 330 Programming Languages
Project
Note 1 This project is to be done individually
Note 2 Working with other people is prohibited.
Note 2 Sharing queries or files with other people is prohibited.
A note on Academic Integrity and Plagiarism
Please review the following documents:
• Standards for Professional Behaviour, Faculty of Engineering:
https://www.uvic.ca/engineering/assets/docs/professional-behaviour.pdf
• Policies Academic Integrity, UVic:
https://www.uvic.ca/students/academics/academic-integrity/
• Uvic’s Calendar section on Plagirism:
https://www.uvic.ca/calendar/undergrad/index.php#/policy/Sk_0xsM_V
Note specifically:
Plagiarism
Single or multiple instances of inadequate attribution of sources should result in a failing grade
for the work. A largely or fully plagiarized piece of work should result in a grade of F for the
course.
Submissions will be screened for plagiarism at the end of the term.
You are responsible for your own submission, but you could also be responsible if somebody plagiarizes
your submission.
1 Objectives
After completing this project, you will have experience:
• Programming Functionally
• Basket analysis in big datasets using the A-priori algorithm
2 The A-priori algorithm
The A-priori algorithm is used to identify commonly found groups of items in basket analysis. For example,
if you buy milk, what other item are you likely to buy?
The input file to this algorithm will be a CSV file. Each CSV file is a set of transactions, one per line. A
transaction is a set of items sold together (each item is separated by a delimiter character). A transaction is
guaranteed to have no duplicate items.
1
Our goal is to identify pairs of items that are sold together above certain minimum threshold. A minimum
support threshold is the minimum proportion of transactions an item should appear in order to be be part of
the output (we will call these popular items).
The A-priori algorithm is relatively simple. Assume that i is the number of different items in the dataset,
and n is the number of popular items. Using dictionaries as the main data structure, the memory requirements
for this algorithm are O(max(n
2
, i)) irrespectively of the size of the input (which can be much larger than
the available memory). To accomplish this, the algorithm does two passes on the input data.
• First pass. In the first pass of all transactions, a dictionary of popular items is computed. This dictionary will have as its key the item name, and as its value its frequency (number of transactions where
the item appears). After all transactions are read, compute the minimum support (an integer computed
by multiplying the minimum support threshold by the number of transactions, truncating this number,
i.e. floor). Return a dictionary that contains only the popular items. The result of the first pass is a
dictionary that contains only popular items.
• Second pass. Read the transactions again. This time keep a counter of popular pairs of items. The key
will be the pair of items (item1, item2). The frequency is symmetric, freq(item1, item2) = freq(item2,
item1). For this reason the dictionary should keep only one copy per pair (e.g. order them such
that given item1, item2, the key to the dictionary is always (min(item1,item2), max(item1,item2)).
Return a dictionary that contains only the popular pairs of items. The result of the second pass is a
dictionary that contains only popular pairs of items.
• Report the results. Using the two dictionaries, print a table with the results. See below for details.
Note that some CSV files use ’,’ and some ’;’ as a separator.
3 Your task, should you choose to accept it
Implement 3 functions that implement the 3 steps of the A-priori algorithm
3.1 Preliminaries: how to run your program
Your program is run with the following arguments. See the Makefile for the specifics of how to compile and
run the program. You will find in the Makefile 4 test cases.
<filename> <delimiter> <MinimumSuportThreshold> <linesToPrint>
• filename. A CSV delimited file. One record per line. You can assume there are no duplicates in a
record.
• delimiter. A one character string that indicates the separator between items in a record. Use quotes
around it to avoid the shell to interpret the character.
• MinimumSuportThreshold. The minimum support threshold that an pair should have to be part of the
output (between 0 and 1)
• linesToPrint. Print at most this number of items. If the result has more frequent items than this
number, print only this number of pairs.
2
For example, the command:
./apriori online.csv ’,’ .01 10
uses the file online.csv with delimiter , (comma) and minimum support threshold of 0.01 and requests to print at most the first 10 items.
3.2 Implementation details
Download from Gitlab the tar file. It contains several files. You will only modify and submit apriori.ml.
Note that this file defines a module that must match the signature provided.
Your job is to implement 3 functions:
3.3 First Pass
let do_first_pass ((threshold: float),
(lines: in_channel),
(delim: char)): first_pass_result =
This function takes three parameters:
1. threshold: The minimum threshold (between 0 and 1),
2. lines: a input stream from where to read the lines,
3. delim: the delimiter of the items in each line (a char).
Read the stream with the function input line. Note that this function generates an exception (that
you must handle) when the end of file is reached.
do first pass should return a record with 3 values (see apriori.ml for the definition of the record):
1. the number of transactions in the stream,
2. the minimum support (i.e. the minimum number of times a frequent item should appears), and
3. the dictionary of the frequent items with their corresponding frequency.
To compute the minimum support truncate the floating point number to an integer. The dictionary should
contain only items with at least this support.
3.3.1 Second Pass
let do_second_pass((support: int),
(popItems: items_dict),
(lines: in_channel),
(delim:char)): pairs_dict =
This function takes 4 parameters:
3
1. support: the minimum support (an integer),
2. popItems: the dictionary of frequent items,
3. lines: the input stream with the transactions,
4. delim: the delimiter (a char)
It should return a dictionary that contains the popular pairs equal or above the minimum support threshold and their corresponding frequency.
3.4 print table
let print_table((nTransactions: int),
(popItems: items_dict),
(popPairs: pairs_dict),
(toPrint:int)):int =
This function prints a table with the popular pairs, and some extra information. It takes 4 parameters:
1. nTransactions is the number of records in the file (result of first pass).
2. popItems is the popular items (result of the first pass),
3. freqPairs is the list of popular pairs (result of the second pass).
4. toPrint: print at most a given number of pairs.
The columns of these report are:
• Support of the pair: the proportion of transactions that have this pair.
• The item name.
• The frequency of this item. Number of transactions where this item appears.
• The support of this item. The proportion of transactions that include this item.
• The other item in the pair.
• The frequency of this pair. Number of transactions where this pair appears.
• Confidence: the support of the pair divided by the support of other item. This number represents the
proportion of transactions of the second item where the first item appears. When it one it means that
every time the second item appears, the first also appears.
• Lift. The support of the pair divided by the product of the support of both items.
Running with parameters: Filename [./data/online.csv] Separator [,] Minimum relative support threshold
[0.01] and Print at most 10 tuples.
4
SuppPair-Item - Freq- Support-With - FreqPair- Conf. - Lift
0.010887 regency tea plate green 386 0.014902 regency tea plate pink 282 0.898 60.265
0.010501 regency tea plate roses 457 0.017643 regency tea plate pink 272 0.866 49.097
0.012431 regency tea plate roses 457 0.017643 regency tea plate green 322 0.834 47.281
0.010887 wooden star christmas scandinavian 515 0.019883 wooden tree christmas scandinavian 282 0.832 41.838
0.013512 set/6 red spotty paper plates 527 0.020346 set/6 red spotty paper cups 350 0.818 40.193
0.024863 green regency teacup and saucer 1057 0.040808 pink regency teacup and saucer 644 0.804 19.702
0.010154 poppy’s playhouse kitchen 440 0.016987 poppy’s playhouse livingroom 263 0.797 46.916
0.010115 poppy’s playhouse bedroom 426 0.016447 poppy’s playhouse livingroom 262 0.794 48.274
0.013512 small dolly mix design orange bowl 528 0.020385 small marshmallows pink bowl 350 0.781 38.326
0.012354 bathroom metal sign 709 0.027372 toilet metal sign 320 0.780 28.514
Number items printed: 10
Number transactions: 25902
Number popular items: 592
Number popular pairs: 746
The results should be ordered according to (think order by in SQL):
1. confidence descending,
2. lift descending,
3. item frequency descending,
4. item name, ascending,
5. item name it appears with, ascending.
Use these bindings to format the output (they are defined in apriori.ml):
let lineTitleFormatString = format_of_string
" SuppPair-%s - Freq- Support-%s - FreqPair- Conf. - Liftn"
let lineDataFormatString = format_of_string
"%9.6f %s %6d %8.6f %s %6d %9.3f %9.3fn"
These work in the same way than printf in C. Use Note that the columns for both items (%s) do not
have a width specification. This is because their width will be dynamically computed. The width of each of
the columns is the maximum width of any of the corresponding items to be printed (but cannot be less than
10 characters).
3.5 Tests
The files you downloaded contain several tests. The directory expected contains the expected output. The
directory data contains four datasets. See the Makefile to understand how to run the program and generate
each output. Use diff to compare your output to the expected one (see Makefile).
Your program’s output should be identical to the expected output for the same command line and input
dataset.
3.6 Dictionaries
The dictionaries used in this assignment are non-mutable. As with our assignments, when we insert or delete
from a dictionary, a new dictionary is created. Unfortunately it means that to update a value, you have to
remove it and insert it again. The dictionaries are defined in the file dicts.ml.
To create a dictionary of type ItemMap use Dicts.ItemMap.empty.
To find a value in a dictionary use Dicts.ItemMap.add key value dictionary.
To remove a value use Dicts.ItemMap.remove key dictionary. Both functions are curried.
5
3.7 Grading
The grading is divided into 3 parts:
• First pass: 30%
• Second pass: 30%
• Report: 40%
Your functions will be tested one at a time, using the signature provided.
Your program will be tested in Linux.csc.uvic.ca. Make sure it compiles there. If your program does not
compile, it will receive a zero.
If your program generates any warnings, it will receive a zero.
3.8 Hints
1. The algorithm is relatively straightforward, most of the code you will write is to parse the input and
to format the output.
2. Do not read the stream more than once per pass, because you function might run out of memory.
This means you need to compute its length as you are processing it.
3. Be careful with the output. Your program’s output should match byte-by-byte the expected output.
4. For anything not precisely specified here, see expected output and check/ask in brightspace. There
will a forum to discuss the assignment.
3.9 Other information and restrictions
Violating any of the following restrictions will result in a grade of zero:
1. No mutation.
2. The input stream should not be processed more than once in each function.
3. Your functions should read only one line at a time. You cannot read the entire input stream to
memory.
You can share test cases with others but you are forbidden from sharing source code.
4 What to submit
Submit, via Brigthspace:
請加QQ:99515681  郵箱:99515681@qq.com   WX:codinghelp














 

標簽:

掃一掃在手機打開當前頁
  • 上一篇: CISC3025代寫、代做c++,Java程序設計
  • 下一篇:CSC3150代寫、Java/C++程序語言代做
  • 無相關信息
    昆明生活資訊

    昆明圖文信息
    蝴蝶泉(4A)-大理旅游
    蝴蝶泉(4A)-大理旅游
    油炸竹蟲
    油炸竹蟲
    酸筍煮魚(雞)
    酸筍煮魚(雞)
    竹筒飯
    竹筒飯
    香茅草烤魚
    香茅草烤魚
    檸檬烤魚
    檸檬烤魚
    昆明西山國家級風景名勝區
    昆明西山國家級風景名勝區
    昆明旅游索道攻略
    昆明旅游索道攻略
  • NBA直播 短信驗證碼平臺 幣安官網下載 歐冠直播 WPS下載

    關于我們 | 打賞支持 | 廣告服務 | 聯系我們 | 網站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 kmw.cc Inc. All Rights Reserved. 昆明網 版權所有
    ICP備06013414號-3 公安備 42010502001045

    狠狠综合久久久久综合网址-a毛片网站-欧美啊v在线观看-中文字幕久久熟女人妻av免费-无码av一区二区三区不卡-亚洲综合av色婷婷五月蜜臀-夜夜操天天摸-a级在线免费观看-三上悠亚91-国产丰满乱子伦无码专区-视频一区中文字幕-黑人大战欲求不满人妻-精品亚洲国产成人蜜臀av-男人你懂得-97超碰人人爽-五月丁香六月综合缴情在线
  • <dl id="akume"></dl>
  • <noscript id="akume"><object id="akume"></object></noscript>
  • <nav id="akume"><dl id="akume"></dl></nav>
  • <rt id="akume"></rt>
    <dl id="akume"><acronym id="akume"></acronym></dl><dl id="akume"><xmp id="akume"></xmp></dl>
    黄色www网站| 国产网站免费在线观看| 中国丰满人妻videoshd| 成人在线免费观看视频网站| 男女爽爽爽视频| 激情综合网婷婷| 日本在线观看a| 色一情一乱一伦一区二区三区日本| 日本福利视频网站| 5月婷婷6月丁香| 久久9精品区-无套内射无码| 97在线播放视频| 国产理论在线播放| 激情黄色小视频| 四虎成人在线播放| www.亚洲成人网| 丰满爆乳一区二区三区| 久久久噜噜噜www成人网| 99久久激情视频| 亚洲精品自拍网| 国产精品一二三在线观看| 国产一级黄色录像片| 波多野结衣之无限发射| 男女av免费观看| 北条麻妃亚洲一区| 高清欧美精品xxxxx| 黄色片一级视频| 992tv人人草| 99爱视频在线| 在线播放免费视频| 男女视频网站在线观看| 欧美一级特黄a| 欧美无砖专区免费| 三上悠亚在线一区二区| 国产成人艳妇aa视频在线| 亚洲成熟丰满熟妇高潮xxxxx| 国产精品区在线| 日日碰狠狠添天天爽超碰97| 一女二男3p波多野结衣| 日韩黄色短视频| 国产精品一区二区小说| 久久久久久人妻一区二区三区| 日本特黄a级片| 玩弄中年熟妇正在播放| 91免费网站视频| www.99av.com| 116极品美女午夜一级| 黄黄视频在线观看| 亚洲免费看av| www黄色在线| 国产av麻豆mag剧集| 日韩精品福利片午夜免费观看| 妞干网在线免费视频| 青青草国产免费| 老司机午夜网站| 国产成年人在线观看| 国产精品区在线| wwww.国产| 日韩人妻精品无码一区二区三区| 黄色网zhan| 免费观看国产视频在线| 久久综合在线观看| 亚洲涩涩在线观看| 午夜激情影院在线观看| 亚洲一区日韩精品| 特黄视频免费观看| 午夜剧场在线免费观看| 毛片毛片毛片毛| 中文字幕在线综合| 亚洲欧美自拍另类日韩| 男生操女生视频在线观看| 国产精品一区二区羞羞答答| 国产日韩成人内射视频| 欧美日韩第二页| www.激情小说.com| 亚洲色图 在线视频| 色婷婷.com| 欧洲金发美女大战黑人| 欧美又粗又长又爽做受| 久久久久久久久久久99| 91好吊色国产欧美日韩在线| 亚洲人成无码网站久久99热国产 | 国产人妻互换一区二区| 亚洲av首页在线| 日韩人妻无码精品久久久不卡| 久久久久久www| 欧美性大战久久久久xxx| 91在线视频观看免费| 爱爱爱爱免费视频| www.18av.com| 国产精品亚洲a| 99999精品| 3d动漫一区二区三区| 精品999在线| 日本中文字幕在线视频观看| 日韩欧美在线播放视频| 婷婷激情5月天| 少妇人妻无码专区视频| 亚洲综合欧美在线| 91九色丨porny丨国产jk| 一区二区三区网址| 无码av天堂一区二区三区| 九九九在线观看视频| 屁屁影院ccyy国产第一页| 成人在线看视频| 日韩精品一区二区三区电影| 成人久久久久久久久| 福利在线小视频| xxxx一级片| 国产不卡一区二区视频| 中文字幕在线视频精品| 欧美在线观看成人| eeuss中文| 亚洲天堂2018av| jizzjizzxxxx| 99er在线视频| 香蕉视频在线网址| 性生生活大片免费看视频| 东京热加勒比无码少妇| 97碰在线视频| 一级特黄妇女高潮| 国产成年人在线观看| 超碰在线97免费| 红桃av在线播放| 鲁一鲁一鲁一鲁一色| 激情六月天婷婷| 福利在线小视频| 男同互操gay射视频在线看| 第一区免费在线观看| 国产精品igao| www.天天射.com| 天天爱天天操天天干| 日韩欧美黄色大片| 久热免费在线观看| www.色就是色| 午夜激情av在线| www.色就是色.com| 伊人成人免费视频| 国产精品久久成人免费观看| 欧洲在线免费视频| 国产成人精品免费看在线播放| 91热视频在线观看| 在线观看污视频| 拔插拔插海外华人免费| 亚洲欧洲日产国码无码久久99| 国产 日韩 亚洲 欧美| 欧美爱爱视频免费看| 激情六月丁香婷婷| 蜜桃免费在线视频| 小说区视频区图片区| 97超碰在线视| 国产最新免费视频| 在线观看免费的av| 久久久久久久香蕉| 国产精品久久久久9999小说| 日韩中文字幕a| 日韩精品久久一区二区| 熟女性饥渴一区二区三区| 国产3p在线播放| 一本久道高清无码视频| 九色porny91| 干日本少妇视频| 逼特逼视频在线| 日韩av自拍偷拍| 大j8黑人w巨大888a片| 天天插天天操天天射| 国产va亚洲va在线va| 日本高清久久久| a级黄色一级片| 一级日本黄色片| 日本成人黄色网| wwwwww欧美| 久热在线视频观看| 黄色片视频在线免费观看| 四虎成人在线播放| 日本不卡在线观看视频| 爱爱爱视频网站| 一本色道久久亚洲综合精品蜜桃 | 日本一二三区视频在线| 一级在线免费视频| 91免费黄视频| 水蜜桃在线免费观看| 久久久久久三级| 免费在线激情视频| 国产夫妻自拍一区| 一级片免费在线观看视频| 欧美精品第三页| 黄色片视频在线免费观看| 屁屁影院ccyy国产第一页| 国产精品久久久久久久99| 狠狠热免费视频| 青青青在线播放| 欧美日韩激情视频在线观看| 久久av综合网| 我的公把我弄高潮了视频| 久久手机在线视频| 日韩精品久久一区二区| 蜜桃视频一区二区在线观看| 青青草原播放器| 妞干网这里只有精品|