Я посещаю класс Cousera от Эндрю Нг и я видел градиент спуск с множественной переменной. Я пытаюсь запустить градиент спуск в Python. Это мой код в Python < /p>
import sys
import matplotlib.pyplot as plt
def gradient_descent(y_actual, alpha, iterations, m_current, b_current, x_dataset):
if len(y_actual) != len(x_dataset):
print(f"Dofferent lenght of input which is {len(y_actual)} and {len(x_dataset)}")
sys.exit(1)
else:
pass
m_current = m_current
b_current = b_current
m_derivative = 0
b_derivative = 0
new_m = []
new_b = []
itr = []
for z in range(iterations):
for i in range(len(x_dataset)):
m_derivative += (y_actual - ((m_current * x_dataset)+b_current))*x_dataset
b_derivative += (y_actual - ((m_current * x_dataset) + b_current))
itr.append(z)
m_current = m_current - (alpha*(m_derivative/len(x_dataset)))
b_current = b_current - (alpha * (b_derivative / len(x_dataset)))
new_m.append(m_current)
new_b.append(b_current)
m_derivative = 0
b_derivative = 0
return m_current, b_current, itr, new_m, new_b
plt.subplot(121)
plt.plot(iteration, m_history)
plt.subplot(122)
plt.plot(iteration,b_history)
plt.show()
< /code>
Я планирую итерацию и взаимосвязь между итерацией и уменьшением B, который является перехватом и взаимосвязи между итерацией и уменьшением M, который является коэффициентом. This is the graph that I get:
But the problem is that I saw a lot of graphs about gradient descent in Google like this:
Какова проблема моего кода, который дает мне этот результат?
Я посещаю класс Cousera от Эндрю Нг и я видел градиент спуск с множественной переменной. Я пытаюсь запустить градиент спуск в Python. Это мой код в Python < /p> import sys import matplotlib.pyplot as plt
def gradient_descent(y_actual, alpha, iterations, m_current, b_current, x_dataset): if len(y_actual) != len(x_dataset): print(f"Dofferent lenght of input which is {len(y_actual)} and {len(x_dataset)}") sys.exit(1) else: pass m_current = m_current b_current = b_current m_derivative = 0 b_derivative = 0 new_m = [] new_b = [] itr = [] for z in range(iterations): for i in range(len(x_dataset)): m_derivative += (y_actual[i] - ((m_current * x_dataset[i])+b_current))*x_dataset[i] b_derivative += (y_actual[i] - ((m_current * x_dataset[i]) + b_current)) itr.append(z) m_current = m_current - (alpha*(m_derivative/len(x_dataset))) b_current = b_current - (alpha * (b_derivative / len(x_dataset))) new_m.append(m_current) new_b.append(b_current) m_derivative = 0 b_derivative = 0 return m_current, b_current, itr, new_m, new_b
plt.subplot(121) plt.plot(iteration, m_history) plt.subplot(122) plt.plot(iteration,b_history) plt.show() < /code> Я планирую итерацию и взаимосвязь между итерацией и уменьшением B, который является перехватом и взаимосвязи между итерацией и уменьшением M, который является коэффициентом. This is the graph that I get: [img]https://i.sstatic.net/nd9F8.png[/img]
But the problem is that I saw a lot of graphs about gradient descent in Google like this:
Какова проблема моего кода, который дает мне этот результат?
Я только что выполнил свой первый проект по машинному обучению на основе набора данных двоичной классификации для обнаружения мошенничества после многого изучения. (Вот ссылка): Блокнот Kaggle
Я только что закончил проект для своего учебного лагеря. Однако, независимо от того, как я делаю расчет прибыли или начальную загрузку, я продолжаю получать нулевой риск убытка. Я не знаю, как это исправить.
### Ключевые значения для расчета...
Если время пошло вспять и вам придется заново изучать все, что вы изучили или стремились изучить в области программирования, машинного обучения и продвинутого искусственного интеллекта, как бы вы это сделали и какие источники вы бы использовали?...
Я работаю с блокнотом Jupyter, описанным в главе 15 книги Практическое машинное обучение с помощью Scikit-Learn, Keras & TensorFlow Орельена Жерона (третье издание). Я обнаружил ошибку в ячейке 43 записной книжки. Это в параграфе Многомерные...