Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Завдання: Класифікація Нероздільних Даних | Логістична регресія
Класифікація з Python

bookЗавдання: Класифікація Нероздільних Даних

Ви будете використовувати наступний набір даних з двома ознаками:

1234
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') print(df.head())
copy

Якщо виконати наведений нижче код і переглянути отриманий точковий графік, можна побачити, що набір даних не є лінійно роздільним:

123456
import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') plt.scatter(df['X1'], df['X2'], c=df['y']) plt.show()
copy

Використання крос-валідації для оцінки простої логістичної регресії на цих даних:

123456789101112131415161718
import pandas as pd import matplotlib.pyplot as plt from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LogisticRegression from sklearn.model_selection import cross_val_score df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') X = df[['X1', 'X2']] y = df['y'] X = StandardScaler().fit_transform(X) lr = LogisticRegression().fit(X, y) y_pred = lr.predict(X) plt.scatter(df['X1'], df['X2'], c=y_pred) plt.show() print(f'Cross-validation accuracy: {cross_val_score(lr, X, y).mean():.2f}')
copy

Як видно, звичайна логістична регресія не підходить для цього завдання. Використання поліноміальної регресії може допомогти покращити продуктивність моделі. Додатково, застосування GridSearchCV дозволяє знайти оптимальний параметр C для підвищення точності.

У цьому завданні також використовується клас Pipeline. Його можна розглядати як послідовність кроків попередньої обробки. Метод .fit_transform() послідовно застосовує .fit_transform() до кожного кроку в конвеєрі.

Завдання

Swipe to start coding

Вам надано набір даних, описаний як DataFrame у змінній df.

  • Створіть конвеєр, який міститиме поліноміальні ознаки ступеня 2 для X та буде масштабований; збережіть отриманий конвеєр у змінній pipe.
  • Створіть словник param_grid із значеннями [0.01, 0.1, 1, 10, 100] для гіперпараметра C.
  • Ініціалізуйте та навчіть об'єкт GridSearchCV і збережіть навчений об'єкт у змінній grid_cv.

Рішення

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

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

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

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

single

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Suggested prompts:

Can you explain how to use polynomial regression with this dataset?

How does GridSearchCV help in finding the optimal C parameter?

What is the purpose of using a Pipeline in this context?

close

Awesome!

Completion rate improved to 4.17

bookЗавдання: Класифікація Нероздільних Даних

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

Ви будете використовувати наступний набір даних з двома ознаками:

1234
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') print(df.head())
copy

Якщо виконати наведений нижче код і переглянути отриманий точковий графік, можна побачити, що набір даних не є лінійно роздільним:

123456
import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') plt.scatter(df['X1'], df['X2'], c=df['y']) plt.show()
copy

Використання крос-валідації для оцінки простої логістичної регресії на цих даних:

123456789101112131415161718
import pandas as pd import matplotlib.pyplot as plt from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LogisticRegression from sklearn.model_selection import cross_val_score df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') X = df[['X1', 'X2']] y = df['y'] X = StandardScaler().fit_transform(X) lr = LogisticRegression().fit(X, y) y_pred = lr.predict(X) plt.scatter(df['X1'], df['X2'], c=y_pred) plt.show() print(f'Cross-validation accuracy: {cross_val_score(lr, X, y).mean():.2f}')
copy

Як видно, звичайна логістична регресія не підходить для цього завдання. Використання поліноміальної регресії може допомогти покращити продуктивність моделі. Додатково, застосування GridSearchCV дозволяє знайти оптимальний параметр C для підвищення точності.

У цьому завданні також використовується клас Pipeline. Його можна розглядати як послідовність кроків попередньої обробки. Метод .fit_transform() послідовно застосовує .fit_transform() до кожного кроку в конвеєрі.

Завдання

Swipe to start coding

Вам надано набір даних, описаний як DataFrame у змінній df.

  • Створіть конвеєр, який міститиме поліноміальні ознаки ступеня 2 для X та буде масштабований; збережіть отриманий конвеєр у змінній pipe.
  • Створіть словник param_grid із значеннями [0.01, 0.1, 1, 10, 100] для гіперпараметра C.
  • Ініціалізуйте та навчіть об'єкт GridSearchCV і збережіть навчений об'єкт у змінній grid_cv.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

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

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

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

single

some-alt