Изменения

Перейти к: навигация, поиск

Линейная регрессия

2177 байт добавлено, 19:24, 4 сентября 2022
м
rollbackEdits.php mass rollback
f_1(x_1) & \dots & f_n(x_1) \\
\dots & \dots & \dots \\
f_nf_1(x_1x_l) & \dots & f_n(x_l)
\end{pmatrix}
,
\alpha_1 \\
\dots \\
\alpha_lalpha_n
\end{pmatrix}
== Проблема мультиколлинеарности и переобучения ==
Если имеются сингулярные числа, близкие к 0, то:
* матрица <tex> \sum = F^T F </tex> плохо обусловлена;
* преобразование признаков, чтобы в новом признаковом пространстве признаков оказалось меньше, но они хорошо восстанавливали бы исходные: <br> <tex> f_1, \dots, f_n \rightarrow g_1 \dots, g_m, m \ll n </tex>.
==Примеры кода===== Пример кода для Scikit-learn ===
'''import''' matplotlib.pyplot '''as''' plt
[[Файл: Linear_regression_example.png]]
 
===Пример на языке Java===
Пример линейной регресии с применением <code>weka.classifiers.functions.LinearRegression</code><ref>[http://weka.sourceforge.net/doc.dev/weka/classifiers/functions/LinearRegression.html/ Weka, Linear Regression]</ref>
 
<code>Maven</code> зависимомсть:
<dependency>
<groupId>nz.ac.waikato.cms.weka</groupId>
<artifactId>weka-stable</artifactId>
<version>3.8.0</version>
</dependency>
 
'''import''' weka.classifiers.functions.LinearRegression;
'''import''' weka.core.Instance;
'''import''' weka.core.Instances;
 
<font color="green">//Load Data set</font>
'''var''' data = new Instances(new BufferedReader(new FileReader("dataset/house.arff")));
data.setClassIndex(data.numAttributes() - 1);
<font color="green">//Build model</font>
'''var''' model = new LinearRegression();
'''try''' { model.buildClassifier(data); }
'''catch''' (Exception e) { e.printStackTrace(); }
<font color="green">//output model</font>
System.out.printf("model parameters: %s%n", model);
<font color="green">// Now Predicting the cost</font>
'''var''' myHouse = data.lastInstance();
'''var''' price = model.classifyInstance(myHouse);
System.out.printf("predicted price = %s%n", price)
 
===Пример на языке R===
{{Main|Примеры кода на R}}
 
<font color="gray"># reading data</font>
data <- read.csv(<font color="green">"input.csv"</font>, <font color="#660099">sep</font> = <font color="green">','</font>, <font color="#660099">header</font> = FALSE)
<font color="gray"># evaluating linear regression model</font>
model <- lm(data$<strong><font color="#660E7A">x</font></strong> ~ data$<strong><font color="#660E7A">y</font></strong>)
<font color="gray"># getting summary</font>
print(summary(model))
<font color="gray"># visualizing data</font>
plot(data$<strong><font color="#660E7A">y</font></strong>, data$<strong><font color="#660E7A">x</font></strong>)
lines(data$<strong><font color="#660E7A">y</font></strong>, predict(fit), <font color="#660099">col</font> = <font color="green">'red'</font>)
==Применение==
1632
правки

Навигация