===== Eksploracja Danych: Laboratorium 1 =====
{{ :med:weka-3-8.zip |}}
set _cmd=%1
set _java="C:\Program Files\Java\jdk1.8.0_60\bin\javaw.exe"
if "%_cmd%"=="" set _cmd=default
if "%_cmd%"=="-h" set _java="C:\Program Files\Java\jdk1.8.0_60\bin\java.exe"
%_java% -classpath . RunWeka -i .\RunWeka.ini -w .\weka.jar -c %_cmd% "%2"
{{:med:med-lab01.pdf|Opis zadań (PDF)}}
"c:\Program Files\Java\jdk1.8.0_60\bin\java.exe"
==== Zbiory danych ====
*[[http://home.agh.edu.pl/~pszwed/med/regression/xy-001.arff]]
*[[http://home.agh.edu.pl/~pszwed/med/regression/xy-002.arff]]
*[[http://home.agh.edu.pl/~pszwed/med/regression/xy-003.arff]]
*[[http://home.agh.edu.pl/~pszwed/med/regression/xy-004.arff]]
*[[http://home.agh.edu.pl/~pszwed/med/regression/xy-005.arff]]
*[[http://home.agh.edu.pl/~pszwed/med/regression/xy-006.arff]]
*[[http://home.agh.edu.pl/~pszwed/med/regression/xy-007.arff]]
*[[http://home.agh.edu.pl/~pszwed/med/regression/xy-008.arff]]
*[[http://home.agh.edu.pl/~pszwed/med/regression/xy-009.arff]]
*[[http://home.agh.edu.pl/~pszwed/med/regression/xy-010.arff]]
==== Kod Python ====
Poniżej zamieszczony kod może posłużyć do wizualizacji danych.
- Dane należy wprowadzić, jako tekst ''data=''
- Formułę funkcji regresji w wierszu ''fy=2.3702*fx+6.1973''. Oczywiście ''2.3702'' i ''6.1973'' to parametry wyznaczone podczas regresji
- Kod można uruchomić
* W IDE Spyder lub PyCharm
* Uruchamiając lokalnie Jupyter Notebook i wprowadzając kod w przeglądarce
* Online: w [[https://colab.research.google.com/notebooks/welcome.ipynb|Colaboratory]] **Najprostsza metoda bez instalacji oprogramowania**
# %matplotlib notebook
import matplotlib.pyplot as plt
import numpy as np
from scipy import stats
from io import StringIO
from sklearn import linear_model
# Można zmienić rozmiary rysunku
# plt.rcParams["figure.figsize"] = (10,10)
data = """
0.246939,9.011391
0.895519,8.950505
0.971588,9.671047
1.188316,14.735488
1.741884,10.265625
2.196002,13.501097
2.637403,13.887849
2.788188,17.180626
3.50202,19.321529
"""
#enter data as a string
inp = StringIO(data)
x, y = np.loadtxt(inp, delimiter=',', usecols=(0, 1), unpack=True,skiprows=0)
plt.scatter(x,y,s=80, marker='+')
#plot function
#fx - arguments
#fy - values,
#ftrue -function used to generate data
fx=np.linspace(-10,60,100)
fy=2.3702*fx+6.1973
ftrue=2.37*fx+7
plt.plot(fx,fy,linewidth=2,color='r')
plt.plot(fx,ftrue,linewidth=1,linestyle='--',color='g')
plt.xlim(-10,60)
plt.grid(True)
plt.xlabel('X')
plt.ylabel('Y')
r = stats.pearsonr(x, y)[0]
plt.title('Regression $f_{true} = 2.37x+7$ r=' + str(r))
plt.show()
import statsmodels.api as sm
# Dodaj kolumnę z jedynkami - patrz wykład 2
X_plus_one = np.stack( (np.ones(x.size),x), axis=-1)
ols = sm.OLS(y, X_plus_one)
ols_result = ols.fit()
ols_result.summary()
=== Spyder ===
Aby wynik wyświetlił się w osobnym oknie...
{{:med:spyder_opcje.png?200|}}
=== PyCharm ===
Aby wynik wyświetlił się w osobnym oknie...
Settings>Tools>>Python Scientific>> odznacz Show plots in tool window