Helpdesk: Pulpit zdalny: The connection cannot proceed because authentication is not enabled…

2018-12-13

Ustawienia RDP znacznie się zmieniły od czasów starusieńkiego Windows XP, gdzie zazwyczaj wystarczyło włączyć RDP i już! Teraz podczas połączenia sprawdzanych może być wiele komponentów, a cel jest jeden – zwiększone bezpieczeństwo. Sprawdzane jest bezpieczeństwo nawiązanego połącznia, testuje się czy komputer źródłowy i docelowy są tymi maszynami za które się podają i oczywiście sprawdza się, czy użytkownik, który sie łączy ma do tego uprawnienia.

W sieci domowej można czasami nieco odpuścić kwestie aż tak dokładnej weryfikacji wszystkich ustawień.

Jeżeli wiec przy nawiązywaniu połączenia widzisz komunikat:

Remote Desktop Connection
The connection cannot proceed because authentication is not enabled and the remote computer requires that authentication be enabled to connect.

to obejściem problemu może być wpisanie w rejestrze:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
klucza “SecurityLayer” na 0

Oczywiście takie rzeczy tylko w bezpiecznej, przytulnej, domowej sieci 😉

By Rafał Kraik in Helpdesk

SQL: Sprawdzanie czy tabela jest wykorzystywana w widokach, funkcjach lub procedurach

2018-11-25

Od czasu do czasu administrator lub programista musi nieco posprzątać w swojej bazie danych. Sprzątanie może polegać na usunięciu tabel, które nie są już potrzebne, w których kiedyś ktoś planował przechowywać jakieś dane, ale się rozmyślił i zostają osierocone, nieużywane tabele. Wykonanie polecenia DROP jest proste, szybkie i przyjemne, ale przed usuwaniem warto sprawdzić, czy tabela nie jest wykorzystywana w widokach, procedurach i funkcjach.

Jeżeli inne obiekty były tworzone z wykorzystaniem opcji with SCHEMA_BINDING, to zadanie jest proste, bo sama próba usunięcia obiektu, do którego odwołują się inne obiekty skończy się błędem. Gorzej jeśli ta opcja nie była wykorzystywana, ale i tak masz na to rozwiązanie.

Oto przykład jaki rozważymy: Czytaj dalej »

By Rafał Kraik in SQL

Python: zmiana wartości w DataFrame dla wierszy spełniających określony warunek

2018-11-25

DataFrame może zawierać dużo wierszy. Czasami chcesz zmienić wartość w określonej kolumnie, ale tylko pod warunkiem, że dane w wierszu spełniają jakiś określony warunek.Zacznijmy od  instrukcji tworzącej prosty data frame:

import pandas as pd
import numpy as np
 
df = pd.DataFrame(columns=['values','values2'])
 
for i in range(10):
 df.loc[i] = [i,i*10]
 
df

Teraz kolej na sztuczkę. Trzeba znaleźć miejsca, gdzie w kolumnie values mamy spełniony jakiś warunek, powiedzmy values > 5

filter = df['values'] > 5
filter

filter to seria wartości True/False, gdzie True oznacza komórki spełniające warunek, a False – nie spełniające. Jak chcesz dostać z data frame, tylko te wiersze, które spełniają warunek piszesz tak:

df[filter]

a jak chcesz tylko te zmienić (tutaj np. wpisać wartość NaN), to piszesz tak:

df['values'][filter] = np.NaN
df

 

By Rafał Kraik in Python

Python: Pandas: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame

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 »

By Rafał Kraik in Python

Linux Fedora Workstation: Uruchomienie systemu w trybie znakowym

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 »

By Rafał Kraik in Linuxy

Kurs Linux dla początkujących, 5h video – za free!

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!

By Rafał Kraik in Aktualności

Python: sprawdzanie poprawności modelu w predykcji danych

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

 

By Rafał Kraik in Data Science