===== 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