 Завдання: Класифікація Нероздільних Даних
Завдання: Класифікація Нероздільних Даних
Ви будете використовувати наступний набір даних з двома ознаками:
1234import 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())
Якщо виконати наведений нижче код і переглянути отриманий точковий графік, можна побачити, що набір даних не є лінійно роздільним:
123456import 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()
Використання крос-валідації для оцінки простої логістичної регресії на цих даних:
123456789101112131415161718import 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}')
Як видно, звичайна логістична регресія не підходить для цього завдання. Використання поліноміальної регресії може допомогти покращити продуктивність моделі. Додатково, застосування 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.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
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?
Awesome!
Completion rate improved to 4.17 Завдання: Класифікація Нероздільних Даних
Завдання: Класифікація Нероздільних Даних
Свайпніть щоб показати меню
Ви будете використовувати наступний набір даних з двома ознаками:
1234import 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())
Якщо виконати наведений нижче код і переглянути отриманий точковий графік, можна побачити, що набір даних не є лінійно роздільним:
123456import 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()
Використання крос-валідації для оцінки простої логістичної регресії на цих даних:
123456789101112131415161718import 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}')
Як видно, звичайна логістична регресія не підходить для цього завдання. Використання поліноміальної регресії може допомогти покращити продуктивність моделі. Додатково, застосування 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.
Рішення
Дякуємо за ваш відгук!
single