MLOps Zoomcamp 2024

Homework 6: Best Practices Statistics

Distribution of scores and reported study time for this homework.

Submissions

158

Median total score

6

Average total score

6

Score distribution

All values are points.

Questions score

Min
2
Median
6.0
Max
6
Q1
5.0
Avg
5.3
Q3
6.0

Learning in public score

Min
-
Median
0.0
Max
7
Q1
0.0
Avg
0.8
Q3
1.0

Total score

Min
2
Median
6.0
Max
14
Q1
5.0
Avg
6.2
Q3
6.0

Time distribution

All values are hours reported by students.

Lectures

Min
0.0
Median
5.0
Max
168.0
Q1
3.0
Avg
9.2
Q3
8.0

Homework

Min
1.0
Median
4.0
Max
72.0
Q1
3.0
Avg
5.4
Q3
5.0

Question breakdown

Correctness and answer distribution per question.

1. Refactoring

158 / 158 correct (100.0%)

Answer Count
if __name__ == "__main__": 50
if __name__ == '__main__': 31
if __name__ == "__main__": year = int(sys.argv[1]) month = int(sys.argv[2]) main(year, month) 8
if __name__ == "__main__" 7
if __name__ == '__main__': year = int(sys.argv[1]) month = int(sys.argv[2]) main(year, month) 6
if __name__ == '__main__': main() 4
if __name__ == '__main__' 3
if __name__=="__main__": 3
__name__ == "__main__" 2
predicted mean duration: 14.203865642696083 2
if __name__ == "__main__": main(year, month) 2
if __name__ == '__main__': year = int(sys.argv[1]) month = int(sys.argv[2]) main(year=year, month=month) 2
1. if __name__ == '__main__': 1
if __name__ == "__main__": year = int(sys.argv[1]) month = int(sys.argv[2]) print(year, month) main(year, month) 1
if __name__ == "__main__": main(args.year, args.month) 1
if name == 'main': year = int(sys.argv[1]) month = int(sys.argv[2]) main(year, month) 1
if __name__ == "__main__": main(int(sys.argv[1]), int(sys.argv[2])) 1
if __name__ == "__main__": parser = argparse.ArgumentParser(description='Prediction of taxi ride duration') parser.add_argument('year', type=str, help='Year chosen from yallow taxi datasets') parser.add_argument('month', type=int, help='Month chosen from yallow taxi datasets') args = parser.parse_args() main(args.year, args.month) 1
if __name__ =='__main__': 1
if __name__ == '__main__': year = int(sys.argv[1]) month = int(sys.argv[2]) main(year,month) 1
if __name__ =='__main__': year=int(sys.argv[1]) month=int(sys.argv[2]) main(year,month) 1
if __name__=='__main__': 1
if __name__ == '__main__': year = int(sys.argv[1]) month = int(sys.argv[2]) main(year = year, month = month) 1
if __name__ == '__main__': year = int(sys.argv[1]) month = int(sys.argv[2]) main(year, month) 1
if name == 'main': 1
If __name__ == '__main__': 1
if __name__ == "__main__": main() 1
if __name__ == "__main__": year = int(sys.argv[1]) month = int(sys.argv[2]) main(year, month) 1
if __name__=="__main__": main(2023, 1) 1
__name__ == "__main__": 1
if __name__ == "__main__": year = int(sys.argv[1]) month = int(sys.argv[2]) main(year, month) 1
if __name__ == '__main__': main(int(sys.argv[1]), int(sys.argv[2])) 1
Yes 1
batch.py 1
if s3_endpoint_url: options = { 'client_kwargs': { 'endpoint_url': s3_endpoint_url } } df = pd.read_parquet(filename, storage_options=options) else: df = pd.read_parquet(filename) 1
If the private variable __name__ is __main__, then we run the main function. The code is as follows: if __name__ == "__main__": year = int(sys.argv[1]) month = int(sys.argv[2]) input_file = f'https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_{year:04d}-{month:02d}.parquet' output_file = f'output/yellow_tripdata_{year:04d}-{month:02d}.parquet' main(categorical, year, month) 1
there is no if statement in the code. I used argument parser, with year and month as neeeded. Crashed other wise 1
if df.empty or dv is None or lr is None: return 1
if name == '__main__': main(year,month) 1
if __name__ == '__main__': if len(sys.argv) < 3: 1
if __name__ == "__main__": year = int(sys.argv[1]) month = int(sys.argv[2]) main(year,month) 1
__name__ == "__main__": year = int(sys.argv[1]) month = int(sys.argv[2]) main(year, month) 1
14.203865642696083 1
if__name__==__main__ 1
if __name__ == "__main__": parser = argparse.ArgumentParser(description="NYC Taxi Duration Prediction") parser.add_argument("--year", type=int, required=True, help="Year of the trip data") parser.add_argument( "--month", type=int, required=True, help="Month of the trip data" ) args = parser.parse_args() main(args.year, args.month) 1
if __name__ == '__main__': year = int(sys.argv[1]) month = int(sys.argv[2]) main(year=year, month=month) 1

2. Installing pytest

158 / 158 correct (100.0%)

Answer Count
__init__.py 134
Both of the above options are correct 6
test_model.py 1
touch tests/__init__.py 1
2. __init__.py 1
test_batch.py 1
init.py 1
tests/test_batch.py 1
__init___.py 1
The other file you need to create is __init__.py. This file allows the folder to be recognized as a module, making it possible to import batch.py. 1
3.7 1
- Both of the above options are correct 1
__inti__.py 1
__init.py__ 1
main.py maneja los argumentos de la línea de comandos y llama a las funciones en batch.py 1
conftest.py 1
__init__.pý 1
batch.py 1

3. Writing first unit test

125 / 158 correct (79.1%)

1 1 0 (0.0%)
2 2 125 (79.1%)
3 3 20 (12.7%)
4 4 11 (7.0%)

4. Mocking S3 with Localstack

146 / 158 correct (92.4%)

1 --backend-store-uri 3 (1.9%)
2 --profile 2 (1.3%)
3 --endpoint-url 146 (92.4%)
4 --version 1 (0.6%)

5. Creating test data

133 / 158 correct (84.2%)

1 3620 133 (84.2%)
2 23620 7 (4.4%)
3 43620 7 (4.4%)
4 63620 3 (1.9%)

6. Finish the integration test

120 / 158 correct (75.9%)

1 13.08 13 (8.2%)
2 36.28 120 (75.9%)
3 69.28 7 (4.4%)
4 81.08 7 (4.4%)

Calculated: 13 October 2024, 05:00