Comment on page
📉
SciKit-Learn
Metot | Açıklama |
---|---|
fit(x, y) | Modeli veriyle eğitmek |
predict(X) | Modelin tahmin etmesi |
score(X, y) | Tahmin skorunu (ihtimalini) verir |
coef_ | Ağırlık katsayılarının ( ) değerlerini verir |
intercept_ | Sabit sayı (bias ) değerini verir |
print("β_0: {}".format(model.intercept_))
for i in range(8):
print("β_{}: {}".format(i+1, model.coef_[i]))
β_0: -36.94192020718441
β_1: 0.4366932931343245
β_2: 0.009435778033237972
β_3: -0.10732204139090447
β_4: 0.645065693519812
β_5: -3.976389421211576e-06
β_6: -0.003786542654971
β_7: -0.42131437752714385
β_8: -0.43451375467477743
Makine öğrenimi için her zaman veriler istenildiği düzende olmaz, bu durumlarda Transformers'lar kullanılır
- Temel amacı verileri benzer hale getirmektir
- Verilerin benzer olması makine öğrenimi her zaman hızlandırır
- Verileri aynı ölçekte alttaki koşullara göre düzenler (normalization denebilir (?))
- Aritmetik Ortalaması = 0
- Varyansı = 1
- Varyans, bir serinin aritmetik ortalaması üzerinde dağılımıdır
from sklearn.preprocessing import StandardScaler
# create and fit scaler
scaler = StandardScaler()
scaler.fit(X)
# scale data set
Xt = scaler.transform(X)
# create data frame with results
stats = np.vstack((X.mean(axis=0), X.var(axis=0), Xt.mean(axis=0), Xt.var(axis=0))).T
feature_names = data['feature_names']
columns = ['Dönüştürülmemiş Ortalama', 'Dönüştürülmemiş Varyans', 'Dönüştürülmüş Ortalama', 'Dönüştürülmüş Varyans']
df = pd.DataFrame(stats, index=feature_names, columns=columns)
df
.png?alt=media)
Metot | Açıklama |
---|---|
fit(x, y) | Modeli veriyle eğitmek |
transform(X) | Veriyi dönüştürmek ve verimli hale almak |
fit_transform(X) | Önce fit ardından transform uygular |
Sadece belirlenen sütunlara dönüştürme işlemi uygulamak için tercih edilir
from sklearn.compose import ColumnTransformer
col_transformer = ColumnTransformer(
remainder='passthrough',
transformers=[
('scaler', StandardScaler(), slice(0,6)) # first 6 columns
]
)
col_transformer.fit(X)
Xt = col_transformer.transform(X)
print('MedInc mean before transformation?', X.mean(axis=0)[0]) # 3.8706710029069766
print('MedInc mean after transformation?', Xt.mean(axis=0)[0], '\n') # 6.609699867535816e-17
print('Longitude mean before transformation?', X.mean(axis=0)[-1]) # -119.56970445736432
print('Longitude mean after transformation?', Xt.mean(axis=0)[-1]) # -119.56970445736432
col_transformer = ColumnTransformer(
remainder='passthrough',
transformers=[
('remove', 'drop', 0),
('scaler', StandardScaler(), slice(1,6))
]
)
Xt = col_transformer.fit_transform(X)
print('Number of features in X:', X.shape[1]) # 8
print('Number of features Xt:', Xt.shape[1]) # 7
Birden fazla işlemleri seri olarak yapmayı sağlayan yöntemdir
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import PolynomialFeatures
# construct pipeline
scaler = StandardScaler()
poly_features = PolynomialFeatures(degree=2)
lin_reg = LinearRegression()
pipe = Pipeline([
('scaler', scaler),
('poly', poly_features),
('regressor', lin_reg)
])
print(pipe.named_steps)
# {'scaler': StandardScaler(copy=True, with_mean=True, with_std=True),
# 'poly': PolynomialFeatures(degree=2, include_bias=True, interaction_only=False,
# order='C'),
# 'regressor': LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)}
pipe.fit(X, y)
y_pred = pipe.predict(X)
print(y_pred) # [4.00298901 3.92349228 3.99012926 ... 0.83369975 0.88801566 0.97559649]
print("R^2: {}".format(pipe.score(X, y))) # R^2: 0.6832976293317492
Last modified 1mo ago