PythonDataScience_XX - Jake VanderPlas Flashcards Preview

Machine Learning - Jibun > PythonDataScience_XX - Jake VanderPlas > Flashcards

Flashcards in PythonDataScience_XX - Jake VanderPlas Deck (17)
Loading flashcards...
1

Wie kann ich one hot encoding verwenden?

Die Liste heißt data

Der Zielname vec

from sklearn.feature_extraction import DictVectorizer
vec = DictVectorizer(sparse=True, dtype=int)
vec.fit_transform(data)

 

2

Wie kann ich diese Arrays plotten?

x = np.array([1, 2, 3, 4, 5])
y = np.array([4, 2, 1, 3, 7])

 

import ...

 

%matplotlib inline --> will lead to static images of your plot embedded in the notebook
import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4, 5])
y = np.array([4, 2, 1, 3, 7])
plt.scatter(x, y);

3

Wie kann ich einfaches Model für lineare Regresion anwenden?

x = np.array([1, 2, 3, 4, 5])
y = np.array([4, 2, 1, 3, 7])

 

import ...

X = ...

model = ...

yfit = ...

from sklearn.linear_model import LinearRegression
X = x[:, np.newaxis]
model = LinearRegression().fit(X, y)
yfit = model.predict(X)
plt.scatter(x, y)
plt.plot(x, yfit);

4

Wie kann ich ein Model mit polynominellen Features anwenden?

x = np.array([1, 2, 3, 4, 5])
y = np.array([4, 2, 1, 3, 7])

                                                                                          

import ...

poly = ...

X2 = ...

model = ...

yfit = ...

plt...

from sklearn.preprocessing import PolynomialFeatures
poly = PolynomialFeatures(degree=3, include_bias=False)
X2 = poly.fit_transform(X)

                                                                                          

model = LinearRegression().fit(X2, y)
yfit = model.predict(X2)

                                                                                          

plt.scatter(x, y)
plt.plot(x, yfit);

 

5

Wie kann ich hier den durchschnittlichen Wert eintragen lassen? Danach lineare Regression.

from numpy import nan
X = np.array([[ nan, 0,   3  ],
              [ 3,   7,   9  ],
              [ 3,   5,   2  ],
              [ 4,   nan, 6  ],
              [ 8,   8,   1  ]])
y = np.array([14, 16, -1,  8, -5])

 

import ...

imp = ...

X2 = ...

model = ...

from sklearn.impute import SimpleImputer
imp = SimpleImputer(strategy='mean')
X2 = imp.fit_transform(X)

 

model = LinearRegression().fit(X2, y)
model.predict(X2)

6

Wie kann ich eine Pipeline für die folgenden Aufgaben erstellen?

  • Impute missing values using the mean
  • Transform features to quadratic
  • Fit a linear regression

import = ...

model = ...

...

from sklearn.pipeline import make_pipeline

model = make_pipeline(SimpleImputer(strategy='mean'),
                      PolynomialFeatures(degree=2),
                      LinearRegression())

model.fit(X, y)  # X with missing values, from above
print(y)
print(model.predict(X))

7

Wie kann ich Test- und Trainigsdaten verwenden?

from sklearn.model_selection import train_test_split
# split the data with 50% in each set
X1, X2, y1, y2 = train_test_split(X, y, random_state=0,
                                  train_size=0.5)

# fit the model on one set of data
model.fit(X1, y1)

# evaluate the model on the second set of data
y2_model = model.predict(X2)
accuracy_score(y2, y2_model)

8

Wie kann ich cross validation verwenden?

from sklearn.model_selection  import cross_val_score
cross_val_score(model, X, y, cv=5)

9

Wie kann ich KNN verwenden?

from sklearn.neighbors import KNeighborsClassifier
model = KNeighborsClassifier(n_neighbors=1)

10

Was ist eine Lernkurve?

Ein Diagramm mit dem Trainings- und Validierungsscore im Hinblick auf die Größe des Trainingsdatensatzes.

11

Was ist Naive Bayes Modelle?

Naive Bayes models are a group of extremely fast and simple classification algorithms that are often suitable for very high-dimensional datasets. Because they are so fast and have so few tunable parameters, they end up being very useful as a quick-and-dirty baseline for a classification problem. 

Eine Gruppe von einfachen Klassifizierungsalgorithmen, die oft sehr passend sind für hoch-dimensionale Datensätze. Sie sind schnell und haben wenige Hyperparameter --> gut als quick and dirty baseline für Klassifizierung.

12

Warum ist Naive Bayes naiv?

Naive Bayes (NB) is ‘naive’ because it makes the assumption that features of a measurement are independent of each other. This is naive because it is (almost) never true. Here is why NB works anyway.

NB is a very intuitive classification algorithm. It asks the question, “Given these features, does this measurement belong to class A or B?”, and answers it by taking the proportion of all previous measurements with the same features belonging to class A multiplied by the proportion of all measurements in class A. If this number is bigger then the corresponding calculation for class B then we say the measurement belongs in class A. Simple, right?

13

Wie könnte ich einen solchen Plot erstellen?

from sklearn.datasets import make_blobs
X, y = make_blobs(100, 2, centers=2, random_state=2, cluster_std=1.5)
plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='RdBu');

14

Wie könnte ich eine solche Grafik erzeugen?

from sklearn.datasets.samples_generator import make_blobs
X, y = make_blobs(n_samples=50, centers=2,
                  random_state=0, cluster_std=0.60)
plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='autumn');

15

Wie kann ich einen SVC trainieren?

from sklearn.svm import SVC # "Support vector classifier"
model = SVC(kernel='linear', C=1E10)
model.fit(X, y)

16

Wie bekomme ich die Support Vektoren von model?

model.support_vectors_

17

Wie kann ich bei SVC die Softness einstellen?

Mit dem Parameter C

Mit einem sehr großen C ist die Grenze sehr hart, es können also keine falsch klassifizierten Punkte drinnen liegen

Mit einem kleinen C wird die Grenze weicher und es können auch falsch klassifizierte im Bereich sein