Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Desafio: Classificando Dados Inseparáveis | Regressão Logística
Classificação com Python

bookDesafio: Classificando Dados Inseparáveis

Você utilizará o seguinte conjunto de dados com duas variáveis:

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

Se você executar o código abaixo e observar o gráfico de dispersão resultante, verá que o conjunto de dados não é linearmente separável:

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

Vamos utilizar a validação cruzada para avaliar uma regressão logística simples nesses dados:

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

Como você pode ver, a Regressão Logística tradicional não é adequada para esta tarefa. Utilizar regressão polinomial pode ajudar a melhorar o desempenho do modelo. Além disso, o uso do GridSearchCV permite encontrar o parâmetro C ideal para obter melhor acurácia.

Esta tarefa também utiliza a classe Pipeline. Ela pode ser considerada como uma sequência de etapas de pré-processamento. O método .fit_transform() aplica sequencialmente o .fit_transform() em cada etapa do pipeline.

Tarefa

Swipe to start coding

Você recebe um conjunto de dados descrito como um DataFrame na variável df.

  • Crie um pipeline que contenha as características polinomiais de grau 2 de X, faça a padronização e armazene o pipeline resultante na variável pipe.
  • Crie um dicionário param_grid com os valores [0.01, 0.1, 1, 10, 100] para o hiperparâmetro C.
  • Inicialize e treine um objeto GridSearchCV e armazene o objeto treinado na variável grid_cv.

Solução

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 6
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

close

Awesome!

Completion rate improved to 4.17

bookDesafio: Classificando Dados Inseparáveis

Deslize para mostrar o menu

Você utilizará o seguinte conjunto de dados com duas variáveis:

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

Se você executar o código abaixo e observar o gráfico de dispersão resultante, verá que o conjunto de dados não é linearmente separável:

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

Vamos utilizar a validação cruzada para avaliar uma regressão logística simples nesses dados:

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

Como você pode ver, a Regressão Logística tradicional não é adequada para esta tarefa. Utilizar regressão polinomial pode ajudar a melhorar o desempenho do modelo. Além disso, o uso do GridSearchCV permite encontrar o parâmetro C ideal para obter melhor acurácia.

Esta tarefa também utiliza a classe Pipeline. Ela pode ser considerada como uma sequência de etapas de pré-processamento. O método .fit_transform() aplica sequencialmente o .fit_transform() em cada etapa do pipeline.

Tarefa

Swipe to start coding

Você recebe um conjunto de dados descrito como um DataFrame na variável df.

  • Crie um pipeline que contenha as características polinomiais de grau 2 de X, faça a padronização e armazene o pipeline resultante na variável pipe.
  • Crie um dicionário param_grid com os valores [0.01, 0.1, 1, 10, 100] para o hiperparâmetro C.
  • Inicialize e treine um objeto GridSearchCV e armazene o objeto treinado na variável grid_cv.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 6
single

single

some-alt