Duyen Hoang

Duyen Hoang

1661859540

Tìm Hiểu Về Scikit-learning’s SimpleImputer

Tìm hiểu về các đường dẫn SimpleImputer, IterativeImputer, KNNImputer và machine learning của Scikit-learning.

Imputer là gì?

Nếu bạn có một số giá trị bị thiếu trong tập dữ liệu của mình, bạn có thể bỏ hàng hoặc thậm chí cột giá trị bị thiếu. Phương pháp này rất không được khuyến khích vì nó làm giảm kích thước của dữ liệu và phân tích dữ liệu có thể bị sai lệch so với sự thật cơ bản. Thay vào đó, chúng ta nên sử dụng các thuật toán học máy không bị ảnh hưởng bởi các giá trị bị thiếu hoặc sử dụng bộ định tuyến để điền vào thông tin còn thiếu.

Máy tính là một công cụ ước tính được sử dụng để điền các giá trị còn thiếu trong tập dữ liệu. Đối với các giá trị số, nó sử dụng giá trị trung bình , trung vịhằng số . Đối với các giá trị phân loại, nó sử dụng giá trị không đổiđược sử dụng thường xuyên nhất . Bạn cũng có thể đào tạo mô hình của mình để dự đoán các nhãn bị thiếu.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về SimpleImputer , IterativeImputer KNNImputer của Scikit-learning . Chúng tôi cũng sẽ tạo một đường dẫn để đưa ra các tính năng phân loại và số và đưa chúng vào một mô hình học máy.

Cách sử dụng Scikit-learning's Imputer

Các hàm gán của scikit-learning cung cấp cho chúng ta một tùy chọn dễ điền với vài dòng mã. Chúng tôi có thể tích hợp các bộ định tuyến này và tạo các đường ống để tái tạo kết quả và cải thiện quy trình phát triển máy học.

Bắt đầu

Chúng tôi sẽ sử dụng môi trường Deepnote , tương tự như Jupyter Notebook nhưng trên đám mây.

Để tải xuống và giải nén dữ liệu từ Kaggle . Bạn phải cài đặt gói Kaggle Python và tải xuống bộ dữ liệu phi thuyền vũ trụ bằng API. Cuối cùng, giải nén dữ liệu vào thư mục tập dữ liệu.

%%capture
!pip install kaggle
!kaggle competitions download -c spaceship-titanic
!unzip -d ./dataset spaceship-titanic

Tiếp theo, chúng tôi sẽ nhập các Gói Python cần thiết để nhập, truyền dữ liệu và tạo các đường dẫn chuyển đổi.

import numpy as np
import pandas as pd
from sklearn.impute import SimpleImputer
from sklearn.experimental import enable_iterative_imputer
from sklearn.impute import IterativeImputer,KNNImputer
from sklearn.pipeline import FeatureUnion,make_pipeline,Pipeline
from sklearn.compose import ColumnTransformer

Bộ dữ liệu Tàu vũ trụ Titanic là một phần của cuộc thi dự đoán bắt đầu của Kaggle. Nó bao gồm các tệp CSV đào tạo, kiểm tra và gửi. Chúng tôi sẽ sử dụng train.csv , chứa thông tin hành khách trên tàu vũ trụ.

Hàm pandas read_csv () đọc train.csv và sau đó hiển thị khung dữ liệu.

df = pd.read_csv("dataset/train.csv")

df

Sử dụng Scikit-learning's Imputer 

Phân tích dữ liệu

Trong phần này, chúng ta sẽ khám phá các cột có giá trị bị thiếu, nhưng trước tiên, chúng ta cần kiểm tra hình dạng của tập dữ liệu. Nó có 8693 hàng và 14 cột.

df.shape

>>> (8693, 14)

Bây giờ chúng tôi sẽ hiển thị số lượng giá trị bị thiếu và tỷ lệ phần trăm dựa trên các cột. Để hiển thị nó trong khung dữ liệu, chúng tôi sẽ tạo một khung dữ liệu mới gồm các giá trị bị thiếu và áp dụng các gradient kiểu cho cột NA Count .

NA = pd.DataFrame(data=[df.isna().sum().tolist(), ["{:.2f}".format(i)+'%' \
           for i in (df.isna().sum()/df.shape[0]*100).tolist()]], 
           columns=df.columns, index=['NA Count', 'NA Percent']).transpose()

NA.style.background_gradient(cmap="Pastel1_r", subset=['NA Count'])

Sử dụng Scikit-learning's Imputer 

Ngoại trừ ID hành khách và Đã vận chuyển , có các giá trị bị thiếu trong mọi cột.

Hàm số

Chúng tôi sẽ sử dụng thông tin trong các cột bị thiếu và chia nó thành các cột phân loại và cột số. Chúng tôi sẽ đối xử với họ theo cách khác.

Đối với Nhập số, chúng tôi sẽ chọn cột Tuổi và hiển thị giá trị còn thiếu của số. Nó sẽ giúp chúng tôi xác nhận kết quả trước và sau.

all_col = df.columns
cat_na = ['HomePlanet', 'CryoSleep','Destination','VIP']
num_na = ['Age','RoomService', 'FoodCourt', 'ShoppingMall', 'Spa', 'VRDeck']
data1 = df.copy()
data2 = df.copy()

data1['Age'].isna().sum()

>>> 179
data1.Age[0:5]

>>> 0    39.0
>>> 1    24.0
>>> 2    58.0
>>> 3    33.0
>>> 4    16.0

Tiếp theo, chúng ta sẽ sử dụng SimpleImputer của sklearn và áp dụng nó vào cột Age . Nó sẽ thay thế dữ liệu bị thiếu bằng giá trị trung bình của cột.

Như chúng ta có thể quan sát, không có giá trị bị thiếu nào còn lại trong cột Tuổi .

imp = SimpleImputer(strategy='mean')
data1['Age'] = imp.fit_transform(data1['Age'].values.reshape(-1, 1) )

data1['Age'].isna().sum()

>>> 0

Đối với các cột số, bạn có thể sử dụng chiến lược không đổi , trung bìnhtrung vị và đối với các cột phân loại, bạn có thể sử dụng chiến lược most_fre thường xuyên và không đổi .

 Hàm lượng phân loại

Đối với hàm phân loại, chúng tôi sẽ sử dụng cột HomePlanet chứa 201 giá trị bị thiếu.

data1['HomePlanet'].isna().sum()

>>> 201
data1.HomePlanet[0:5]

>>> 0    Europa
>>> 1     Earth
>>> 2    Europa
>>> 3    Europa
>>> 4     Earth

Để lấp đầy các giá trị còn thiếu theo phân loại, chúng tôi sẽ sử dụng SimpleImputer với chiến lược most_frequent .

imp = SimpleImputer(strategy="most_frequent")
data1['HomePlanet'] = imp.fit_transform(data1['HomePlanet'].values.reshape(-1, 1))

Chúng tôi đã điền tất cả các giá trị còn thiếu trong cột HomePlanet.

data1['HomePlanet'].isna().sum()

>>> 0

Impute đa biến

Trong Imputer đơn biến, giá trị bị thiếu được tính bằng cách sử dụng cùng một tính năng, trong khi trong các thuật toán Imputer đa biến sử dụng toàn bộ tập hợp các thứ nguyên tính năng có sẵn để dự đoán giá trị bị thiếu.

Chúng tôi sẽ áp dụng các cột số cùng một lúc và như chúng ta có thể thấy, tất cả chúng đều có hơn 150 giá trị bị thiếu.

data2[num_na].isna().sum()
>>> Age             179
>>> RoomService     181
>>> FoodCourt       183
>>> ShoppingMall    208
>>> Spa             183
>>> VRDeck          188

Chúng tôi sẽ sử dụng IterativeImputer với 10 max_iter để ước tính và điền các giá trị còn thiếu vào các cột số. Thuật toán sẽ xem xét tất cả các cột trong việc ước tính giá trị.

imp = IterativeImputer(max_iter=10, random_state=0)
data2[num_na] = imp.fit_transform(data2[num_na])

data2[num_na].isna().sum()
>>> Age             0
>>> RoomService     0
>>> FoodCourt       0
>>> ShoppingMall    0
>>> Spa             0
>>> VRDeck          0

Nhập phân loại và số cho học máy

Tại sao Scikit-learning's Imputer? Ngoài Imputer, khung công tác học máy cung cấp chuyển đổi tính năng, thao tác dữ liệu, đường ống và thuật toán học máy. Tất cả đều hòa nhập nhịp nhàng. Với một vài dòng mã, bạn có thể Impute, chuẩn hóa, biến đổi và đào tạo mô hình của mình trên bất kỳ tập dữ liệu nào.

Trong phần này, chúng ta sẽ tìm hiểu cách tích hợp Imputer trong một dự án máy học để có được kết quả tốt hơn.

  • Đầu tiên, chúng tôi sẽ nhập các chức năng liên quan từ sklearn.
  • Sau đó, chúng tôi sẽ bỏ các cột không liên quan để tạo các biến X và Y. Cột mục tiêu của chúng tôi là "Đã vận chuyển".
  • Sau đó, chúng tôi sẽ chia chúng thành các tập huấn luyện và kiểm tra.
from sklearn.preprocessing import LabelEncoder, StandardScaler, OrdinalEncoder
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
X,y = df.drop(['Transported','PassengerId','Name','Cabin'],axis = 1) , df['Transported']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=100, random_state=0)

Để tạo các đường ống dữ liệu chuyển đổi số và phân loại, chúng ta sẽ sử dụng hàm Pipeline của sklearn.

Đối với numeric_transformer , chúng tôi đã sử dụng:

  • KNNImputer với 2 n_neighborstrọng lượng đồng nhất
  • Trong bước thứ hai, chúng tôi đã sử dụng StandardScaler với cấu hình mặc định

Đối với categorical_transformer , chúng tôi đã sử dụng:

  • SimpleImputer với chiến lược most_frequent
  • Trong bước thứ hai, chúng tôi đã sử dụng OrdinalEncoder , để chuyển đổi danh mục thành số.
numeric_transformer = Pipeline(steps=[
   ('imputer', KNNImputer(n_neighbors=2, weights="uniform")),
   ('scaler', StandardScaler())])

categorical_transformer = Pipeline(steps=[
   ('imputer', SimpleImputer(strategy='most_frequent')),
   ('onehot', OrdinalEncoder())])

Bây giờ, chúng tôi sẽ xử lý và chuyển đổi tính năng đào tạo bằng ColumnTransformer . Đối với numeric_transformer, chúng tôi đã cung cấp cho nó một danh sách các cột số và đối với categorical_transformer, chúng tôi sẽ sử dụng danh sách các cột phân loại.

Lưu ý: chúng tôi chỉ đang chuẩn bị đường ống và máy biến áp. Chúng tôi chưa xử lý bất kỳ dữ liệu nào.

preprocessor = ColumnTransformer(
   remainder = 'passthrough',
   transformers=[
       ('numeric', numeric_transformer, num_na),
       ('categorical', categorical_transformer, cat_na)
])

Cuối cùng, chúng ta sẽ tạo một đường dẫn chuyển đổi có chứa bộ xử lý và Bộ phân loại Quyết định cho nhiệm vụ phân loại nhị phân. Đường ống này trước tiên sẽ xử lý và biến đổi dữ liệu, sau đó nó sẽ huấn luyện mô hình bộ phân loại.

transform = Pipeline(
   steps=[
       ("processing", preprocessor),
       ("DecisionTreeClassifier", DecisionTreeClassifier()),
   ]
)

Đây là nơi điều kỳ diệu xảy ra. Chúng tôi sẽ phù hợp với tập dữ liệu đào tạo trên đường dẫn chuyển đổi . Sau đó, chúng tôi sẽ đánh giá mô hình của mình bằng cách sử dụng tập dữ liệu thử nghiệm.

Chúng tôi có độ chính xác 75% với cấu hình mặc định. Không tệ!!!

model = transform.fit(X_train,y_train)
model.score(X_test, y_test)
>>> 0.75

Tiếp theo, chúng tôi sẽ chạy dự đoán trên tập dữ liệu thử nghiệm và tạo báo cáo phân loại có cấu trúc .

from sklearn.metrics import classification_report
prediction = model.predict(X_test)
print(classification_report(prediction, y_test))

Như chúng ta thấy, chúng ta có điểm số ổn định cho các lớp TrueFalse .

                precision    recall  f1-score   support

       False       0.70      0.74      0.72        43
        True       0.80      0.75      0.77        57
    accuracy                           0.75       100
   macro avg       0.75      0.75      0.75       100
weighted avg       0.75      0.75      0.75       100

Sự kết luận

Để có dữ liệu chính xác hơn, các nhà khoa học đang sử dụng phương pháp học sâu để xác định các giá trị bị thiếu. Một lần nữa, bạn phải quyết định lượng thời gian và nguồn lực cần thiết để bạn xây dựng một hệ thống và giá trị mà nó mang lại. Trong hầu hết các trường hợp, Bộ định tuyến của Scikit-learning cung cấp giá trị lớn hơn và chúng tôi phải mất một vài dòng mã để hiển thị toàn bộ tập dữ liệu.

Trong blog này, chúng ta đã tìm hiểu về Imputation và cách thư viện Scikit-learning hoạt động trong việc ước tính các giá trị còn thiếu. Chúng ta cũng đã học về các phép áp đặt đơn biến, đa biến, phân loại và số. Trong phần cuối cùng, chúng tôi đã sử dụng đường ống dữ liệu, máy biến áp cột và đường ống học máy để đưa ra, biến đổi, đào tạo và đánh giá mô hình của chúng tôi.

Nguồn:  https://www.kdnuggets.com

#machine-learning #scikitlearn

What is GEEK

Buddha Community

Tìm Hiểu Về Scikit-learning’s SimpleImputer
Michael  Hamill

Michael Hamill

1618278600

Scikit-Learn Is Still Rocking, Been Introduced To French President

Amilestone for open source projects — French President Emmanuel Macron has recently been introduced to Scikit-learn. In fact, in a recent tweet, Scikit-learn creator and Inria tenured research director, Gael Varoquaux announced the presentation of Scikit-Learn, with applications of machine learning in digital health, to the president of France.

He stated the advancement of this free software machine learning library — “started from the grassroots, built by a community, we are powering digital revolutions, adding transparency and independence.”

#news #application of scikit learn for machine learning #applications of scikit learn for digital health #scikit learn #scikit learn introduced to french president

Mike  Kozey

Mike Kozey

1656151740

Test_cov_console: Flutter Console Coverage Test

Flutter Console Coverage Test

This small dart tools is used to generate Flutter Coverage Test report to console

How to install

Add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get):

dev_dependencies:
  test_cov_console: ^0.2.2

How to run

run the following command to make sure all flutter library is up-to-date

flutter pub get
Running "flutter pub get" in coverage...                            0.5s

run the following command to generate lcov.info on coverage directory

flutter test --coverage
00:02 +1: All tests passed!

run the tool to generate report from lcov.info

flutter pub run test_cov_console
---------------------------------------------|---------|---------|---------|-------------------|
File                                         |% Branch | % Funcs | % Lines | Uncovered Line #s |
---------------------------------------------|---------|---------|---------|-------------------|
lib/src/                                     |         |         |         |                   |
 print_cov.dart                              |  100.00 |  100.00 |   88.37 |...,149,205,206,207|
 print_cov_constants.dart                    |    0.00 |    0.00 |    0.00 |    no unit testing|
lib/                                         |         |         |         |                   |
 test_cov_console.dart                       |    0.00 |    0.00 |    0.00 |    no unit testing|
---------------------------------------------|---------|---------|---------|-------------------|
 All files with unit testing                 |  100.00 |  100.00 |   88.37 |                   |
---------------------------------------------|---------|---------|---------|-------------------|

Optional parameter

If not given a FILE, "coverage/lcov.info" will be used.
-f, --file=<FILE>                      The target lcov.info file to be reported
-e, --exclude=<STRING1,STRING2,...>    A list of contains string for files without unit testing
                                       to be excluded from report
-l, --line                             It will print Lines & Uncovered Lines only
                                       Branch & Functions coverage percentage will not be printed
-i, --ignore                           It will not print any file without unit testing
-m, --multi                            Report from multiple lcov.info files
-c, --csv                              Output to CSV file
-o, --output=<CSV-FILE>                Full path of output CSV file
                                       If not given, "coverage/test_cov_console.csv" will be used
-t, --total                            Print only the total coverage
                                       Note: it will ignore all other option (if any), except -m
-p, --pass=<MINIMUM>                   Print only the whether total coverage is passed MINIMUM value or not
                                       If the value >= MINIMUM, it will print PASSED, otherwise FAILED
                                       Note: it will ignore all other option (if any), except -m
-h, --help                             Show this help

example run the tool with parameters

flutter pub run test_cov_console --file=coverage/lcov.info --exclude=_constants,_mock
---------------------------------------------|---------|---------|---------|-------------------|
File                                         |% Branch | % Funcs | % Lines | Uncovered Line #s |
---------------------------------------------|---------|---------|---------|-------------------|
lib/src/                                     |         |         |         |                   |
 print_cov.dart                              |  100.00 |  100.00 |   88.37 |...,149,205,206,207|
lib/                                         |         |         |         |                   |
 test_cov_console.dart                       |    0.00 |    0.00 |    0.00 |    no unit testing|
---------------------------------------------|---------|---------|---------|-------------------|
 All files with unit testing                 |  100.00 |  100.00 |   88.37 |                   |
---------------------------------------------|---------|---------|---------|-------------------|

report for multiple lcov.info files (-m, --multi)

It support to run for multiple lcov.info files with the followings directory structures:
1. No root module
<root>/<module_a>
<root>/<module_a>/coverage/lcov.info
<root>/<module_a>/lib/src
<root>/<module_b>
<root>/<module_b>/coverage/lcov.info
<root>/<module_b>/lib/src
...
2. With root module
<root>/coverage/lcov.info
<root>/lib/src
<root>/<module_a>
<root>/<module_a>/coverage/lcov.info
<root>/<module_a>/lib/src
<root>/<module_b>
<root>/<module_b>/coverage/lcov.info
<root>/<module_b>/lib/src
...
You must run test_cov_console on <root> dir, and the report would be grouped by module, here is
the sample output for directory structure 'with root module':
flutter pub run test_cov_console --file=coverage/lcov.info --exclude=_constants,_mock --multi
---------------------------------------------|---------|---------|---------|-------------------|
File                                         |% Branch | % Funcs | % Lines | Uncovered Line #s |
---------------------------------------------|---------|---------|---------|-------------------|
lib/src/                                     |         |         |         |                   |
 print_cov.dart                              |  100.00 |  100.00 |   88.37 |...,149,205,206,207|
lib/                                         |         |         |         |                   |
 test_cov_console.dart                       |    0.00 |    0.00 |    0.00 |    no unit testing|
---------------------------------------------|---------|---------|---------|-------------------|
 All files with unit testing                 |  100.00 |  100.00 |   88.37 |                   |
---------------------------------------------|---------|---------|---------|-------------------|
---------------------------------------------|---------|---------|---------|-------------------|
File - module_a -                            |% Branch | % Funcs | % Lines | Uncovered Line #s |
---------------------------------------------|---------|---------|---------|-------------------|
lib/src/                                     |         |         |         |                   |
 print_cov.dart                              |  100.00 |  100.00 |   88.37 |...,149,205,206,207|
lib/                                         |         |         |         |                   |
 test_cov_console.dart                       |    0.00 |    0.00 |    0.00 |    no unit testing|
---------------------------------------------|---------|---------|---------|-------------------|
 All files with unit testing                 |  100.00 |  100.00 |   88.37 |                   |
---------------------------------------------|---------|---------|---------|-------------------|
---------------------------------------------|---------|---------|---------|-------------------|
File - module_b -                            |% Branch | % Funcs | % Lines | Uncovered Line #s |
---------------------------------------------|---------|---------|---------|-------------------|
lib/src/                                     |         |         |         |                   |
 print_cov.dart                              |  100.00 |  100.00 |   88.37 |...,149,205,206,207|
lib/                                         |         |         |         |                   |
 test_cov_console.dart                       |    0.00 |    0.00 |    0.00 |    no unit testing|
---------------------------------------------|---------|---------|---------|-------------------|
 All files with unit testing                 |  100.00 |  100.00 |   88.37 |                   |
---------------------------------------------|---------|---------|---------|-------------------|

Output to CSV file (-c, --csv, -o, --output)

flutter pub run test_cov_console -c --output=coverage/test_coverage.csv

#### sample CSV output file:
File,% Branch,% Funcs,% Lines,Uncovered Line #s
lib/,,,,
test_cov_console.dart,0.00,0.00,0.00,no unit testing
lib/src/,,,,
parser.dart,100.00,100.00,97.22,"97"
parser_constants.dart,100.00,100.00,100.00,""
print_cov.dart,100.00,100.00,82.91,"29,49,51,52,171,174,177,180,183,184,185,186,187,188,279,324,325,387,388,389,390,391,392,393,394,395,398"
print_cov_constants.dart,0.00,0.00,0.00,no unit testing
All files with unit testing,100.00,100.00,86.07,""

Installing

Use this package as an executable

Install it

You can install the package from the command line:

dart pub global activate test_cov_console

Use it

The package has the following executables:

$ test_cov_console

Use this package as a library

Depend on it

Run this command:

With Dart:

 $ dart pub add test_cov_console

With Flutter:

 $ flutter pub add test_cov_console

This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get):

dependencies:
  test_cov_console: ^0.2.2

Alternatively, your editor might support dart pub get or flutter pub get. Check the docs for your editor to learn more.

Import it

Now in your Dart code, you can use:

import 'package:test_cov_console/test_cov_console.dart';

example/lib/main.dart

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        // This is the theme of your application.
        //
        // Try running your application with "flutter run". You'll see the
        // application has a blue toolbar. Then, without quitting the app, try
        // changing the primarySwatch below to Colors.green and then invoke
        // "hot reload" (press "r" in the console where you ran "flutter run",
        // or simply save your changes to "hot reload" in a Flutter IDE).
        // Notice that the counter didn't reset back to zero; the application
        // is not restarted.
        primarySwatch: Colors.blue,
        // This makes the visual density adapt to the platform that you run
        // the app on. For desktop platforms, the controls will be smaller and
        // closer together (more dense) than on mobile platforms.
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key? key, required this.title}) : super(key: key);

  // This widget is the home page of your application. It is stateful, meaning
  // that it has a State object (defined below) that contains fields that affect
  // how it looks.

  // This class is the configuration for the state. It holds the values (in this
  // case the title) provided by the parent (in this case the App widget) and
  // used by the build method of the State. Fields in a Widget subclass are
  // always marked "final".

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      // This call to setState tells the Flutter framework that something has
      // changed in this State, which causes it to rerun the build method below
      // so that the display can reflect the updated values. If we changed
      // _counter without calling setState(), then the build method would not be
      // called again, and so nothing would appear to happen.
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    // This method is rerun every time setState is called, for instance as done
    // by the _incrementCounter method above.
    //
    // The Flutter framework has been optimized to make rerunning build methods
    // fast, so that you can just rebuild anything that needs updating rather
    // than having to individually change instances of widgets.
    return Scaffold(
      appBar: AppBar(
        // Here we take the value from the MyHomePage object that was created by
        // the App.build method, and use it to set our appbar title.
        title: Text(widget.title),
      ),
      body: Center(
        // Center is a layout widget. It takes a single child and positions it
        // in the middle of the parent.
        child: Column(
          // Column is also a layout widget. It takes a list of children and
          // arranges them vertically. By default, it sizes itself to fit its
          // children horizontally, and tries to be as tall as its parent.
          //
          // Invoke "debug painting" (press "p" in the console, choose the
          // "Toggle Debug Paint" action from the Flutter Inspector in Android
          // Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
          // to see the wireframe for each widget.
          //
          // Column has various properties to control how it sizes itself and
          // how it positions its children. Here we use mainAxisAlignment to
          // center the children vertically; the main axis here is the vertical
          // axis because Columns are vertical (the cross axis would be
          // horizontal).
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'You have pushed the button this many times:',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headline4,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

Author: DigitalKatalis
Source Code: https://github.com/DigitalKatalis/test_cov_console 
License: BSD-3-Clause license

#flutter #dart #test 

Vaughn  Sauer

Vaughn Sauer

1622792520

Top Free Resources To Learn Scikit-Learn

Scikit-Learn is one of the popular software machine learning libraries. The library is built on top of NumPy, SciPy, and Matplotlib and supports supervised and unsupervised learning as well as provides various tools for model fitting, data preprocessing, model selection and evaluation.

Scikit-Learn Tutorials

About: From the developers of Scikit-Learn, this tutorial provides an introduction to machine learning with Scikit-Learn. It includes topics such as problem setting, loading an example dataset, learning and predicting. The tutorial is suitable for both beginners and advanced students.

Perform Sentiment Analysis with Scikit-Learn

**About: **In this project-based course, you will learn the fundamentals of sentiment analysis, and build a logistic regression model to classify movie reviews as either positive or negative. You will learn how to develop and employ a logistic regression classifier using Scikit-Learn, perform feature extraction with The Natural Language Toolkit (NLTK), tune model hyperparameters and evaluate model accuracy etc.

Python Machine Learning: Scikit-Learn Tutorial

**About: **Python Machine Learning: Scikit-Learn tutorial will help you learn the basics of Python machine learning. You will learn how to use Python and its libraries to explore your data with the help of Matplotlib and Principal Component Analysis (PCA). You will also learn how to work with the KMeans algorithm to construct an unsupervised model, fit this model to your data, predict values, and validate the model.

Scikit Learn Tutorial | Machine Learning with Python

**About: **Edureka’s video tutorial introduces machine learning in Python. It will take you through regression and clustering techniques along with a demo of SVM classification on the famous iris dataset. This video helps you to learn the introduction to Scikit-learn and how to install it, understand how machine learning works, among other things.

Regression using Scikit-Learn

About: In this Coursera offering, you will learn about Linear Regression, Regression using Random Forest Algorithm, Regression using Support Vector Machine Algorithm. Scikit-Learn provides a comprehensive array of tools for building regression models.

Machine Learning with Scikit-Learn Tutorial

About: In this course, you will learn about machine learning, algorithms, and how Scikit-Learn makes it all so easy. You will get to know the machine learning approach, jargons to understand a dataset, features of supervised and unsupervised learning models, algorithms such as regression, classification, clustering, and dimensionality reduction.

Predict Sales Revenue with Scikit-Learn

About: In this two-hour long project-based course, you will build and evaluate a simple linear regression model using Python. You will employ the Scikit-Learn module for calculating the linear regression while using pandas for data management and seaborn for plotting. By the end of this course, you will be able to build a simple linear regression model in Python with Scikit-Learn, employ Exploratory Data Analysis (EDA) to small data sets with seaborn and pandas.

SciPy 2016 Scikit-learn Tutorial

**About: **This tutorial is available on GitHub. It includes an introduction to machine learning with sample applications, data formats, preparation and representation, supervised learning: training and test data, the Scikit-Learn estimator interface and more.

Build NLP pipelines using Scikit-Learn

About: This is a two-hour long project-based course, where you will understand the business problem and the dataset and learn how to generate a hypothesis to create new features based on existing data. You will learn to perform text pre-processing and create custom transformers to generate new features. You will also learn to implement an NLP pipeline, create custom transformers and build a text classification model.

#developers corner #learn scikit-learn #machine learning library #scikit learn

Jackson  Crist

Jackson Crist

1618280760

9 Guidelines to Master Scikit-learn without Giving Up in The Middle

Undoubtedly, Scikit-learn is one of the best machine learning libraries available today. There are several reasons for that. The consistency among Scikit-learn estimators is one reason. You cannot find such consistency in any other machine learning library. The .fit()/.predict() paradigm best describes the consistency. Another reason is that Scikit-learn has a variety of uses. It can be used for classification, regression, clustering, dimensionality reduction, anomaly detection.
Therefore, Scikit-learn is a must-have Python library in your data science toolkit. But, learning to use Scikit-learn is not straightforward. It’s not simple as you imagine. You have to set up some background before learning it. Even while you learning Scikit-learn, you should follow some guidelines and best practices. In this article, I’m happy to share 9 guidelines that worked for me to master the Scikit-learn without giving up the learning process in the middle. Whenever possible, I will include the links to my previous posts which will help you to set up the background and continue to learn the Scikit-learn.

#data-science #scikit-learn #machine-learning #unsupervised-learning #supervised-learning

Housing Price with scikit-learn’s StratifiedShuffleSplit

A simple hands-on practice on Scikit-learn. In this work I have tried to showcase the housing prices in California, datasets are available on GitHub

import pandas as pd 
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
housing = pd.read_csv('housing.csv')
housing.head()

Image for post

Image for post

housing.info()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 20640 entries, 0 to 20639
Data columns (total 10 columns):
longitude             20640 non-null float64
latitude              20640 non-null float64
housing_median_age    20640 non-null float64
total_rooms           20640 non-null float64
total_bedrooms        20433 non-null float64
population            20640 non-null float64
households            20640 non-null float64
median_income         20640 non-null float64
median_house_value    20640 non-null float64
ocean_proximity       20640 non-null object
dtypes: float64(9), object(1)
memory usage: 1.5+ MB
  • There is 20,640 instance in the dataset, which means that it is fairly small by Machine learning standards. Notice the total_bedrooms attribute has only 20,433 non-null values, meaning that 207 districts are missing this feature. We need to take care of this later.
  • ocean_proximity column was repetitive, which means it is probably a categorical attribute, we will see how many districts belong to each category by using the value_counts() method.

Image for post

Big Data Jobs

housing['ocean_proximity'].value_counts()

<1H OCEAN     9136
INLAND        6551
NEAR OCEAN    2658
NEAR BAY      2290
ISLAND           5
Name: ocean_proximity, dtype: int64
housing.describe()

Image for post

From the histogram, we can see that slightly over 800 districts have a median_house_value equal to about $100,000.

housing.hist(bins=50, figsize=(20,15))
plt.show()

Image for post

  • Since the median income is a very important attribute to predict median housing prices. If we look at the median income histogram more closely most of the median income values are clustered around 2 to 5 (i.e., $20,000 — $50,000), but some median goes far beyond 6 ($60,000).
  • It is important to have a sufficient number of instances in our dataset for each stratum, or else the estimation of the dataset may be biased. This means that we should not have too many strata.

#scikit-learn #ai #data-model #data-science #machine-learning #deep learning