Введение
В этом проекте вы научитесь реализовывать метод наименьших квадратов (OLS) на Python. OLS - это фундаментальный математический метод оптимизации, используемый в машинном обучении, особенно в задачах линейной регрессии.
🎯 Задачи
В этом проекте вы научитесь:
- Как реализовать функцию OLS для вычисления наклона (w1) и пересечения (w0) линейного уравнения на основе выборочных данных.
- Как протестировать функцию OLS с использованием выборочных данных и проверить правильность результатов.
🏆 Достижения
После завершения этого проекта вы сможете:
- Вывести формулы OLS для вычисления наклона и пересечения линейного уравнения.
- Реализовать функцию OLS на Python без использования внешних библиотек.
- Протестировать и валидировать функцию OLS с использованием выборочных данных.
- Разобраться в важности метода OLS в машинном обучении и задачах линейной регрессии.
Реализовать функцию наименьших квадратов
В этом шаге вы реализуете функцию наименьших квадратов (OLS) на Python. Следуйте шагам ниже, чтобы завершить этот шаг:
Откройте файл
least_squares.pyв вашем текстовом редакторе.Реализуйте функцию
least_squares_functionв соответствии с предоставленными спецификациями:- Функция должна принимать два входных параметра:
x(список значений выборочных x) иy(список значений выборочных y). - Функция должна вычислять наклон (
w1) и пересечение (w0) линейного уравнения с использованием формул OLS, предоставленных в описании задачи. - Функция должна округлить вычисленные значения
w0иw1до двух знаков после запятой перед их возвратом. - Функция должна возвращать значения
w0иw1в этом порядке.
- Функция должна принимать два входных параметра:
Вот полная реализация функции least_squares_function:
def least_squares_function(x, y):
"""
Parameters:
x -- list of values of sample x
y -- list of values of sample y
Returns:
w0 -- linear equation parameter, rounded to two decimal places
w1 -- linear equation parameter, rounded to two decimal places
"""
n = len(x)
## Calculate the sums needed for the slope (w1) and intercept (w0)
sum_x = sum(x)
sum_y = sum(y)
sum_xy = sum(x_i * y_i for x_i, y_i in zip(x, y))
sum_x_squared = sum(x_i**2 for x_i in x)
## Calculate the slope (w1) and intercept (w0) using the OLS formulas
w1 = (n * sum_xy - sum_x * sum_y) / (n * sum_x_squared - sum_x**2)
w0 = (sum_y - w1 * sum_x) / n
## Round to two decimal places
w0 = round(w0, 2)
w1 = round(w1, 2)
return w0, w1
- Сохраните файл
least_squares.py.
Тестировать функцию наименьших квадратов
В этом шаге вы будете тестировать функцию least_squares_function, которую вы реализовали на предыдущем шаге.
- Вы можете увидеть следующий код в конце файла для тестирования функции
least_squares_function:
## Example usage
if __name__ == "__main__":
x_example = [1, 2, 3, 4]
y_example = [4, 5, 6, 7]
result = least_squares_function(x_example, y_example)
print("w0:", result[0])
print("w1:", result[1])
- Запустите скрипт
least_squares.pyв вашей терминале:
python3 least_squares.py
Вы должны увидеть следующий вывод:
w0: 3.0
w1: 1.0
Этот вывод подтверждает, что функция least_squares_function работает как ожидается.
Поздравляем! Вы успешно реализовали функцию наименьших квадратов на Python. В следующих шагах вы можете изучить, как использовать эту функцию в реальной задаче машинного обучения.
Резюме
Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.



