{"id":46100,"date":"2025-04-11T11:24:16","date_gmt":"2025-04-11T11:24:16","guid":{"rendered":"https:\/\/www.carmatec.com\/?p=46100"},"modified":"2025-12-31T07:38:27","modified_gmt":"2025-12-31T07:38:27","slug":"master-scikit-learn-guida-definitiva-a-sklearn-in-python","status":"publish","type":"post","link":"https:\/\/www.carmatec.com\/it_it\/blog\/master-scikit-learn-guida-definitiva-a-sklearn-in-python\/","title":{"rendered":"Master Scikit-learn: Guida definitiva a Sklearn in Python"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"46100\" class=\"elementor elementor-46100\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a54756b e-flex e-con-boxed e-con e-parent\" data-id=\"a54756b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b474ead elementor-widget elementor-widget-text-editor\" data-id=\"b474ead\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Scikit-learn, spesso chiamato sklearn, \u00e8 una potente libreria open-source in Python per l'apprendimento automatico. Basata su NumPy, SciPy e Matplotlib, fornisce strumenti semplici ed efficienti per il data mining, l'analisi dei dati e la modellazione. Che siate principianti o esperti, l'API intuitiva di sklearn la rende ideale per costruire modelli predittivi. Dal suo rilascio nel 2007, sklearn \u00e8 diventato una pietra miliare dell'ecosistema della scienza dei dati in Python, sostenuto da una vivace comunit\u00e0. Supporta sia l'apprendimento supervisionato che quello non supervisionato, rendendolo versatile per compiti come la classificazione, la regressione, il clustering e la riduzione della dimensionalit\u00e0.<\/p><p>Perch\u00e9 scegliere sklearn? La sua interfaccia coerente, l'ampia documentazione e la vasta gamma di algoritmi, come la regressione lineare, le macchine vettoriali di supporto e le foreste casuali, consentono una rapida prototipazione e distribuzione. Questa guida approfondisce le caratteristiche principali di sklearn, le applicazioni pratiche e le tecniche avanzate per aiutarvi a padroneggiare l'apprendimento automatico in Python.<\/p><h3><strong>Come iniziare con Scikit-learn<\/strong><\/h3><p>Per iniziare, installare sklearn usando pip:<\/p><pre>bash\npip installare scikit-learn<\/pre><p>In alternativa, utilizzare conda:<\/p><pre>bash\nconda installa scikit-learn<\/pre><p>Assicurarsi di avere installato NumPy, SciPy e Pandas, in quanto dipendenze. Un ambiente virtuale (ad esempio, tramite <code>venv<\/code> O <code>conda<\/code>) consente di organizzare i progetti. Verificare l'installazione importando sklearn:<\/p><pre>python\nimportare sklearn\nprint(sklearn.__version__)<\/pre><p>Sklearn funziona perfettamente in Jupyter Notebook, rendendo pi\u00f9 facile la sperimentazione. Scaricate i set di dati di esempio, come Iris o Boston Housing, direttamente da sklearn:<\/p><pre>python\nda sklearn.datasets import load_iris\niris = load_iris()<\/pre><h3><strong>Concetti fondamentali di Scikit-learn<\/strong><\/h3><p>L'API di Sklearn ruota attorno a tre concetti chiave: <strong>stimatori<\/strong>, <strong>predittori<\/strong>, E <strong>trasformatori<\/strong>. Uno stimatore \u00e8 un oggetto che apprende dai dati (ad esempio, un classificatore). I predittori forniscono previsioni (ad es, <code>predire()<\/code> ), mentre i trasformatori pre-elaborano i dati (ad esempio, scalando le caratteristiche). Il flusso di lavoro segue uno schema fit-transform-predict:<\/p><pre>python\nda sklearn.preprocessing import StandardScaler\nscaler = StandardScaler()\nX_scalato = scaler.fit_transform(X)<\/pre><p><strong>Preelaborazione dei dati<\/strong> \u00e8 fondamentale. Sklearn offre strumenti come <code>StandardScaler<\/code> per la standardizzazione, <code>OneHotEncoder<\/code> per le variabili categoriche e <code>Computer semplice<\/code> per i valori mancanti. Utilizzare <code>Condotte<\/code> per concatenare le fasi di preelaborazione e modellazione:<\/p><pre>python\nda sklearn.pipeline import Pipeline\npipeline = Pipeline([('scaler', StandardScaler()), ('clf', LogisticRegression())])<\/pre><p>Ci\u00f2 garantisce trasformazioni coerenti durante l'addestramento e il test, riducendo gli errori.<\/p><h3><strong>Apprendimento supervisionato con sklearn<\/strong><\/h3><p>L'apprendimento supervisionato richiede dati etichettati. Sklearn eccelle in due tipi: classificazione e regressione.<\/p><ul><li>Classificazione: Prevedere le categorie (ad esempio, spam vs. non spam). Provate la Regressione logistica:<\/li><li><code>pitone<\/code><\/li><\/ul><pre>da sklearn.linear_model import LogisticRegression\nclf = LogisticRegression()\nclf.fit(X_train, y_train)<\/pre><ul><li>y_pred = clf.predict(X_test)<\/li><li>Altri algoritmi includono le Macchine a Vettori di Supporto (<code>SVC<\/code>) e gli alberi decisionali (<code>Classificatore ad albero decisionale<\/code>). Valutare i modelli con metriche come l'accuratezza o il punteggio F1:<\/li><li><code>pitone<\/code><\/li><\/ul><pre>da sklearn.metrics importa accuracy_score<\/pre><ul><li><code>print(accuracy_score(y_test, y_pred))<\/code><\/li><li><strong>Regressione<\/strong>: Prevedere valori continui (ad esempio, i prezzi delle case). La regressione lineare \u00e8 un punto fermo:<\/li><li><code>pitone<\/code><\/li><\/ul><pre>da sklearn.linear_model import LinearRegression\nreg = LinearRegression()<\/pre><ul><li><code>reg.fit(X_train, y_train)<\/code><\/li><li>Opzioni avanzate come Ridge o Lasso gestiscono la regolarizzazione. Misurare le prestazioni con l'errore quadratico medio (MSE):<\/li><li><code>pitone<\/code><\/li><\/ul><pre>da sklearn.metrics import mean_squared_error<\/pre><ul><li><code>print(mean_squared_error(y_test, y_pred))<\/code><\/li><\/ul><h3><strong>Apprendimento non supervisionato con sklearn<\/strong><\/h3><p>L'apprendimento non supervisionato trova modelli nei dati non etichettati. Sklearn supporta il clustering e la riduzione della dimensionalit\u00e0.<\/p><ul><li><strong>Raggruppamento<\/strong>: Raggruppare punti dati simili. K-Means \u00e8 molto diffuso:<\/li><li><code>pitone<\/code><\/li><\/ul><pre>da sklearn.cluster importa KMeans\nkmeans = KMeans(n_cluster=3)<\/pre><ul><li><code>cluster = kmeans.fit_predict(X)<\/code><\/li><li>DBSCAN gestisce meglio i cluster non sferici per gli insiemi di dati complessi.<\/li><li><strong>Riduzione della dimensionalit\u00e0<\/strong>: Ridurre le caratteristiche preservando le informazioni. L'analisi delle componenti principali (PCA) \u00e8 ampiamente utilizzata:<\/li><li><code>pitone<\/code><\/li><\/ul><pre>da sklearn.decomposition import PCA\npca = PCA(n_componenti=2)<\/pre><ul><li><code>X_ridotto = pca.fit_transform(X)<\/code><\/li><li>Visualizzazione di dati ad alta dimensionalit\u00e0 con t-SNE per l'analisi esplorativa.<\/li><\/ul><h3><strong>Selezione e valutazione del modello<\/strong><\/h3><p>Per garantire la solidit\u00e0 dei modelli, sklearn offre strumenti per la validazione e la messa a punto. <strong>Convalida incrociata<\/strong> valuta la generalizzazione:<\/p><pre>python\nda sklearn.model_selection import cross_val_score\nscores = cross_val_score(clf, X, y, cv=5)\nprint(scores.mean())<\/pre><p><strong>Regolazione dell'iperparametro<\/strong> ottimizza i modelli. Utilizzare GridSearchCV:<\/p><pre>python\nda sklearn.model_selection import GridSearchCV\nparam_grid = {'C': [0.1, 1, 10]}\ngrid = GridSearchCV(LogisticRegression(), param_grid, cv=5)\ngrid.fit(X_train, y_train)\nprint(grid.best_params_)<\/pre><p>La suddivisione dei dati in set di addestramento e di prova impedisce l'overfitting:<\/p><pre>python\nda sklearn.model_selection import train_test_split\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0,2)<\/pre><h3><strong>Caratteristiche avanzate e suggerimenti<\/strong><\/h3><p>I metodi ensemble di Sklearn, come Random Forest e Gradient Boosting, combinano i modelli per ottenere prestazioni migliori:<\/p><pre>python\nda sklearn.ensemble import RandomForestClassifier\nrf = RandomForestClassifier(n_estimators=100)\nrf.fit(X_train, y_train)<\/pre><p>Gestire insiemi di dati sbilanciati con tecniche come SMOTE (via <code>squilibrio-apprendimento<\/code>) o i pesi delle classi. Salvare i modelli per riutilizzarli:<\/p><pre>pitone\nimportare joblib\njoblib.dump(clf, 'model.pkl')\nclf = joblib.load('model.pkl')<\/pre><p>Selezione delle caratteristiche con <code>SelezionareKBest<\/code> o l'eliminazione ricorsiva delle caratteristiche (<code>RFE<\/code>) migliora l'efficienza.<\/p><h3><strong>Esempio del mondo reale: Prevedere i prezzi delle case<\/strong><\/h3><p>Costruiamo un modello di regressione usando il dataset Boston Housing (o un dataset simile, dato che Boston \u00e8 deprecato). Caricare i dati:<\/p><pre>pitone<br \/>importare pandas come pd<br \/>da sklearn.datasets import fetch_california_housing<br \/>abitazioni = fetch_california_housing()<br \/>X = pd.DataFrame(housing.data, columns=housing.feature_names)<br \/>y = abitazione.target<\/pre><p>Preelaborazione e formazione:<\/p><pre>pitone<br \/>da sklearn.pipeline import Pipeline<br \/>da sklearn.preprocessing import StandardScaler<br \/>da sklearn.linear_model import LinearRegression<\/pre><p>pipeline = Pipeline([(&#8216;scaler&#8217;, StandardScaler()), (&#8216;reg&#8217;, LinearRegression())])<br \/>X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)<br \/>pipeline.fit(X_train, y_train)<br \/>y_pred = pipeline.predict(X_test)<br \/>print(mean_squared_error(y_test, y_pred))<\/p><p>Interpretare i coefficienti per comprendere l'importanza delle caratteristiche. Visualizzare le predizioni con Matplotlib per ottenere approfondimenti.<\/p><h2><strong>Conclusioni e risorse<\/strong><\/h2><p>Scikit-learn semplifica l'apprendimento automatico grazie a un'API unificata e a strumenti robusti. Dalla preelaborazione alla modellazione avanzata, consente ai data scientist di affrontare in modo efficiente i problemi del mondo reale. Approfondite il tema con sklearn <a href=\"https:\/\/scikit-learn.org\/stable\/\">documentazione ufficiale<\/a>, le competizioni Kaggle o libri come Hands-On Machine Learning with Scikit-learn, Keras e TensorFlow.<\/p><p><a href=\"https:\/\/www.carmatec.com\/it_it\/\">Carmatec<\/a> offre un sistema robusto, scalabile e ad alte prestazioni. <a href=\"https:\/\/www.carmatec.com\/it_it\/societa-di-sviluppo-python\/\">Soluzioni Python<\/a> su misura per accelerare il vostro <a href=\"https:\/\/www.carmatec.com\/it_it\/servizi-di-trasformazione-digitale\/\">trasformazione digitale<\/a>. Dalle applicazioni web alle integrazioni con l'intelligenza artificiale, il nostro esperto <a href=\"https:\/\/www.carmatec.com\/it_it\/assumere-sviluppatori\/assumere-uno-sviluppatore-python\/\">Sviluppatori Python<\/a> creare soluzioni intelligenti e pronte per il futuro che favoriscano la crescita dell'azienda.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Scikit-learn, spesso chiamato sklearn, \u00e8 una potente libreria open-source in Python per l'apprendimento automatico. Basata su NumPy, SciPy e Matplotlib, fornisce strumenti semplici ed efficienti per il data mining, l'analisi dei dati e la modellazione. Che siate principianti o esperti, l'API intuitiva di sklearn la rende ideale per costruire modelli predittivi. Dal suo rilascio nel 2007, sklearn [...]<\/p>","protected":false},"author":3,"featured_media":46105,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,76],"tags":[],"class_list":["post-46100","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-python"],"_links":{"self":[{"href":"https:\/\/www.carmatec.com\/it_it\/wp-json\/wp\/v2\/posts\/46100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.carmatec.com\/it_it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.carmatec.com\/it_it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.carmatec.com\/it_it\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.carmatec.com\/it_it\/wp-json\/wp\/v2\/comments?post=46100"}],"version-history":[{"count":0,"href":"https:\/\/www.carmatec.com\/it_it\/wp-json\/wp\/v2\/posts\/46100\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.carmatec.com\/it_it\/wp-json\/wp\/v2\/media\/46105"}],"wp:attachment":[{"href":"https:\/\/www.carmatec.com\/it_it\/wp-json\/wp\/v2\/media?parent=46100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.carmatec.com\/it_it\/wp-json\/wp\/v2\/categories?post=46100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.carmatec.com\/it_it\/wp-json\/wp\/v2\/tags?post=46100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}