Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Перетворення та Виділення Ознак | Техніки Трансформації Даних
Попередня Обробка Даних та Створення Ознак

bookПеретворення та Виділення Ознак

Багато реальних наборів даних містять ознаки з асиметричними розподілами, що може знижувати ефективність моделей машинного навчання. Для зменшення асиметрії та підвищення якості даних можна застосовувати математичні перетворення. Два поширені методи:

  • Логарифмічне перетворення: зменшує сильну позитивну асиметрію за допомогою log(x);
  • Кореневе перетворення: пом'якшує менші ступені асиметрії за допомогою sqrt(x).

Ці методи допомагають зробити розподіли ознак більш схожими на нормальний розподіл і підвищують продуктивність моделей.

123456789101112131415161718192021222324252627282930
import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns # Load the Titanic dataset df = sns.load_dataset('titanic') fare = df['fare'] # Apply log transformation (add 1 to handle zeros) fare_log = np.log(fare + 1) # Create side-by-side histogram comparison fig, axes = plt.subplots(1, 2, figsize=(14, 5)) # Original fare axes[0].hist(fare, bins=50, color='skyblue', edgecolor='black', alpha=0.7) axes[0].set_xlabel('Fare ($)', fontsize=12) axes[0].set_ylabel('Frequency', fontsize=12) axes[0].set_title('Original Fare Distribution', fontsize=14, fontweight='bold') axes[0].grid(True, alpha=0.3) # Log-transformed fare axes[1].hist(fare_log, bins=50, color='lightcoral', edgecolor='black', alpha=0.7) axes[1].set_xlabel('Log(Fare + 1)', fontsize=12) axes[1].set_ylabel('Frequency', fontsize=12) axes[1].set_title('Log-Transformed Fare Distribution', fontsize=14, fontweight='bold') axes[1].grid(True, alpha=0.3) plt.tight_layout()
copy
Note
Визначення

Виділення ознак — це процес створення нових ознак із сирих даних для підвищення ефективності моделей машинного навчання.

Це допомагає зробити важливу інформацію більш явною, зменшити шум і іноді знизити розмірність даних. Ефективне виділення ознак може призвести до кращих прогнозів і більш інтерпретованих моделей.

1234567891011
import seaborn as sns import pandas as pd # Load the Titanic dataset df = sns.load_dataset('titanic') # Create a new feature: family_size = sibsp + parch + 1 df['family_size'] = df['sibsp'] + df['parch'] + 1 # Show the first few rows with the new feature print(df[['sibsp', 'parch', 'family_size']].head())
copy
question mark

Яке перетворення буде найбільш доречним для змінної з сильною позитивною асиметрією та лише додатними значеннями?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 8.33

bookПеретворення та Виділення Ознак

Свайпніть щоб показати меню

Багато реальних наборів даних містять ознаки з асиметричними розподілами, що може знижувати ефективність моделей машинного навчання. Для зменшення асиметрії та підвищення якості даних можна застосовувати математичні перетворення. Два поширені методи:

  • Логарифмічне перетворення: зменшує сильну позитивну асиметрію за допомогою log(x);
  • Кореневе перетворення: пом'якшує менші ступені асиметрії за допомогою sqrt(x).

Ці методи допомагають зробити розподіли ознак більш схожими на нормальний розподіл і підвищують продуктивність моделей.

123456789101112131415161718192021222324252627282930
import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns # Load the Titanic dataset df = sns.load_dataset('titanic') fare = df['fare'] # Apply log transformation (add 1 to handle zeros) fare_log = np.log(fare + 1) # Create side-by-side histogram comparison fig, axes = plt.subplots(1, 2, figsize=(14, 5)) # Original fare axes[0].hist(fare, bins=50, color='skyblue', edgecolor='black', alpha=0.7) axes[0].set_xlabel('Fare ($)', fontsize=12) axes[0].set_ylabel('Frequency', fontsize=12) axes[0].set_title('Original Fare Distribution', fontsize=14, fontweight='bold') axes[0].grid(True, alpha=0.3) # Log-transformed fare axes[1].hist(fare_log, bins=50, color='lightcoral', edgecolor='black', alpha=0.7) axes[1].set_xlabel('Log(Fare + 1)', fontsize=12) axes[1].set_ylabel('Frequency', fontsize=12) axes[1].set_title('Log-Transformed Fare Distribution', fontsize=14, fontweight='bold') axes[1].grid(True, alpha=0.3) plt.tight_layout()
copy
Note
Визначення

Виділення ознак — це процес створення нових ознак із сирих даних для підвищення ефективності моделей машинного навчання.

Це допомагає зробити важливу інформацію більш явною, зменшити шум і іноді знизити розмірність даних. Ефективне виділення ознак може призвести до кращих прогнозів і більш інтерпретованих моделей.

1234567891011
import seaborn as sns import pandas as pd # Load the Titanic dataset df = sns.load_dataset('titanic') # Create a new feature: family_size = sibsp + parch + 1 df['family_size'] = df['sibsp'] + df['parch'] + 1 # Show the first few rows with the new feature print(df[['sibsp', 'parch', 'family_size']].head())
copy
question mark

Яке перетворення буде найбільш доречним для змінної з сильною позитивною асиметрією та лише додатними значеннями?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 3
some-alt