* Use of masks
-retenir certains strings contenant des séquences particulières
-retenir des elts avec une certaine valeur(=="apart"), mask
-retenir des elts avec une ccertaine valeur numérique, mask
-enlever les outliers en utilisant les quantiles(0.1 & 0.9) et
.between et la technique de tuple unpacking. Cette technique génère un mask
également
* Usage de
- Histogramme: montrer la fréquence de distrubution d'une valeur numérique, 1 seul
argumznt(df["column"])
- Scatter: représenter 2 variables numériques et montrer la corrélation entre
elles, 2 arguments
- Bar chart: représenter les fréquences des valeurs d'une variable catégorielle, 1
seul argument(df["column"])
- Plot: pour représenter notre baseline model, qui est une droite // à X, 2
arguments(X_train, y_pred_baseline)
* Création du modèle, avec pipeline:
from sklearn.pipeline import Pipeline, make_pipeline
model = make_pipeline(
SimpleImputer(),
LinearRegression()
)
* In this example, we only used linear regression: #While communicating
-coefficient = round(model.coef_[0], 2) #[0] because it is the first one and a
simple model,
-intercept = round(model.intercept_, 2)
But when we use more than linear regression( e.g. One Hot Encoder & Simple Imputer
included), we do it like this:
-intercept = model.named_steps["ridge"].intercept_
-coefficients = model.named_steps["ridge"].coef_ #A list of coefficients
-feat_imp = pd.Series(coefficients, index=feature_names) #Pour des questions de
représentation
feat_imp.head()
-for f, c in feat_imp.items(): #for onscreen printing of those values
print(f"+ ({round(c, 2)} * {f})")
One Hot Encoder: OneHotEncoder(use_cat_names=True),
L'argument c'est pour garder les noms des valeurs de la variable
catégorielle
Sinon OHE attribue par défaut des nouvelles valeurs aux anciennes
valeurs
SimpleImputer: Pour remplir les valeurs numériques manquantes avec la moyenne
LinearRegression et Ridge: Ridge remplace linearRegression en cas d'overfitting
* Création du modèle de prédiction:
model= make_pipeline(
linearregression(),
ridge(),
onehotencodeer(use_cat_names=True)
)
Fit the model to our datas: model.fit(X_train, y_train)
Predict our wanted value: y_pred_trainning= model.predict(X_train)
* Certains concepts:
-leakage: données présents avant prédiction alors qu'on devrait les avoir
après prédiction
ces features n'aident pas dans la construction de notre modèle car
ils sont calculés à partir
du target vector(e.g. prix_par_m2)
-Missing Values NaN: Dropping columns with 50% of the index missing values in
that column
-Cardinality: Dealing with low and high cardinality categorical variables
_Low cardinality: 2 or less unique values
_High cardinality: Too much unique values
-Multicollinearity: Features collinéaires entre eux. Ce qui déstabilise notre
modèle
* Représentation par Graphique:
1) Représentation simple d'une regression linéaire
plt.plot(X_train.values, model.predict(X_train), color="magenta", label="Linear
Model")
plt.scatter(X_train, y_train)
plt.xlabel("surface covered [sq meters]")
plt.ylabel("price [usd]")
plt.legend();
2) Répresentation en 3 dimensions avec un plan
# Create 3D scatter plot
fig = px.scatter_3d(
df,
x="lon",
y="lat",
z="price_aprox_usd",
labels={"lon": "longitude", "lat": "latitude", "price_aprox_usd": "price"},
width=600,
height=500,
)
# Create x and y coordinates for model representation, représenter ces cordonnées
sur le graphe
x_plane = np.linspace(df["lon"].min(), df["lon"].max(), 10)
y_plane = np.linspace(df["lat"].min(), df["lat"].max(), 10)
xx, yy = np.meshgrid(x_plane, y_plane)
# Use model to predict z coordinates, pour la prédiction de notre prix en fonction
de longitude(X) et latitude(y)
z_plane = model.predict(pd.DataFrame({"lon": x_plane, "lat": y_plane}))
zz = np.tile(z_plane, (10, 1))
# Add plane to figure
fig.add_trace(go.Surface(x=xx, y=yy, z=zz))
# Refine formatting
fig.updMAM#�=##����������ʙ��#�ɨ��
Ⱥ�����������������#�������ɨ��#���ʨ��
�������ʧ��
�������ʧ������#���̸������ʸ��˨��̨
��
�ˠɸ��ɸ˛����###############�x#
#####�#�####�� ######�#�####�����##�����#�#����x###�p��w#�#�����##
�����###���#�####���{####�################��-�##
ߏ�Z�5H � � � &K"Q=� � 2m#� � 'C#� � #[� � M� #s"� � B� ##
`�2#B�k#�H�@i#
��Q �7�_�8�{�=�s��|Y��n���#���_5ԛ#Q�#