2018-11-25
Popatrzmy na takie polecenie:
import pandas as pd
df = pd.DataFrame({'Name':['Jack','Sue',pd.np.nan,'Bob','Alice','John'],
'A': [1, 2.1, pd.np.nan, 4.7, 5.6, 6.8],
'B': [.25, pd.np.nan, pd.np.nan, 4, 12.2, 14.4],
'City':['Seattle','SF','LA','OC',pd.np.nan,pd.np.nan]})
df[['A','B']].fillna('?', inplace=True)
wynik to niestety ostrzeżenie:
SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
downcast=downcast, **kwargs) Czytaj dalej »
2018-11-25
Na systemie jest zainstalowany Linux Fedora Workstation w trybie graficznym. Z jakiegoś powodu uruchamianie grafiki zawodzi, ale śmiało można zostać przy systemie z wyłącznie interfejsem tekstowym. Jak zmienić domyślny sposób uruchamiania systemu, kiedy nie można się zalogować do interfejsu graficznego?
Podczas uruchamiania powinieneś zobaczyć menu:

naciśnij e. Powinieneś zobaczyć okienko jak poniżej. Musisz dopisać „3” w tym samym miejscu co zaznaczyłem na ilustracji poniżej. Linux może pracować na różnych run-level i właśnie run level 3 oznacza uruchomienie systemu w trybie znakowym z obsługą sieci i usługami sieciowymi (tylko grafika nie jest dostępna): Czytaj dalej »
2018-10-26
Od dzisiaj na platformie Udemy dostępny jest kurs „Linux dla początkujących”. Z tej okazji przez krótki czas kurs będzie dostępny za darmo! To taki give-back dla społeczności, bez której samodzielne rozwiązywanie wielu problemów byłoby koszmarne.
Jeśli zdążyłeś/aś to poniższy link pozwoli na darmowe zapisanie się na szkolenie. Jeśli kurs został już sklasyfikowany jako płatny, to z tym linkiem możesz go kupić w najniższej możliwej cenie.
Zapisz się na kurs Linux dla początkujących – mistrz linii komend

A co w samym kursie?
- Przygotowanie środowiska do kursu (instalacja Linux)
- Praca z Linuxem z linii komend
- Polecenia do operacji na plikach i katalogach
- Uprawnienia i polecenia związane ze zmianą uprawnień
- Tworzenie kont użytkowników i grup
- Przegląd popularnych poleceń z linii komend
W sumie ponad 5 godzin materiału wideo, a do każdej lekcji quiz i zadania do samodzielnego rozwiązania (z propozycją rozwiązań)
Zapraszam – pracuj na Linuxie jak PRO!
2018-10-24
Podczas budowania modelu predykcyjnego dane, na których model się uczy dzielone są na dane uczące (+/-80%) i dane testowe (+/-20%). Idea jest taka, aby algorytm mając do dyspozycji dane uczące „zauważył” i „nauczył” się reguł, które wpływają na powiązanie danych. Pozostałe dane testowe są na tym etapie ukryte przed algorytmem. Może się to wydawać trochę dziwne, bo przecież kiedy zależy nam na uzyskaniu możliwie najlepszego modelu, to należało by go ćwiczyć na wszystkich dostępnych danych. Jest jednak za tym ukryta pewna idea.
Dzięki danym testowym można mianowicie sprawdzić czy model jest dobry i na ile dobry. Po zakończonym ćwiczeniu modelu, należy wziąć dane testowe i sprawdzić, czy model dobrze przewiduje wartości. Ma to sens, bo przecież dane testowe zostały losowo wyłonione ze wszystkich dostępnych danych i jak by nie było są rzeczywistymi obserwacjami, które model powinien dobrze przewidywać.
Ocena modelu polega na wyznaczeniu przez model przewidywanych wartości i ich porównaniu z rzeczywistymi danymi z danych testowych. Co pozostaje problemem to miara błędu. Do dyspozycji jest:
- Błąd średniokwadratowy, średni błąd kwadratowy (MSE, ang. Mean Squared Error) – średnia kwadratów błędów dla każdej wartości ze zbioru testowego. Dlaczego kwadratów? Bo gdzieniegdzie błąd jest dodatni, a gdzieniegdzie ujemny – jak się go podniesie do kwadratu, to otrzymana wartość będzie liczbą dodatnią. Ta miara jednak jest zależna od tego co podlega obserwacji – np. przewidywana cena samochodu z błędem +/-1000 jest całkiem niezła w porównaniu z przewidywaną ceną bukietu kwiatów +/-100 zł. Do wyznaczenia tej wartości korzystamy z sklearn.metrics.mean_squared_error
- Średni błąd bezwzględny (MAE, ang. Mean absolute error) – podobny do MSE, ale zamiast sumy kwadratów błędów liczymy sumę wartości bezwzględnej błedu – miara bardziej oddaje wielkość błędu, ale nadal jest specyficzna dla modelu tak jak MSE. Do wyznaczenia tej wartości korzystamy z sklearn.metrics.mean_absolute_error
- Współczynnik determinacji (coefficient of determination, R²) – Informuje o tym, jaka część zmienności zmiennej objaśnianej została wyjaśniona przez model. Wartość ta jest wyrażona przez procent, co pozwala uwolnić się od wielkości szacowanych wartości. Wynik 80% będzie więc oznaczał, że model jest godny zaufania na 80%. Im R² jest większe, tym lepiej! Przy okazji współczynnika determinacji mówi się też czasami o współczynniku zbieżności. Zależność między obiema wartościami jest dość prosta:
współczynnik determinacji = 1 – współczynnik zbieżności
i co za tym idzie, model jest tym lepszy i mniejszy współczynnik zbieżności. Wartość wyznaczamy korzystając z sklearn.metrics.r2_score
Umownie można przyjąć następujące znaczenie dla współczynnika determinacji:
0,0 – 0,5 – dopasowanie niezadowalające
0,5 – 0,6 – dopasowanie słabe
0,6 – 0,8 – dopasowanie zadowalające
0,8 – 0,9 – dopasowanie dobre
0,9 – 1,0 – dopasowanie bardzo dobre
2018-10-07
Poniżej zamieszczam przykładową klasę zaimplementowaną w C# Visual Studio 2017 zawierającą:
- funkcję Split zamieniającą napis rozdzielany separatorami na tabelę wartości
- funkcję ListFiles zwracającą w postaci tabeli pliki znajdujące się w określonym katalogu
- funkcję ListDirs zwracającą w postaci tabeli katalogi znajdujące się w określonym folderze
- funkcję skalarną GetDBCount zwracającą informację o ilości baz znajdujących się na serwerze
- funkcję agregującą WeightedAvg wyznaczającą średnią ważoną
- procedurę GetWindowsLocale pobierającą informację o ustawieniach regionalnych z systemu Windows i zwracającą te informacje przez tekst w SQL
- trigger DropTableTrigger uruchamiany podczas kasowania tabel i zwracający kilka informacji o tej operacji w postaci tekstu
- typ Point pozwalający na zdefiniowanie punktu, jego parsowanie, wyświetlanie oraz wyznaczanie odległości między punktami na płaszczyźnie
Czytaj dalej »
2018-10-07
Tutorial krok po kroku, jak podpisać i zaiportować moduł CLR
W tym artykule pokażę jak od A do Z zaimplementować w .NET dwie metody służące do listowania plików i katalogów i zaimportować te funkcje do SQL 2017 z uwzględnieniem aktualnych best practice (z opcją 'clr strict security’). Czym jest ta opcja i jakie ma działanie zobacz w https://www.mobilo24.eu/sql-clr-w-wersji-2017opcja-clr-strict-security/
Utwórz klasę w Visual Studio (uwaga – koniecznie wybierz Class Library .NET) – inaczej nie będzie do dyspozycji wszystkich wymaganych referencji (https://stackoverflow.com/questions/48130887/visual-studio-not-recogonizing-microsoft-sqlserver-namespace):

Napisz swój kod, co może wyglądać o tak: Czytaj dalej »
2018-10-07
SQL 2017 wprowadził pewną zmianę w zakresie CLR.
Otóż od tej pory bardzo wiele zależy od opcji 'clr strict security’ (konfigurowana przez sp_configure).
Jeżeli jej wartość to „0” (NIEZALECANE), to wszystko działa po staremu, tzn.:
- każdy assembly posiada swój permission set, który może być równy:
- SAFE – nie wychodzimy poza „proces” – jakieś dane dostaliśmy na wejściu i je przetwarzamy
- EXTERNAL ACCESS – możliwe jest korzystanie z zasobów zewnętrznych, jak np. sieć lub system plików
- UNSAFE – można wywołać kod niezarządzany
- żeby zaimportować moduł SAFE właściwie nie trzeba wykonywać żadnej specjalnej konfiguracji,
- ale dla EXTERNAL ACCESS lub UNSAFE należy:
- podpisywać assembly certyfikatem lub kluczem asymetrycznym (ZALECANE)
- lub ustawiać parametr TRUSTWORTHY dla bazy na ON a właścicielem bazy powinien być login z uprawnieniem UNSAFE ASSEMBLY (NIEZALECANE)
Jeżeli wartość parametru to 1 (ZALECANE), to permission set nadal należy określać, ale… nie służy on już do niczego. Każdy assembly będzie traktowany i tak jako UNSAFE, a do uruchomienia kodu musisz podpisać kod (ZALECANE) lub zmienić TRUSTWORTHY na ON (NIEZALECANE).
Ponieważ TRUSTWORTHY ustawione na on może naruszać bezpieczeństwo systemu, oczywiście zaleca się stosowanie podpisywania kodu.
https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/clr-strict-security?view=sql-server-2017