Линейная регрессия — типичное машинное обучение
искусственный интеллект
Концепция искусственного интеллекта
Когда речь заходит об искусственном интеллекте, давайте не будем говорить о связи между несколькими профессиональными терминами искусственного интеллекта.
人工智能、机器学习、深度学习
, эти три вещи, что они есть.
На самом деле, у них инклюзивные отношения, и то, что описывает искусственный интеллект, — это то, что вы считаете искусственным интеллектом. Например, интеллектуальные роботы, беспилотные автомобили, распознавание лиц и рассуждения — все это входит в искусственный интеллект.
Затем некоторые части искусственного интеллекта будут использовать машинное обучение, потому что искусственный интеллект все еще является моделью ввода-вывода, как и люди, которые видят вещи, а затем понимают и учатся, просто люди вначале глупы. сам понял правила Эта часть машинного обучения, вероятно, самая базовая: линейная регрессия, kNN и SVM.
Затем способность к обучению должна быть высокой и низкой, а более сильная способность к обучению — это глубокое обучение. Способность к самообучению, которая имитирует человеческие методы обучения. Например, Alpha Dog в Go, OPENAI в Dota, Alpha Cat в шахматах, Cyclone и т. д. — все они требуют использования методов глубокого обучения, чтобы повысить его способность к обучению и позволить ему настроить себя.
Природа машинного обучения
Управляемый данными, метод автономного поиска шаблонов на основе данных.
1. Меньше искусственных предположений и определений
2. Более гибкие приложения
3. Более высокая точность
Общие методы машинного обучения
Модель: f(х)
Машинное обучение: способность модели применять обучение для поиска закономерностей в данных.
Как правило, есть следующие методы
возвращение
концепция
По имеющимся данным модель количественной (функциональной) связи зависимой переменной Y и независимой переменной X резюме
пример
По заданным данным выведите соответствующую регрессию, когда появится новая независимая переменная, можно предсказать значение зависимой переменной
Линейная регрессия
Случай: взаимосвязь между потреблением воды и счетами за воду, взаимосвязь между скоростью транспортного средства и пройденным расстоянием, многие из простых, которые можно представить себе, являются линейной регрессией.
Решение линейной регрессии
Постройте связь с выходом y = f (длительность x)
Но будет проблема, эти данные, поместить вy=ax+b
В функции можно получить много разных прямых, какая из них подходит, или эти прямые не подходят и их нужно настроить. Но как нам оценить качество этой модели линейной регрессии?
Оцените, насколько хорошо работает регрессионная модель
Алгебраическая формула на картинке, полученное содержание均方误差
Продолжая использовать приведенные выше условия, приведите пример расчета среднеквадратичной ошибки
假设我们用第二组数据,305 = 30a + b
算出来一条直线
y = 10x + 5
我们把数据带入可以得到新表
时长 产量 用新表的数据减去旧的
20 205 (205 - 195)**2= 100
30 305 (305 - 305)**2 = 0
50 505 (505 - 480)**2 = 625
60 580 (605 - 580)**2 = 625
再把结果累加
均方误差的和就是 1350
Конечно, эта прямая написана просто взятием точки, и ошибка кажется довольно большой для всех данных.
Увидев ошибку, вы почувствуетеy = 10x -5
более подходящий
Но в одном расчетеy = 10x -5
Может быть, вы все еще чувствуете, что этого недостаточно
В это время нам может понадобиться набор алгоритмов для нахождения оптимальных a, b, то есть для нахождения минимальной среднеквадратичной ошибки, так какой метод используется?
Наименьших квадратов
Тогда должно быть много студентов, которые думали об этом. Да, это его метод наименьших квадратов. Прежде всего, мы помещаем формулу здесь.
Тогда возникает вопрос, а как получается формула а, б? Давайте пересмотрим ее, подтолкнем один раз рукой
1)我们首先有个y = ax + b
2)给定的数据(x1,y1),(x2,y2),....(xi,yi)
3)我们有一个表示误差值的di = yi - y带入一下开始的y = ax + b就是di = yi - (axi+b)
4)当D = 最小均方误差(就是上一节的那个式子)取最小的时候就是他的导数等于0的时候,。。。。。。。。。。
。。。。。。。
。。。。。。。。。。。。。。。。。。。。。写不下去了。。。。。。。。。。。。。。。。。。。
Слишком много символов, и это слишком сложно писать. Я толкнул его вручную, и слова слишком уродливы, чтобы их можно было разместить. пусть кто-то другой толкает
Положите еще один, толкнутый по методу средней школывоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо
хорошо! Тогда это как если бы вы видели, как я срываю его сам.
кодовый вопрос
Сначала попробуйте различные функции
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import sklearn
from sklearn.linear_model import LinearRegression
x = np.linspace(1, 100, 100)
y = 5 * x + 10 + 10 * np.random.randn(100)
print(x)
print(y)
model = LinearRegression()
x = x.reshape(100, 1)
print(x)
y = y.reshape(100, 1)
print(y)
model.fit(x, y)
y_p = model.predict(x)
plt.plot(x, y, ".k")
plt.plot(x, y_p, "b")
plt.show()
Реальный вопрос заключается в том, чтобы использовать для этого реальные данные.
data = pd.read_csv("data.csv")#这个是存好数据的文件
print(data.head)
data = data.values
print(data)
x = data[:,1,3]
y = data[:,3]
print(x)
print(y)
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(x,y)
predict = model.predict(x)
print(predict)
plt.plot(y,predict,".b")
plt.show()
diff = predict-y
mae = np.mean(np.abs(diff))
print(mae)
rmse = np.sqrt(np.mean(diff**2))
print(rmse)
print(np.mean(y))
print(140/4600)